diff --git a/biopet/biopet.wdl b/biopet/biopet.wdl index 149d8bfdf33d75a2b1a86b7d2ab06294df7410ae..15f0771381d81ae668aaf25d8e173b3551bfd8d9 100644 --- a/biopet/biopet.wdl +++ b/biopet/biopet.wdl @@ -84,7 +84,7 @@ task ExtractAdaptersFastqc { Float? adapterCutoff Boolean? outputAsFasta - Int memory = 4 + Int memory = 8 Float memoryMultiplier = 5 # This is ridiculous... String dockerTag = "0.2--1" } @@ -179,7 +179,7 @@ task FastqSync { output { FastqPair out1 = object { R1: out1path, - R1: out2path + R2: out2path } } diff --git a/bowtie.wdl b/bowtie.wdl new file mode 100644 index 0000000000000000000000000000000000000000..6aa886da52c5c088f7b831b5077af82d22bc777c --- /dev/null +++ b/bowtie.wdl @@ -0,0 +1,85 @@ +version 1.0 + +# MIT License +# +# Copyright (c) 2018 Leiden University Medical Center +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +task Bowtie { + input { + Array[File]+ readsUpstream + Array[File]+? readsDownstream + String outputPath = "mapped.bam" + Array[File]+ indexFiles + Int? seedmms + Int? seedlen + Int? k + Boolean best = false + Boolean strata = false + String? samRG + Int threads = 1 + Int memory = 8 + Int picardMemory = 4 + # Image contains bowtie=1.2.2 and picard=2.9.2 + String dockerImage = "quay.io/biocontainers/mulled-v2-bfe71839265127576d3cd749c056e7b168308d56:1d8bec77b352cdcf3e9ff3d20af238b33ed96eae-0" + } + + # Assume fastq input with -q flag. + # The output always needs to be SAM as it is piped into Picard SortSam + # Hence, the --sam flag is used. + + command { + set -e -o pipefail + mkdir -p $(dirname ~{outputPath}) + bowtie -q \ + --sam \ + ~{"--seedmms " + seedmms} \ + ~{"--seedlen " + seedlen} \ + ~{"-k " + k} \ + ~{true="--best" false="" best} \ + ~{true="--strata" false="" strata} \ + ~{"--threads " + threads} \ + ~{"--sam-RG '" + samRG}~{true="'" false="" defined(samRG)} \ + ~{sub(indexFiles[0], "(\.rev)?\.[0-9]\.ebwt$", "")} \ + ~{true="-1" false="" defined(readsDownstream)} ~{sep="," readsUpstream} \ + ~{true="-2" false="" defined(readsDownstream)} ~{sep="," readsDownstream} \ + | picard -Xmx~{picardMemory}G SortSam \ + INPUT=/dev/stdin \ + OUTPUT=~{outputPath} \ + SORT_ORDER=coordinate \ + CREATE_INDEX=true + } + + output { + File outputBam = outputPath + File outputBamIndex = sub(outputPath, "\.bam$", ".bai") + } + + runtime { + cpu: threads + memory: memory + picardMemory + picardMemory + docker: dockerImage + } +} + +struct BowtieIndex { + File fasta + Array[File] indexFiles +} \ No newline at end of file diff --git a/collect-columns.wdl b/collect-columns.wdl index 3bed1b619b4c9b4a6a276a7d20b6eca46c9b3121..68c9dcc884563d41e6322440e2f0743368c65ef7 100644 --- a/collect-columns.wdl +++ b/collect-columns.wdl @@ -13,7 +13,7 @@ task CollectColumns { File? referenceGtf String? featureAttribute - String dockerTag = "0.1.1--py_0" + String dockerTag = "0.2.0--py_1" } command { diff --git a/common.wdl b/common.wdl index d5db7685565de1d563ddf2b74ef57396a919035f..7b85d461c58869e45cc818344ffb4d24e2f293d2 100644 --- a/common.wdl +++ b/common.wdl @@ -131,23 +131,6 @@ task MapMd5 { } } -task ObjectMd5 { - input { - Object the_object - } - - command { - cat ~{write_object(the_object)} | md5sum - | sed -e 's/ -//' - } - - output { - String md5sum = read_string(stdout()) - } - - runtime { - memory: 1 - } -} task StringArrayMd5 { input { diff --git a/cutadapt.wdl b/cutadapt.wdl index 9b3f4a91f0f68d8b0b8974097f20093e26a54d3c..cf9095bd2fe3a1df35f83fc27ad8cef8b5e6e664 100644 --- a/cutadapt.wdl +++ b/cutadapt.wdl @@ -62,7 +62,7 @@ task Cutadapt { String? reportPath Int cores = 1 - Int memory = 8 + Int memory = 16 String dockerTag = "2.3--py36h14c3975_0" } diff --git a/hisat2.wdl b/hisat2.wdl index aeb3cbea159605a1daf756a48babf98beaf26669..0c8417f7ae3592e863477d251a550b7f8457feca 100644 --- a/hisat2.wdl +++ b/hisat2.wdl @@ -2,8 +2,7 @@ version 1.0 task Hisat2 { input { - File indexDirectory - String indexBasename + Array[File]+ indexFiles File inputR1 File? inputR2 String outputBam @@ -24,7 +23,7 @@ task Hisat2 { mkdir -p $(dirname ~{outputBam}) hisat2 \ -p ~{threads} \ - -x ~{indexDirectory}/~{indexBasename} \ + -x ~{sub(indexFiles[0], "\.[0-9]\.ht2", "")} \ ~{true="-1" false="-U" defined(inputR2)} ~{inputR1} \ ~{"-2" + inputR2} \ --rg-id ~{readgroup} \ diff --git a/htseq.wdl b/htseq.wdl index 3011c36146a6db7d577c9cd757dd2bfb2441e734..a687a8a6242b4ec0a8b1dd2b3b46b5a2c49d3923 100644 --- a/htseq.wdl +++ b/htseq.wdl @@ -5,12 +5,12 @@ task HTSeqCount { Array[File]+ inputBams Array[File]+ inputBamsIndex File gtfFile - String outputTable + String outputTable = "output.tsv" String format = "bam" String order = "pos" String stranded = "no" - Int memory = 20 + Int memory = 40 String dockerTag = "0.9.1--py36h7eb728f_2" } diff --git a/mergecounts.wdl b/mergecounts.wdl index dcd76a06a46d5a951b7f85a7808300f31f9cd33d..e89a39ed833578c44cec06604449ae23f6d6512f 100644 --- a/mergecounts.wdl +++ b/mergecounts.wdl @@ -1,5 +1,6 @@ version 1.0 +#DEPRECATED task MergeCounts { input { Array[File] inputFiles diff --git a/multiqc.wdl b/multiqc.wdl index ec2f4a5a622ed8f2a7755be121b6865d7e278bfc..76563a494f1998eab5b2f83ac42e5bf7e81a47fe 100644 --- a/multiqc.wdl +++ b/multiqc.wdl @@ -5,7 +5,7 @@ task MultiQC { String dockerTag = "1.7--py_1" # Use a string here so cromwell does not relocate an entire analysis directory String analysisDirectory - Array[File] dependencies # This must be used in order to run multiqc after these tasks. + Array[File] dependencies = [] # This must be used in order to run multiqc after these tasks. Boolean force = false Boolean dirs = false Int? dirsDepth @@ -37,6 +37,7 @@ task MultiQC { String? clConfig Boolean verbose = false Boolean quiet = false + Array[Boolean] finished = [] # An array of booleans that can be used to let multiqc wait on stuff. } command { diff --git a/picard.wdl b/picard.wdl index 2628ca8125e78087b4fc57e98118e15a9cde47a0..9f42acbd781f47e5cc08a364f15e613bfd9e962a 100644 --- a/picard.wdl +++ b/picard.wdl @@ -50,8 +50,8 @@ task CollectMultipleMetrics { Boolean collectSequencingArtifactMetrics = true Boolean collectQualityYieldMetrics = true - Int memory = 4 - Float memoryMultiplier = 3.5 + Int memory = 8 + Float memoryMultiplier = 4 String dockerTag = "8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0" } @@ -133,8 +133,8 @@ task CollectRnaSeqMetrics { String basename String strandSpecificity = "NONE" - Int memory = 4 - Float memoryMultiplier = 3.0 + Int memory = 8 + Float memoryMultiplier = 4.0 String dockerTag = "8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0" } @@ -278,7 +278,7 @@ task MarkDuplicates { String outputBamPath String metricsPath - Int memory = 4 + Int memory = 8 Float memoryMultiplier = 3.0 String dockerTag = "2.18.26--0" diff --git a/star.wdl b/star.wdl index dde8be228b89de52432ad33f666efdf74f9b06b3..edc57155ee89b240e7aed5644fc3294159899406 100644 --- a/star.wdl +++ b/star.wdl @@ -2,14 +2,14 @@ version 1.0 task Star { input { - Array[File] inputR1 + Array[File]+ inputR1 Array[File]? inputR2 - File genomeDir + Array[File]+ indexFiles String outFileNamePrefix String outSAMtype = "BAM SortedByCoordinate" String readFilesCommand = "zcat" String? outStd - String? twopassMode + String? twopassMode = "Basic" Array[String]? outSAMattrRGline String? outSAMunmapped = "Within KeepPairs" Int? limitBAMsortRAM @@ -19,7 +19,7 @@ task Star { String dockerTag = "2.6.0c--0" } - # Needs to be extended for all possible output extensions + #TODO Needs to be extended for all possible output extensions Map[String, String] samOutputNames = {"BAM SortedByCoordinate": "sortedByCoord.out.bam"} command { @@ -28,7 +28,7 @@ task Star { STAR \ --readFilesIn ~{sep=',' inputR1} ~{sep="," inputR2} \ --outFileNamePrefix ~{outFileNamePrefix} \ - --genomeDir ~{genomeDir} \ + --genomeDir ~{sub(indexFiles[0], basename(indexFiles[0]), "")} \ --outSAMtype ~{outSAMtype} \ --readFilesCommand ~{readFilesCommand} \ ~{"--outSAMunmapped " + outSAMunmapped} \