Adding RNA-Seq demo
authorswz <swz@curii.com>
Thu, 15 Sep 2022 12:44:44 +0000 (12:44 +0000)
committerswz <swz@curii.com>
Thu, 15 Sep 2022 12:44:44 +0000 (12:44 +0000)
no issue #
Arvados-DCO-1.1-Signed-off-by: Sarah Wait Zaranek <swz@curii.com>

.licenseignore
RNA-Seq/cwl/RNA-seq-wf.cwl [new file with mode: 0644]
RNA-Seq/cwl/helper/alignment.cwl [new file with mode: 0644]
RNA-Seq/cwl/helper/featureCounts.cwl [new file with mode: 0644]
RNA-Seq/cwl/helper/subdirs.cwl [new file with mode: 0644]
RNA-Seq/docker/Dockerfile [new file with mode: 0644]

index 35252fda76e87d1dac3e7d32c98e94bea93b026b..e61761424c2dac74622bc042187fd0e5b45647d1 100644 (file)
@@ -1 +1,2 @@
 LICENSE.txt
+*
diff --git a/RNA-Seq/cwl/RNA-seq-wf.cwl b/RNA-Seq/cwl/RNA-seq-wf.cwl
new file mode 100644 (file)
index 0000000..97461ce
--- /dev/null
@@ -0,0 +1,50 @@
+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: {}
diff --git a/RNA-Seq/cwl/helper/alignment.cwl b/RNA-Seq/cwl/helper/alignment.cwl
new file mode 100644 (file)
index 0000000..6712aae
--- /dev/null
@@ -0,0 +1,48 @@
+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
diff --git a/RNA-Seq/cwl/helper/featureCounts.cwl b/RNA-Seq/cwl/helper/featureCounts.cwl
new file mode 100644 (file)
index 0000000..a17163f
--- /dev/null
@@ -0,0 +1,25 @@
+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
diff --git a/RNA-Seq/cwl/helper/subdirs.cwl b/RNA-Seq/cwl/helper/subdirs.cwl
new file mode 100644 (file)
index 0000000..fc4fe7d
--- /dev/null
@@ -0,0 +1,22 @@
+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};
+  }
diff --git a/RNA-Seq/docker/Dockerfile b/RNA-Seq/docker/Dockerfile
new file mode 100644 (file)
index 0000000..e66754d
--- /dev/null
@@ -0,0 +1,14 @@
+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