diff --git a/test/superenhancer-job.json b/test/superenhancer-job.json index e9f990dcb..e0adbec18 100644 --- a/test/superenhancer-job.json +++ b/test/superenhancer-job.json @@ -1,19 +1,15 @@ { "genome": { "class": "File", - "path": "test-files/hg18_refseq.ucsc" + "path": "./hg18_refseq.ucsc" }, "inputgff": { "class": "File", - "path": "test-files/F750DD5E-CF29-1720-F2A9-CA655F726017.gff" + "path": "./ROSE_DATA/data/HG18_MM1S_MED1.gff" }, "inputbam": { "class": "File", - "path": "test-files/F750DD5E-CF29-1720-F2A9-CA655F726017.sorted.bam" + "path": "./ROSE_DATA/data/MM1S_MED1.hg18.bwt.sorted.bam" }, - "inputbai": { - "class": "File", - "path": "test-files/F750DD5E-CF29-1720-F2A9-CA655F726017.sorted.bai" - }, - "output_name": "" -} + "output_name": "output" +} \ No newline at end of file diff --git a/test/superenhancer-test.yaml b/test/superenhancer-test.yaml index 81dfe0a75..62c24e57a 100644 --- a/test/superenhancer-test.yaml +++ b/test/superenhancer-test.yaml @@ -2,14 +2,14 @@ "python", "/usr/local/bin/ROSE_main.py", "-g", - "./test-files/hg18_refseq.ucsc", + "./hg18_refseq.ucsc", "-r", - "./test-files/F750DD5E-CF29-1720-F2A9-CA655F726017.sorted.bam", + "./ROSE_DATA/data/MM1S_MED1.hg18.bwt.sorted.bam", "-i", - "./test-files/F750DD5E-CF29-1720-F2A9-CA655F726017.gff", + "./ROSE_DATA/data/HG18_MM1S_MED1.gff", "-o", - "" + "output" ] job: superenhancer-job.json - tool: ../tools/superenhancer.cwl - doc: General test of command line generation + tool: superenhancer.yml + doc: General test of command line generation \ No newline at end of file diff --git a/tools/alea-createGenome.cwl b/tools/alea-createGenome.cwl index f8886b89e..65e0ae8d2 100755 --- a/tools/alea-createGenome.cwl +++ b/tools/alea-createGenome.cwl @@ -1,12 +1,15 @@ #!/usr/bin/env cwl-runner -cwlVersion: "cwl:draft-3" +cwlVersion: v1.0 class: CommandLineTool +baseCommand: ["alea", "createGenome"] + requirements: -- $import: envvar-global.yml - $import: alea-docker.yml +- $import: envvar-global.yml +- class: InlineJavascriptRequirement - class: EnvVarRequirement envDef: - envName: "AL_USE_CONCATENATED_GENOME" @@ -15,21 +18,20 @@ requirements: envValue: "-k 0 -n 0 -t 4" - envName: "AL_DIR_TOOLS" envValue: "/usr/local/bin/" -- class: InlineJavascriptRequirement inputs: -- id: "reference" + reference: type: File - description: | + doc: | the reference genome fasta file inputBinding: position: 2 secondaryFiles: - ".fai" -- id: "phased" + phased: type: File - description: | + doc: | the phased variants vcf file (including SNPs and Indels) or the phased SNPs (should be specified first) inputBinding: @@ -37,79 +39,79 @@ inputs: secondaryFiles: - ".tbi" -- id: "phasedindels" - type: ["null", File] - description: | + phasedindels: + type: File? + doc: | the phased Indels (should be specified second) inputBinding: position: 4 secondaryFiles: - ".tbi" -- id: "strain1" + strain1: type: string - description: | + doc: | name of strain1 exactly as specified in the vcf file (e.g. hap1) mouse: - 129P2_OlaHsd (129P2/OlaHsd) F 52 - 129S1_SvImJ (129S1/SvImJ) F 68 - 129S5SvEvBrd (129S5SvEvBrd) F 22 - A_J (A/J) F 52 - AKR_J (AKR/J) F 57 - BALB_cJ (BALB/cJ) F 62 - BTBR_T+_Itpr3tf_J (BTBR T+ Itpr3tf/J) M 85 - BUB_BnJ (BUB/BnJ) M 49 - C3H_HeH (C3H/HeH) F 14 - C3H_HeJ (C3H/HeJ) F 63 - C57BL_10J (C57BL/10J) M 37 - C57BL_6NJ (C57BL/6NJ) F 61 - C57BR_cdJ (C57BR/cdJ) M 51 - C57L_J (C57L/J) M 64 - C58_J (C58/J) M 55 - CAST_EiJ (CAST/EiJ) F 53 - CBA_J (CBA/J) F 56 - DBA_1J (DBA/1J) M 49 - DBA_2J (DBA/2J) F 56 - FVB_NJ (FVB/NJ) F 73 - I_LnJ (I/LnJ) M 45 - KK_HiJ (KK/HiJ) M 55 - LEWES_EiJ (LEWES/EiJ) F 19 - LP_J (LP/J) F 54 - MOLF_EiJ (MOLF/EiJ) M 40 - NOD_ShiLtJ (NOD/ShiLtJ) F 66 - NZB_B1NJ (NZB/B1NJ) M 47 - NZO_HlLtJ (NZO/HlLtJ) F 72 - NZW_LacJ (NZW/LacJ) M 58 - PWK_PhJ (PWK/PhJ) F 53 - RF_J (RF/J) M 54 - SEA_GnJ (SEA/GnJ) M 49 - SPRET_EiJ (SPRET/EiJ) F 67 - ST_bJ (ST/bJ) M 81 - WSB_EiJ (WSB/EiJ) F 51 - ZALENDE_EiJ (ZALENDE/EiJ) M 19 + 129P2_OlaHsd (129P2/OlaHsd) F 52 + 129S1_SvImJ (129S1/SvImJ) F 68 + 129S5SvEvBrd (129S5SvEvBrd) F 22 + A_J (A/J) F 52 + AKR_J (AKR/J) F 57 + BALB_cJ (BALB/cJ) F 62 + BTBR_T+_Itpr3tf_J (BTBR T+ Itpr3tf/J) M 85 + BUB_BnJ (BUB/BnJ) M 49 + C3H_HeH (C3H/HeH) F 14 + C3H_HeJ (C3H/HeJ) F 63 + C57BL_10J (C57BL/10J) M 37 + C57BL_6NJ (C57BL/6NJ) F 61 + C57BR_cdJ (C57BR/cdJ) M 51 + C57L_J (C57L/J) M 64 + C58_J (C58/J) M 55 + CAST_EiJ (CAST/EiJ) F 53 + CBA_J (CBA/J) F 56 + DBA_1J (DBA/1J) M 49 + DBA_2J (DBA/2J) F 56 + FVB_NJ (FVB/NJ) F 73 + I_LnJ (I/LnJ) M 45 + KK_HiJ (KK/HiJ) M 55 + LEWES_EiJ (LEWES/EiJ) F 19 + LP_J (LP/J) F 54 + MOLF_EiJ (MOLF/EiJ) M 40 + NOD_ShiLtJ (NOD/ShiLtJ) F 66 + NZB_B1NJ (NZB/B1NJ) M 47 + NZO_HlLtJ (NZO/HlLtJ) F 72 + NZW_LacJ (NZW/LacJ) M 58 + PWK_PhJ (PWK/PhJ) F 53 + RF_J (RF/J) M 54 + SEA_GnJ (SEA/GnJ) M 49 + SPRET_EiJ (SPRET/EiJ) F 67 + ST_bJ (ST/bJ) M 81 + WSB_EiJ (WSB/EiJ) F 51 + ZALENDE_EiJ (ZALENDE/EiJ) M 19 inputBinding: position: 5 -- id: "strain2" + strain2: type: string - description: | + doc: | name of strain2 exactly as specified in the vcf file (e.g. hap2) inputBinding: position: 6 -- id: "outputDir" + outputDir: type: string - description: | + doc: | location of the output directory inputBinding: position: 7 -- id: "CONCATENATED_GENOME" + CONCATENATED_GENOME: type: boolean default: false outputs: -- id: "strain1_indices" + strain1_indices: type: File outputBinding: glob: $(inputs.outputDir+"/"+inputs.strain1+".fasta") @@ -121,7 +123,8 @@ outputs: - ".pac" - ".refmap" - ".sa" -- id: "strain2_indices" + + strain2_indices: type: File outputBinding: glob: $(inputs.outputDir+"/"+inputs.strain1+".fasta") @@ -133,8 +136,9 @@ outputs: - ".pac" - ".refmap" - ".sa" -- id: "strain12_indices" - type: ["null",File] + + strain12_indices: + type: File? outputBinding: glob: $(inputs.CONCATENATED_GENOME?inputs.outputDir+"/"+inputs.strain1+"_"+inputs.strain2+".fasta":[]) secondaryFiles: @@ -145,8 +149,6 @@ outputs: - ".pac" - ".sa" -baseCommand: ["alea", "createGenome"] - arguments: - valueFrom: $(inputs.phasedindels?"-snps-indels-separately":[]) position: 1 @@ -180,5 +182,4 @@ s:author: s:location: "3333 Burnet Ave, Cincinnati, OH 45229-3026" s:department: - class: s:Organization - s:name: "Barski Lab" - + s:name: "Barski Lab" \ No newline at end of file diff --git a/tools/alea-createTracks.cwl b/tools/alea-createTracks.cwl new file mode 100644 index 000000000..5029334d9 --- /dev/null +++ b/tools/alea-createTracks.cwl @@ -0,0 +1,158 @@ +#!/usr/bin/env cwl-runner + +cwlVersion: v1.0 + +class: CommandLineTool + +baseCommand: ["alea", "createTracks"] + +requirements: +- $import: alea-docker.yml +- $import: envvar-global.yml +- class: InlineJavascriptRequirement +- class: EnvVarRequirement + envDef: + - envName: "AL_USE_CONCATENATED_GENOME" + envValue: $(inputs.CONCATENATED_GENOME?"1":"0") + - envName: "AL_BWA_ALN_PARAMS" + envValue: "-k 0 -n 0 -t 4" + - envName: "AL_DIR_TOOLS" + envValue: "/usr/local/bin/" + +inputs: + bamprefix: + type: string + doc: | + BAM directory prefix + inputBinding: + position: 2 + + strain1_refmap: + type: File + doc: | + (when AL_USE_CONCATENATED_GENOME=0) + strain1.fasta.refmap file + inputBinding: + position: 3 + + strain2_refmap: + type: File + doc: | + (when AL_USE_CONCATENATED_GENOME=0) + strain2.fasta.refmap file + inputBinding: + position: 3 + + strain1: + type: string + doc: | + name of strain1 exactly as specified in the vcf file (e.g. hap1) + mouse: + 129P2_OlaHsd (129P2/OlaHsd) F 52 + 129S1_SvImJ (129S1/SvImJ) F 68 + 129S5SvEvBrd (129S5SvEvBrd) F 22 + A_J (A/J) F 52 + AKR_J (AKR/J) F 57 + BALB_cJ (BALB/cJ) F 62 + BTBR_T+_Itpr3tf_J (BTBR T+ Itpr3tf/J) M 85 + BUB_BnJ (BUB/BnJ) M 49 + C3H_HeH (C3H/HeH) F 14 + C3H_HeJ (C3H/HeJ) F 63 + C57BL_10J (C57BL/10J) M 37 + C57BL_6NJ (C57BL/6NJ) F 61 + C57BR_cdJ (C57BR/cdJ) M 51 + C57L_J (C57L/J) M 64 + C58_J (C58/J) M 55 + CAST_EiJ (CAST/EiJ) F 53 + CBA_J (CBA/J) F 56 + DBA_1J (DBA/1J) M 49 + DBA_2J (DBA/2J) F 56 + FVB_NJ (FVB/NJ) F 73 + I_LnJ (I/LnJ) M 45 + KK_HiJ (KK/HiJ) M 55 + LEWES_EiJ (LEWES/EiJ) F 19 + LP_J (LP/J) F 54 + MOLF_EiJ (MOLF/EiJ) M 40 + NOD_ShiLtJ (NOD/ShiLtJ) F 66 + NZB_B1NJ (NZB/B1NJ) M 47 + NZO_HlLtJ (NZO/HlLtJ) F 72 + NZW_LacJ (NZW/LacJ) M 58 + PWK_PhJ (PWK/PhJ) F 53 + RF_J (RF/J) M 54 + SEA_GnJ (SEA/GnJ) M 49 + SPRET_EiJ (SPRET/EiJ) F 67 + ST_bJ (ST/bJ) M 81 + WSB_EiJ (WSB/EiJ) F 51 + ZALENDE_EiJ (ZALENDE/EiJ) M 19 + inputBinding: + position: 5 + + strain2: + type: string + doc: | + name of strain2 exactly as specified in the vcf file (e.g. hap2) + inputBinding: + position: 6 + + outputPrefix: + type: string + doc: | + location of the output directory + inputBinding: + position: 7 + + CONCATENATED_GENOME: + type: boolean + default: false + +outputs: [] +# strain1_indices: +# type: File +# outputBinding: +# glob: $(inputs.outputPrefix+inputs.bamPrefix+"/"+inputs.strain1+".wig.gz") +# secondaryFiles: +# - ".bw" +# - ".bedGraph" + +# strain2_indices: +# type: File +# outputBinding: +# glob: $(inputs.outputPrefix+inputs.bamPrefix"/"+inputs.strain2+".wig.gz") +# secondaryFiles: +# - ".bw" +# - ".bedGraph" + +arguments: + - valueFrom: $(inputs.input_reads.length==1?"-s":"-p") + position: 1 + +$namespaces: + s: http://schema.org/ + +$schemas: +- https://sparql-test.commonwl.org/schema.rdf + +s:mainEntity: + $import: alea-metadata.yaml + +s:downloadUrl: https://github.com/common-workflow-language/workflows/blob/master/tools/alea-createGenome.cwl +s:codeRepository: https://github.com/common-workflow-language/workflows +s:license: http://www.apache.org/licenses/LICENSE-2.0 +s:isPartOf: + class: s:CreativeWork + s:name: "Common Workflow Language" + s:url: http://commonwl.org/ + +s:author: + class: s:Person + s:name: "Andrey Kartashov" + s:email: mailto:Andrey.Kartashov@cchmc.org + s:sameAs: + - id: http://orcid.org/0000-0001-9102-5681 + s:worksFor: + - class: s:Organization + s:name: "Cincinnati Children's Hospital Medical Center" + s:location: "3333 Burnet Ave, Cincinnati, OH 45229-3026" + s:department: + - class: s:Organization + s:name: "Barski Lab" \ No newline at end of file diff --git a/tools/alea-docker.yml b/tools/alea-docker.yml index e66369b1f..bf9c46fc2 100644 --- a/tools/alea-docker.yml +++ b/tools/alea-docker.yml @@ -1,19 +1,19 @@ class: DockerRequirement -dockerPull: scidap/alea:v1.2.2 +dockerPull: scidap/alea:v1.3 #dockerImageId: scidap/alea:v1.2.2 #not yet ready dockerFile: | ################################################################# # Dockerfile # # Software: Alea - # Software Version: 1.2.2 + # Software Version: 1.3 # Description: Alea image for SciDAP # Website: http://scidap.com/ # Provides: alea|bwa|Plink|vcftools|bedGraphToBigWig|shapeit2 # Base Image: scidap/scidap:v0.0.1 - # Build Cmd: docker build --rm -t scidap/alea:v1.2.2 . - # Pull Cmd: docker pull scidap/alea:v1.2.2 - # Run Cmd: docker run --rm scidap/alea:v1.2.2 alea + # Build Cmd: docker build --rm -t scidap/alea:v1.3 . + # Pull Cmd: docker pull scidap/alea:v1.3 + # Run Cmd: docker run --rm scidap/alea:v1.3 alea ################################################################# ### Base Image @@ -135,7 +135,7 @@ dockerFile: | ### Installing alea - RUN wget -q -O - ftp://ftp.bcgsc.ca/supplementary/ALEA/files/alea.1.2.2.tar.gz | tar -zxv -C /usr/local --strip-components=1 && \ + RUN wget -q -O - https://github.com/hyounesy/ALEA/raw/master/dist/alea.1.3.tar.gz | tar -zxv -C /usr/local --strip-components=1 && \ cd /usr/local/bin/ && \ printf '144c144\n< --output-fasta="$VAR_GENOME1_SNPS"\n---\n> --output-fasta="$VAR_GENOME2_SNPS"\n'| patch createGenome.sh && \ sed -i.bak s/^AL_BWA_ALN_PARAMS/#AL_BWA_ALN_PARAMS/g alea.config && \ diff --git a/tools/superenhancer-docker.yml b/tools/superenhancer-docker.yml new file mode 100644 index 000000000..fd989810a --- /dev/null +++ b/tools/superenhancer-docker.yml @@ -0,0 +1,130 @@ +dockerFile: | + ################################################################# + # Dockerfile + # + # Software: Super Enhancer + # Software Version: 1a9bb86b5464 + # Description: Super Enhancer Image for Scidap + # Website: https://bitbucket.org/young_computation/rose, http://scidap.com/ + # Provides: https://bitbucket.org/young_computation/rose/get/1a9bb86b5464.zip + # Base Image: scidap/scidap:v0.0.1 + # Build Cmd: docker build --rm -t scidap/superenhancer . + # Pull Cmd: docker pull scidap/superenhancer + # Run Cmd: docker run --rm scidap/superenhancer + ################################################################# + + FROM scidap/samtools:v1.2-242-4d56437 + MAINTAINER BHARATH MANICKA VASAGAM bharath.manickavasagam@cchmc.org + ENV DEBIAN_FRONTEND noninteractive + + ################## BEGIN INSTALLATION ###################### + + + WORKDIR /usr/local/bin/ + + ### Install required packages + #To configure the virtualbox with another DNS + #CMD "sh" "-c" "echo nameserver 8.8.8.8 > /etc/resolv.conf" + #change the nameserver in resolv.conf to current DNS server + + RUN rm -rf /var/lib/apt/lists/* && \ + apt-get clean all && \ + apt-get update && \ + apt-get install -y \ + libncurses5-dev \ + ed \ + less \ + locales \ + wget \ + r-base \ + ca-certificates && \ + apt-get clean && \ + apt-get purge && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* /var/lib/apt/lists/* + + ### Patch File + + RUN echo '--- ROSE_bamToGFF.py\n\ + +++ ROSE_bamToGFF.py\n\ + 74c74\n\ + < gffLocus = ROSE_utils.Locus(line[0],int(line[3]),int(line[4]),line[6],line[1])\n\ + ---\n\ + > gffLocus = ROSE_utils.Locus(line[0],float(line[3]),float(line[4]),line[6],line[1])\n\ + --- ROSE_main.py\n\ + +++ ROSE_main.py\n\ + 241c241\n\ + < usage = "usage: %prog [options] -g [GENOME] -i [INPUT_REGION_GFF] -r [RANKBY_BAM_FILE] -o [OUTPUT_FOLDER] [OPTIONAL_FLAGS]"\n\ + ---\n\ + > usage = "usage: %prog [options] -g [INPUT_GENOME] -i [INPUT_REGION_GFF] -r [RANKBY_BAM_FILE] -o [OUTPUT_FOLDER] [OPTIONAL_FLAGS]"\n\ + 251c251\n\ + < help = "Enter the genome build (MM9,MM8,HG18,HG19)")\n\ + ---\n\ + > help = "Reference genome file: example- hg18_refseq.ucsc")\n\ + 301a302\n\ + > \n\ + 332,333d332\n\ + < \n\ + < \n\ + 336,342c337,345'\ + >> patch.diff + + RUN echo "< genomeDict = {\n\ + < 'HG18':'%s/annotation/hg18_refseq.ucsc' % (cwd),\n\ + < 'MM9': '%s/annotation/mm9_refseq.ucsc' % (cwd),\n\ + < 'HG19':'%s/annotation/hg19_refseq.ucsc' % (cwd),\n\ + < 'MM8': '%s/annotation/mm8_refseq.ucsc' % (cwd),\n\ + < 'MM10':'%s/annotation/mm10_refseq.ucsc' % (cwd),\n\ + < }\n\ + ---\n\ + > ## genomeDict = {\n\ + > ## 'HG18':'%s/annotation/hg18_refseq.ucsc' % (cwd),\n\ + > ## 'MM9': '%s/annotation/mm9_refseq.ucsc' % (cwd),\n\ + > ## 'HG19':'%s/annotation/hg19_refseq.ucsc' % (cwd),\n\ + > ## 'MM8': '%s/annotation/mm8_refseq.ucsc' % (cwd),\n\ + > ## 'MM10':'%s/annotation/mm10_refseq.ucsc' % (cwd),\n\ + > ## }\n\ + > \n\ + > annotFile = genome\n\ + 344c345\n\ + < annotFile = genomeDict[upper(genome)]\n\ + ---\n\ + > ## annotFile = genomeDict[upper(genome)]\n\ + 412c413"\ + >> patch.diff + RUN echo '< cmd1 = "python ROSE_bamToGFF.py -f 1 -e 200 -r -m %s -b %s -i %s -o %s &" % (nBin,bamFile,stitchedGFFFile,mappedOut1)\n\ + ---\n\ + > cmd1 = "python /usr/local/'bin'/ROSE_bamToGFF.py -f 1 -e 200 -r -m %s -b %s -i %s -o %s &" % (nBin,bamFile,stitchedGFFFile,mappedOut1)\n\ + 419c420\n\ + < cmd2 = "python ROSE_bamToGFF.py -f 1 -e 200 -r -m %s -b %s -i %s -o %s &" % (nBin,bamFile,inputGFFFile,mappedOut2)\n\ + ---\n\ + > cmd2 = "python /usr/local/'bin'/ROSE_bamToGFF.py -f 1 -e 200 -r -m %s -b %s -i %s -o %s &" % (nBin,bamFile,inputGFFFile,mappedOut2)\n\ + 484c485\'\ + >> patch.diff + RUN echo "< cmd = 'R --no-save %s %s %s %s < ROSE_callSuper.R' % (outFolder,outputFile1,inputName,controlName)\n\ + ---\n\ + > cmd = 'R --no-save %s %s %s %s < /usr/local/bin/ROSE_callSuper.R' % (outFolder,outputFile1,inputName,controlName)\n\ + 489c490\n\ + < cmd = 'R --no-save %s %s %s %s < ROSE_callSuper.R' % (outFolder,outputFile1,inputName,controlName)\n\ + ---\n\ + > cmd = 'R --no-save %s %s %s %s < /usr/local/bin/ROSE_callSuper.R' % (outFolder,outputFile1,inputName,controlName)\n\ + --- ROSE_utils.py\n\ + +++ ROSE_utils.py\n\ + 265c265\n\ + < coords = [int(start),int(end)]\n\ + ---\n\ + > coords = [float(start),float(end)]\n"\ + >> patch.diff + + RUN cat patch.diff + + ### patching the difference in script + RUN wget -q -O young_computation.zip https://bitbucket.org/young_computation/rose/get/1a9bb86b5464.zip && \ + unzip young_computation.zip && \ + rm -f young_computation.zip && \ + rm -rf /usr/local/bin/young_computation-rose-1a9bb86b5464/annotation && \ + cp -r young_computation-rose-1a9bb86b5464/* /usr/local/bin && \ + patch < patch.diff && \ + rm patch.diff && \ + rm -rf young_computation-rose-1a9bb86b5464 && \ + rm -f /usr/local/edited-Super-Enhancer-master.zip && \ + chmod -R +x /usr/local/bin \ No newline at end of file diff --git a/tools/superenhancer.cwl b/tools/superenhancer.cwl deleted file mode 100644 index 8df9f17db..000000000 --- a/tools/superenhancer.cwl +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env cwl-runner - -cwlVersion: "cwl:draft-3" - -class: CommandLineTool - -description: | - Super Enhancer Workflow - Usage: python ROSE_main.py [options...] [in.bam] - Options: - -g STRING REFERENCE GENOME BUILD UCSC FILE: one of hg18, hg19, mm8, mm9, mm10 file for example hg18_refseq.ucsc - -i FILE INPUT GFF file: .gff file of regions that contains the enhancers - -r FILE RANKING BAM: .bam file used for ranking enhancers which is sorted and indexed - -o STRING OUTPUT DIRECTORY: directory to store output - -s INT STITCHING DISTANCE: max distance between two regios to stitch together. (Default: 12500) - -t INT TSS EXCLUSION ZONE: excludes regios contained within +/- this distance from TSS in order to account for promoter bias (Default: 0, recommended: 2500) - -c FILE CONTROL_BAM: .bam file used as control. Subtracted from the density of the ranking_Bam - -requirements: -- $import: envvar-global.yml -- $import: superenhancer.yml -- class: InlineJavascriptRequirement - -inputs: -- id: "genome" - type: File - description: "REFERENCE GENOME BUILD UCSC FILE: one of hg18, hg19, mm8, mm9, mm10 file for example hg18_refseq.ucsc" - inputBinding: - prefix: "-g" - -- id: "inputgff" - type: File - description: "Input GFF file" - inputBinding: - prefix: "-i" - -- id: "inputbam" - type: File - description: "Input sorted BAM file" - inputBinding: - prefix: "-r" - -- id: "inputbai" - type: File - description: "Input indexed BAI file" - -- id: "output_name" - type: string - description: "output folder name" - inputBinding: - prefix: "-o" - -- id: "tss" - type: ["null", int] - description: "TSS_Exclusion: excludes regios contained within +/- this distance from TSS in order to account for promoter bias (Default: 0, recommended: 2500)" - inputBinding: - prefix: "-t" - -- id: "stitch_distance" - type: ["null", int] - description: "max distance between two regios to stitch together. (Default: 12500)" - inputBinding: - prefix: "-s" - -- id: "controlbam" - type: ["null", File] - description: ".bam file used as control. Subtracted from the density of the ranking_Bam" - inputBinding: - prefix: "-c" - -- id: "bams" - type: ["null", File] - description: "A comma separated list of additional bam files to map to" - inputBinding: - prefix: "-b" - -outputs: -- id: "All_enhancers" - type: - type: array - items: File - outputBinding: - glob: $(inputs.output_name) - - -baseCommand: ["python", "/usr/local/bin/ROSE_main.py"] - -$schemas: - - https://sparql-test.commonwl.org/schema.rdf - -$namespaces: - s: http://schema.org/ - -s:mainEntity: - class: s:SoftwareSourceCode - s:name: "superenhnacer" - s:about: > - PURPOSE: To create stitched enhancers, and to separate super-enhancers from typical enhancers using sequencing data (.bam) given a file of previously identified constituent enhancers (.gff)It makes use of the superenhancer script developed by Young Lab - - s:url: http://younglab.wi.mit.edu/super_enhancer_code.html - - s:codeRespository: https://github.com/bharath-cchmc/edited-Super-Enhancer - - s:license: - - http://younglab.wi.mit.edu/ROSE/LICENSE.txt - - https://opensource.org/licenses/MIT - - https://opensource.org/licenses/BSD-3-Clause - - s:targetProduct: - class: s:SoftwareApplication - s:applicationCategory: "CommandLine Tool" - - s:programmingLanguage: "Python" - - s:publication: - - class: s:ScholarlyArticle - id: http://dx.doi.org/10.1016/j.cell.2013.03.035 - s:name: Warren A. Whyte, David A. Orlando, Denes Hnisz, Brian J. Abraham, Charles Y. Lin, Michael H. Kagey, Peter B. Rahl, Tong Ihn Lee and Richard A. Young Cell - s:url: http://www.cell.com/abstract/S0092-8674(13)00392-9 - - - class: s:ScholarlyArticle - id: http://dx.doi.org/10.1016/j.cell.2013.03.036 - s:name: Jakob Lovén, Heather A. Hoke, Charles Y. Lin, Ashley Lau, David A. Orlando, Christopher R. Vakoc, James E. Bradner, Tong Ihn Lee, and Richard A. Young Cell - s:url: http://www.cell.com/abstract/S0092-8674(13)00393-0 - -s:downloadUrl: https://bitbucket.org/bharath-cchmc/se-docker-cwl-trial -s:codeRepository: https://github.com/common-workflow-language/workflows -s:license: http://www.apache.org/licenses/LICENSE-2.0 - -s:isPartOf: - class: s:CreativeWork - s:name: "Common Workflow Language" - s:url: http://commonwl.org/ - -s:author: - class: s:Person - s:name: "Bharath Manicka Vasagam" - s:email: mailto:Bharath.Manickavasagam@cchmc.org - s:worksFor: - - class: s:Organization - s:name: "Cincinnati Children's Hospital Medical Center" - s:location: "3333 Burnet Ave, Cincinnati, OH 45229-3026" - s:department: - - class: s:Organization - s:name: "Barski Lab" \ No newline at end of file diff --git a/tools/superenhancer.yml b/tools/superenhancer.yml index da654f60e..e480d2d57 100644 --- a/tools/superenhancer.yml +++ b/tools/superenhancer.yml @@ -1,83 +1,90 @@ - class: DockerRequirement - dockerPull: bharath90/superenhancer:v0.1 - # dockerFile: | - # ################################################################# - # # Dockerfile - # # - # # Software: Super Enhancer - # # Software Version: 1a9bb86b5464 - # # Description: Super Enhancer Image for Scidap - # # Website: https://bitbucket.org/young_computation/rose,http://scidap.com/ - # # Provides: https://bitbucket.org/young_computation/rose/get/1a9bb86b5464.zip - # # Base Image: scidap/scidap:v0.0.1 - # # Build Cmd: docker build --rm -t scidap/superenhancer:v0.1 . - # # Pull Cmd: docker pull scidap/superenhancer:v0.1 - # # Run Cmd: docker run --rm scidap/superenhancer:v0.1 - # ################################################################# - - # ### Base Image - # FROM scidap/scidap:v0.0.1 - # MAINTAINER Andrey V Kartashov "porter@porter.st" - # ENV DEBIAN_FRONTEND noninteractive - - # ################## BEGIN INSTALLATION ###################### - - # WORKDIR /tmp - - # ### Install required packages - - # RUN apt-get clean all &&\ - # apt-get update &&\ - # apt-get install -y \ - # libncurses5-dev && \ - # apt-get install -y --no-install-recommends \ - # ed \ - # less \ - # locales \ - # vim-tiny \ - # wget \ - # ca-certificates &&\ - # apt-get clean && \ - # apt-get purge && \ - # rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* /var/lib/apt/lists/* - - # ### Install R - # RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ - # && locale-gen en_US.utf8 \ - # && /usr/sbin/update-locale LANG=en_US.UTF-8 - - # ENV LC_ALL en_US.UTF-8 - # ENV LANG en_US.UTF-8 - - # ## Use Debian unstable via pinning -- new style via APT::Default-Release - # RUN echo "deb http://http.debian.net/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list \ - # && echo 'APT::Default-Release "testing";' > /etc/apt/apt.conf.d/default - - # ENV R_BASE_VERSION 3.2.5 - - # ## Now install R and littler, and create a link for littler in /usr/local/bin - # ## Also set a default CRAN repo, and make sure littler knows about it too - # RUN apt-get update \ - # && apt-get install -t unstable -y --no-install-recommends \ - # littler \ - # r-cran-littler \ - # r-base=${R_BASE_VERSION}* \ - # r-base-dev=${R_BASE_VERSION}* \ - # r-recommended=${R_BASE_VERSION}* \ - # && echo 'options(repos = c(CRAN = "https://cran.rstudio.com/"), download.file.method = "libcurl")' >> /etc/R/Rprofile.site \ - # && echo 'source("/etc/R/Rprofile.site")' >> /etc/littler.r \ - # && ln -s /usr/share/doc/littler/examples/install.r /usr/local/bin/install.r \ - # && ln -s /usr/share/doc/littler/examples/install2.r /usr/local/bin/install2.r \ - # && ln -s /usr/share/doc/littler/examples/installGithub.r /usr/local/bin/installGithub.r \ - # && ln -s /usr/share/doc/littler/examples/testInstalled.r /usr/local/bin/testInstalled.r \ - # && install.r docopt \ - # && rm -rf /tmp/downloaded_packages/ /tmp/*.rds \ - # && rm -rf /var/lib/apt/lists/* - # ### Installing the Super Enhancer Script - - # RUN wget -q -O young_computation-rose-1a9bb86b5464.zip https://bitbucket.org/young_computation/rose/get/1a9bb86b5464.zip && \ - # unzip young_computation-rose-1a9bb86b5464.zip &&\ - # cp young_computation-rose-1a9bb86b5464/* /usr/local/bin && \ - # rm -rf young_computation-rose-1a9bb86b5464 && \ - # rm -f young_computation-rose-1a9bb86b5464.zip +cwlVersion: v1.0 + +class: CommandLineTool + + +requirements: +- class: InlineJavascriptRequirement +- $import: envvar-global.yml + +hints: + DockerRequirement: + dockerPull: scidap/superenhancer + +doc: | + Super Enhancer Workflow + Usage: python ROSE_main.py [options...] [in.bam] + Options: + -g STRING REFERENCE GENOME BUILD UCSC FILE: one of hg18, hg19, mm8, mm9, mm10 file for example hg18_refseq.ucsc + -i FILE INPUT GFF file: .gff file of regions that contains the enhancers + -r FILE RANKING BAM: .bam file used for ranking enhancers which is sorted and indexed + -o STRING OUTPUT DIRECTORY: directory to store output + -s INT STITCHING DISTANCE: max distance between two regios to stitch together. (Default: 12500) + -t INT TSS EXCLUSION ZONE: excludes regios contained within +/- this distance from TSS in order to account for promoter bias (Default: 0, recommended: 2500) + -c FILE CONTROL_BAM: .bam file used as control. Subtracted from the density of the ranking_Bam + +inputs: + genome: + type: File + doc: "REFERENCE GENOME BUILD UCSC FILE: one of hg18, hg19, mm8, mm9, mm10 file for example hg18_refseq.ucsc" + inputBinding: + prefix: "-g" + + inputgff: + type: File + doc: "Input GFF file, " + inputBinding: + prefix: "-i" + + inputbam: + type: File + doc: "Input sorted BAM file" + inputBinding: + prefix: "-r" + secondaryFiles: + - ".bai" + + output_name: + type: string + doc: "output folder name" + inputBinding: + prefix: "-o" + + tss: + type: int? + default: 0 + doc: "TSS_Exclusion: excludes regios contained within +/- this distance from TSS in order to account for promoter bias (Default: 0, recommended: 2500)" + inputBinding: + prefix: "-t" + + stitch_distance: + type: int? + default: 12500 + doc: "max distance between two regios to stitch together. (Default: 12500)" + inputBinding: + prefix: "-s" + + controlbam: + type: File? + doc: ".bam file used as control. Subtracted from the density of the ranking_Bam" + inputBinding: + prefix: "-c" + secondaryFiles: + - ".bai" + + bams: + type: File? + doc: "A comma separated list of additional bam files to map to" + inputBinding: + prefix: "-b" + secondaryFiles: + - ".bai" + +outputs: + All_enhancers: + type: Directory + outputBinding: + glob: $(inputs.output_name) + +baseCommand: ["python", "/usr/local/bin/ROSE_main.py"]