--- /dev/null
+cwlVersion: v1.2
+class: Workflow
+label: RNAseq CWL practice workflow
+
+inputs:
+ fq: File[]
+ genome: Directory
+ gtf: File
+
+steps:
+ alignment:
+ run: alignment.cwl
+ scatter: fq
+ in:
+ fq: fq
+ genome: genome
+ gtf: gtf
+ out: [qc_html, bam_sorted_indexed]
+
+ featureCounts:
+ requirements:
+ ResourceRequirement:
+ ramMin: 500
+ run: featureCounts.cwl
+ in:
+ counts_input_bam: alignment/bam_sorted_indexed
+ gtf: gtf
+ out: [featurecounts]
+
+ ### 2. Organizing output files into Directories
+ output-subdirs:
+ run: subdirs.cwl
+ in:
+ fq: fq
+ bams: alignment/bam_sorted_indexed
+ qc: alignment/qc_html
+ out: [dirs]
+
+outputs:
+ dirs:
+ type: Directory[]
+ outputSource: output-subdirs/dirs
+
+ featurecounts:
+ type: File
+ outputSource: featureCounts/featurecounts
+
+requirements:
+ SubworkflowFeatureRequirement: {}
+ ScatterFeatureRequirement: {}
--- /dev/null
+cwlVersion: v1.2
+class: Workflow
+label: RNAseq CWL practice workflow
+
+inputs:
+ fq: File
+ genome: Directory
+ gtf: File
+
+requirements:
+ StepInputExpressionRequirement: {}
+
+steps:
+ fastqc:
+ run: bio-cwl-tools/fastqc/fastqc_2.cwl
+ in:
+ reads_file: fq
+ out: [html_file]
+
+ STAR:
+ requirements:
+ ResourceRequirement:
+ ramMin: 9000
+ run: bio-cwl-tools/STAR/STAR-Align.cwl
+ in:
+ RunThreadN: {default: 4}
+ GenomeDir: genome
+ ForwardReads: fq
+ OutSAMtype: {default: BAM}
+ SortedByCoordinate: {default: true}
+ OutSAMunmapped: {default: Within}
+ ### 1. Expressions on step inputs
+ OutFileNamePrefix: {valueFrom: "$(inputs.ForwardReads.nameroot)."}
+ out: [alignment]
+
+ samtools:
+ run: bio-cwl-tools/samtools/samtools_index.cwl
+ in:
+ bam_sorted: STAR/alignment
+ out: [bam_sorted_indexed]
+
+outputs:
+ qc_html:
+ type: File
+ outputSource: fastqc/html_file
+ bam_sorted_indexed:
+ type: File
+ outputSource: samtools/bam_sorted_indexed
--- /dev/null
+cwlVersion: v1.2
+class: CommandLineTool
+
+inputs:
+ gtf: File
+ counts_input_bam:
+ - File
+ - File[]
+
+baseCommand: featureCounts
+
+arguments: [-T, $(runtime.cores),
+ -a, $(inputs.gtf),
+ -o, featurecounts.tsv,
+ $(inputs.counts_input_bam)]
+
+outputs:
+ featurecounts:
+ type: File
+ outputBinding:
+ glob: featurecounts.tsv
+
+hints:
+ DockerRequirement:
+ dockerPull: quay.io/biocontainers/subread:1.5.0p3--0
--- /dev/null
+cwlVersion: v1.2
+class: ExpressionTool
+requirements:
+ InlineJavascriptRequirement: {}
+inputs:
+ fq: File[]
+ bams: File[]
+ qc: File[]
+outputs:
+ dirs: Directory[]
+expression: |-
+ ${
+ var dirs = [];
+ for (var i = 0; i < inputs.bams.length; i++) {
+ dirs.push({
+ "class": "Directory",
+ "basename": inputs.fq[i].nameroot,
+ "listing": [inputs.bams[i], inputs.qc[i]]
+ });
+ }
+ return {"dirs": dirs};
+ }
--- /dev/null
+FROM debian:10-slim
+MAINTAINER Peter Amstutz <peter.amstutz@curii.com>
+
+RUN apt-get update -qy
+RUN apt-get install -qy build-essential wget unzip zlib1g-dev
+
+# Install BWA 07.7.17
+RUN wget https://github.com/lh3/bwa/archive/v0.7.17.zip && \
+ unzip v0.7.17 && \
+ cd bwa-0.7.17 && \
+ make && \
+ cp bwa /usr/bin && \
+ cd .. && \
+ rm -rf bwa-0.7.17