diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..785661119a9f3d1ca173a9c92a64a52bbf930328 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,30 @@ +name: Continuous integration + +on: + pull_request: + paths_ignore: + - "docs/**" + +defaults: + run: + # This is needed for miniconda, see: + # https://github.com/marketplace/actions/setup-miniconda#important + shell: bash -l {0} + +jobs: + lint: + runs-on: ubuntu-latest + name: Womtool validate and submodule up to date. + steps: + - uses: actions/checkout@v2.3.4 + with: + submodules: recursive + - name: install miniconda + uses: conda-incubator/setup-miniconda@v2.0.1 + with: + channels: conda-forge,bioconda,defaults + # Conda-incubator uses 'test' environment by default. + - name: install requirements + run: conda install -n test cromwell miniwdl wdl-aid + - name: run linting + run: bash scripts/biowdl_lint.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3cf0681f99cb49f3646f41e962b16517ff417741..0000000000000000000000000000000000000000 --- a/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -# We use conda to install cromwell. - -language: python - -python: - - 3.6 - -before_install: - # Install conda - - export MINICONDA=${HOME}/miniconda - - export PATH=${MINICONDA}/bin:${PATH} - - wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh - - bash miniconda.sh -b -f -p ${MINICONDA} - - conda config --set always_yes yes - - conda config --add channels defaults - - conda config --add channels bioconda - - conda config --add channels conda-forge - -install: - - conda install --file requirements-test.txt - -script: - - bash scripts/biowdl_lint.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index a6cc9bff45a1ea1e439f9c5f84e239cdc1c211c4..b3dbc7f6a1e23f3317820d112a95e6c2348e4da6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,16 +7,48 @@ Newest changes should be on top. This document is user facing. Please word the changes in such a way that users understand how the changes affect the new version. --> +version 5.0.1 +--------------------------- ++ add runtime memory to number of tasks. -version 5.0.0-dev +version 5.0.0 --------------------------- ++ Update CPAT to version 3.0.4. + + Changed the `outFilePath` input to `outputPrefix`. ++ Survivor: Change integer to string literal in boolean parameters. ++ Samtools: Add mkdir line to `Fastq` task. ++ Add new parameters from CCS version 6.0.0 and add two new outputs: + `ccs_report.txt` & `zmw_metrics.json.gz`. ++ Change CutAdapt memory to `5G`. ++ Increase multiqc base time from 5 to 10. ++ Update biowdl-input-converter to version 0.3. ++ Update minimap2 to version 2.20. ++ Update lima to version 2.2.0. ++ Update ccs to version 6.0.0. ++ Update bam2fastx to version 1.3.1. ++ Add memory values to GffCompare, GffRead and CPAT. ++ GffCompare: Make the `referenceAnnotation` input optional. ++ Stringtie: Add the `minimumCoverage` input. ++ UMI-tools: Update default dockerImage to use umitools v1.1.1 with correct + samtools version (1.10). ++ UMI-tools: Re-introduce samtools indexing. ++ UMI-tools: Update default dockerImage to use umitools v1.1.1. ++ UMI-tools dedup: Add tempdir. ++ Bcftools view: Add options for filtering (include, exclude, excludeUncalled). ++ Duphold: Add `duphold.wdl`. ++ Add new wdl file prepareShiny.wdl for creating input files for shiny app. ++ mergePacBio: Rename `mergedReport` to `outputPathMergedReport`. ++ Lima: Fix copy commands. ++ Fixed the `size` call in the default for gffread's timeMinutes, to retrieve + GBs instead of bytes. ++ Update stringtie to version 1.3.6. + Update Lima to version 2.0.0. + Update IsoSeq3 to version 3.4.0. + Update samtools to version 1.11. + Update Picard to version 2.23.8. + Update NanoPlot to version 1.32.1. + Update MultiQC to version 1.9. -+ Update StringTie to version 2.1.4. ++ ~Update StringTie to version 2.1.4.~ + Complete `parameter_meta` for tasks missing the outputs. + DeepVariant: Add an optional input for the gvcf index. + Samtools: `Sort` task now has `threads` in runtime instead of `1`. diff --git a/CPAT.wdl b/CPAT.wdl index afb6785392f7b71aa57f32ada4f31db3e4efc138..e6cef3ea454cbbaec611ee8a45b8fecd7bbe34a8 100644 --- a/CPAT.wdl +++ b/CPAT.wdl @@ -23,7 +23,7 @@ version 1.0 task CPAT { input { File gene - String outFilePath + String outputPrefix File hex File logitModel @@ -34,8 +34,9 @@ task CPAT { Array[String]? startCodons Array[String]? stopCodons + String memory = "4G" Int timeMinutes = 10 + ceil(size(gene, "G") * 30) - String dockerImage = "biocontainers/cpat:v1.2.4_cv1" + String dockerImage = "quay.io/biocontainers/cpat:3.0.4--py39hcbe4a3b_0" } # Some WDL magic in the command section to properly output the start and @@ -44,10 +45,10 @@ task CPAT { # to non-optionals. command { set -e - mkdir -p "$(dirname ~{outFilePath})" + mkdir -p "$(dirname ~{outputPrefix})" cpat.py \ --gene ~{gene} \ - --outfile ~{outFilePath} \ + --outfile ~{outputPrefix} \ --hex ~{hex} \ --logitModel ~{logitModel} \ ~{"--ref " + referenceGenome} \ @@ -56,29 +57,32 @@ task CPAT { } output { - File outFile = outFilePath + File orfSeqs = "~{outputPrefix}.ORF_seqs.fa" + File orfProb = "~{outputPrefix}.ORF_prob.tsv" + File orfProbBest = "~{outputPrefix}.ORF_prob.best.tsv" + File noOrf = "~{outputPrefix}.no_ORF.txt" + File rScript = "~{outputPrefix}.r" } runtime { - docker: dockerImage + memory: memory time_minutes: timeMinutes + docker: dockerImage } parameter_meta { # inputs gene: {description: "Equivalent to CPAT's `--gene` option.", category: "required"} - outFilePath: {description: "Equivalent to CPAT's `--outfile` option.", category: "required"} + outputPrefix: {description: "Equivalent to CPAT's `--outfile` option.", category: "required"} hex: {description: "Equivalent to CPAT's `--hex` option.", category: "required"} logitModel: {description: "Equivalent to CPAT's `--logitModel` option.", category: "required"} referenceGenome: {description: "Equivalent to CPAT's `--ref` option.", category: "advanced"} referenceGenomeIndex: {description: "The index of the reference. Should be added as input if CPAT should not index the reference genome.", category: "advanced"} startCodons: {description: "Equivalent to CPAT's `--start` option.", category: "advanced"} stopCodons: {description: "Equivalent to CPAT's `--stop` option.", category: "advanced"} + memory: {description: "The amount of memory available to the job.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} - - # outputs - outFile: {description: "CPAT logistic regression model."} } } diff --git a/VERSION b/VERSION index 0062ac971805f7b700058db4bb0f5c5b771dda76..09b254e90c61ed28bb68a54752cf04f6a736a7d3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.0.0 +6.0.0 diff --git a/bam2fastx.wdl b/bam2fastx.wdl index 2ae22a57acfdd005cd048255e67e85b5c3d294ce..0bdccca8db6abfcc9ae3b99c721796a7f0b1af4f 100644 --- a/bam2fastx.wdl +++ b/bam2fastx.wdl @@ -32,7 +32,7 @@ task Bam2Fasta { String memory = "2G" Int timeMinutes = 15 - String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.0--he1c1bb9_8" + String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.1--hf05d43a_1" } command { @@ -100,7 +100,7 @@ task Bam2Fastq { String memory = "2G" Int timeMinutes = 15 - String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.0--he1c1bb9_8" + String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.1--hf05d43a_1" } command { diff --git a/bcftools.wdl b/bcftools.wdl index 0738d1569d66f128bd3c87509f9094e4507a0d7a..02a02563f622766f2481ecfd27c6668c6f0b27d1 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -291,8 +291,10 @@ task View { File inputFile String outputPath = "output.vcf" Boolean excludeUncalled = false + String? exclude String? include + String memory = "256M" Int timeMinutes = 1 + ceil(size(inputFile, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" diff --git a/biowdl.wdl b/biowdl.wdl index 06b1d75696989151b61360883b94fba7c4114528..dead830383705ee298c2bb018142915bca494b03 100644 --- a/biowdl.wdl +++ b/biowdl.wdl @@ -34,7 +34,7 @@ task InputConverter { String memory = "128M" Int timeMinutes = 1 - String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.2.1--py_0" + String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.3.0--pyhdfd78af_0" } command <<< diff --git a/ccs.wdl b/ccs.wdl index 4446937b45271a4f90906e4caa6d0d6ffad7ad90..29f1a7f9468cdb72da35b168d4821d430536a319 100644 --- a/ccs.wdl +++ b/ccs.wdl @@ -24,12 +24,19 @@ task CCS { input { File subreadsFile String outputPrefix + String logLevel = "WARN" Int minPasses = 3 + Int topPasses = 60 Int minLength = 10 Int maxLength = 50000 Boolean byStrand = false + Boolean skipPolish = false + Boolean all = false + Boolean subreadFallback = false + Boolean allKinetics = false + Boolean hifiKinetics = false + Float minSnr = 2.5 Float minReadQuality = 0.99 - String logLevel = "WARN" File? subreadsIndexFile String? chunkString @@ -37,7 +44,7 @@ task CCS { Int threads = 2 String memory = "4G" Int timeMinutes = 1440 - String dockerImage = "quay.io/biocontainers/pbccs:5.0.0--0" + String dockerImage = "quay.io/biocontainers/pbccs:6.0.0--h9ee0642_2" } command { @@ -45,15 +52,24 @@ task CCS { mkdir -p "$(dirname ~{outputPrefix})" ccs \ --min-passes ~{minPasses} \ + --min-snr ~{minSnr} \ + --top-passes ~{topPasses} \ --min-length ~{minLength} \ --max-length ~{maxLength} \ ~{true="--by-strand" false="" byStrand} \ + ~{true="--skip-polish" false="" skipPolish} \ + ~{true="--all" false="" all} \ + ~{true="--subread-fallback" false="" subreadFallback} \ + ~{true="--all-kinetics" false="" allKinetics} \ + ~{true="--hifi-kinetics" false="" hifiKinetics} \ --min-rq ~{minReadQuality} \ --log-level ~{logLevel} \ --num-threads ~{threads} \ ~{"--chunk " + chunkString} \ + ~{"--report-file " + outputPrefix + ".ccs_report.txt"} \ ~{"--report-json " + outputPrefix + ".ccs.report.json"} \ ~{"--log-file " + outputPrefix + ".ccs.stderr.log"} \ + ~{"--metrics-json " + outputPrefix + ".zmw_metrics.json.gz"} \ ~{subreadsFile} \ ~{outputPrefix + ".ccs.bam"} } @@ -61,8 +77,10 @@ task CCS { output { File ccsBam = outputPrefix + ".ccs.bam" File ccsBamIndex = outputPrefix + ".ccs.bam.pbi" - File ccsReport = outputPrefix + ".ccs.report.json" + File ccsReport = outputPrefix + ".ccs_report.txt" + File ccsJsonReport = outputPrefix + ".ccs.report.json" File ccsStderr = outputPrefix + ".ccs.stderr.log" + File zmwMetrics = outputPrefix + ".zmw_metrics.json.gz" } runtime { @@ -76,12 +94,19 @@ task CCS { # inputs subreadsFile: {description: "Subreads input file.", category: "required"} outputPrefix: {description: "Output directory path + output file prefix.", category: "required"} + logLevel: {description: "Set log level. Valid choices: (TRACE, DEBUG, INFO, WARN, FATAL).", category: "advanced"} minPasses: {description: "Minimum number of full-length subreads required to generate ccs for a ZMW.", category: "advanced"} + topPasses: {description: "Pick at maximum the top N passes for each ZMW.", category: "advanced"} minLength: {description: "Minimum draft length before polishing.", category: "advanced"} maxLength: {description: "Maximum draft length before polishing.", category: "advanced"} byStrand: {description: "Generate a consensus for each strand.", category: "advanced"} + skipPolish: {description: "Only output the initial draft template (faster, less accurate).", category: "advanced"} + all: {description: "Emit all ZMWs.", category: "advanced"} + subreadFallback: {description: "Emit a representative subread, instead of the draft consensus, if polishing failed.", category: "advanced"} + allKinetics: {description: "Calculate mean pulse widths (PW) and interpulse durations (IPD) for every ZMW.", category: "advanced"} + hifiKinetics: {description: "Calculate mean pulse widths (PW) and interpulse durations (IPD) for every HiFi read.", category: "advanced"} + minSnr: {description: "Minimum SNR of subreads to use for generating CCS.", category: "advanced"} minReadQuality: {description: "Minimum predicted accuracy in [0, 1].", category: "common"} - logLevel: {description: "Set log level. Valid choices: (TRACE, DEBUG, INFO, WARN, FATAL).", category: "advanced"} subreadsIndexFile: {description: "Index for the subreads input file, required when using chunkString.", category: "advanced"} chunkString: {descpription: "Chunk string (e.g. 1/4, 5/5) for CCS.", category: "advanced"} threads: {description: "The number of threads to be used.", category: "advanced"} @@ -92,7 +117,9 @@ task CCS { # outputs ccsBam: {description: "Consensus reads output file."} ccsBamIndex: {description: "Index of consensus reads output file."} - ccsReport: {description: "Ccs results report file."} + ccsReport: {description: "Ccs report file."} + ccsJsonReport: {description: "Ccs results json report file."} ccsStderr: {description: "Ccs STDERR log file."} + zmwMetrics: {description: "ZMW metrics json file."} } } diff --git a/common.wdl b/common.wdl index 66bdb99cf645a36fc83192c999524c86998e26b3..d29ed5daf6f0e7355efe5bcd43265fc69bfe4aa5 100644 --- a/common.wdl +++ b/common.wdl @@ -24,6 +24,8 @@ task AppendToStringArray { input { Array[String] array String string + + String memory = "1G" } command { @@ -36,7 +38,7 @@ task AppendToStringArray { } runtime { - memory: "1G" + memory: memory } } @@ -45,9 +47,11 @@ task CheckFileMD5 { input { File file String md5 + # By default cromwell expects /bin/bash to be present in the container. # The 'bash' container does not fill this requirement. (It is in /usr/local/bin/bash) # Use a stable version of debian:stretch-slim for this. (Smaller than ubuntu) + String memory = "1G" String dockerImage = "debian@sha256:f05c05a218b7a4a5fe979045b1c8e2a9ec3524e5611ebfdd0ef5b8040f9008fa" } @@ -60,6 +64,7 @@ task CheckFileMD5 { runtime { docker: dockerImage + memory: memory } } @@ -69,6 +74,8 @@ task ConcatenateTextFiles { String combinedFilePath Boolean unzip = false Boolean zip = false + + String memory = "1G" } # When input and output is both compressed decompression is not needed. @@ -86,7 +93,7 @@ task ConcatenateTextFiles { } runtime { - memory: "1G" + memory: memory } } @@ -97,6 +104,7 @@ task Copy { Boolean recursive = false # Version not that important as long as it is stable. + String memory = "1G" String dockerImage = "debian@sha256:f05c05a218b7a4a5fe979045b1c8e2a9ec3524e5611ebfdd0ef5b8040f9008fa" } @@ -112,6 +120,7 @@ task Copy { runtime { docker: dockerImage + memory: memory } } @@ -122,6 +131,8 @@ task CreateLink { input { String inputFile String outputPath + + String memory = "1G" } command { @@ -131,12 +142,17 @@ task CreateLink { output { File link = outputPath } + + runtime { + memory: memory + } } task MapMd5 { input { Map[String,String] map + String memory = "1G" String dockerImage = "debian@sha256:f05c05a218b7a4a5fe979045b1c8e2a9ec3524e5611ebfdd0ef5b8040f9008fa" } @@ -150,7 +166,7 @@ task MapMd5 { } runtime { - memory: "1G" + memory: memory docker: dockerImage } } @@ -160,6 +176,7 @@ task StringArrayMd5 { input { Array[String] stringArray + String memory = "1G" String dockerImage = "debian@sha256:f05c05a218b7a4a5fe979045b1c8e2a9ec3524e5611ebfdd0ef5b8040f9008fa" } @@ -173,7 +190,7 @@ task StringArrayMd5 { } runtime { - memory: "1G" + memory: memory docker: dockerImage } } @@ -183,6 +200,7 @@ task TextToFile { String text String outputFile = "out.txt" + String memory = "1G" Int timeMinutes = 1 String dockerImage = "debian@sha256:f05c05a218b7a4a5fe979045b1c8e2a9ec3524e5611ebfdd0ef5b8040f9008fa" } @@ -196,7 +214,7 @@ task TextToFile { } runtime { - memory: "1G" + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -221,7 +239,7 @@ task YamlToJson { String memory = "128M" Int timeMinutes = 1 # biowdl-input-converter has python and pyyaml. - String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.2.1--py_0" + String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.3.0--pyhdfd78af_0" } command { diff --git a/cutadapt.wdl b/cutadapt.wdl index b2dbdec0c58c9d9aa5fbd464b0efff3793211dc8..b49a95d46dc64be3abe018fc0157fa250eaeba08 100644 --- a/cutadapt.wdl +++ b/cutadapt.wdl @@ -83,7 +83,7 @@ task Cutadapt { Boolean? noZeroCap Int cores = 4 - String memory = "~{300 + 100 * cores}M" + String memory = "5G" Int timeMinutes = 1 + ceil(size([read1, read2], "G") * 12.0 / cores) String dockerImage = "quay.io/biocontainers/cutadapt:2.10--py37hf01694f_1" } diff --git a/fastqc.wdl b/fastqc.wdl index 973eeed94a8d7aeddb1697e8774e20d8f4ad13f4..3a07db4e498ec2f37b03013efe6cdb590912eaa5 100644 --- a/fastqc.wdl +++ b/fastqc.wdl @@ -143,6 +143,7 @@ task Fastqc { task GetConfiguration { input { + String memory = "2G" # Needs more than 1 to pull the docker image. Int timeMinutes = 1 String dockerImage = "quay.io/biocontainers/fastqc:0.11.7--4" } @@ -165,7 +166,7 @@ task GetConfiguration { } runtime { - memory: "2G" # Needs more than 1 to pull the docker image. + memory: memory time_minute: timeMinutes docker: dockerImage } @@ -173,6 +174,7 @@ task GetConfiguration { parameter_meta { # inputs timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + memory: {description: "The amount of memory available to the job.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} # outputs diff --git a/gffcompare.wdl b/gffcompare.wdl index 50cab8a697a7196e995929d57d99497c1878182a..d06602bc5a733c702f59144cce4712ce1204c70b 100644 --- a/gffcompare.wdl +++ b/gffcompare.wdl @@ -23,7 +23,6 @@ version 1.0 task GffCompare { input { Array[File] inputGtfFiles - File referenceAnnotation # gffcmp is the default used by the program as well. This needs to be # defined in order for the output values to be consistent and correct. String outPrefix = "gffcmp" @@ -40,12 +39,14 @@ task GffCompare { Boolean debugMode = false File? inputGtfList + File? referenceAnnotation String? outputDir File? genomeSequences Int? maxDistanceFreeEndsTerminalExons Int? maxDistanceGroupingTranscriptStartSites String? namePrefix + String memory = "4G" Int timeMinutes = 1 + ceil(size(inputGtfFiles, "G") * 30) String dockerImage = "quay.io/biocontainers/gffcompare:0.10.6--h2d50403_0" @@ -64,7 +65,7 @@ task GffCompare { set -e ~{"mkdir -p " + outputDir} gffcompare \ - -r ~{referenceAnnotation} \ + ~{"-r " + referenceAnnotation} \ ~{"-o '" + totalPrefix + "'"} \ ~{"-s " + genomeSequences} \ ~{"-e " + maxDistanceFreeEndsTerminalExons} \ @@ -91,7 +92,7 @@ task GffCompare { else 0 Int noInputFiles = length(inputGtfFiles) Boolean oneFile = (noFilesGtfList + noInputFiles) == 1 - String annotatedName = if oneFile + String annotatedName = if oneFile && defined(referenceAnnotation) then "annotated" else "combined" @@ -114,8 +115,9 @@ task GffCompare { } runtime { - time_minutes: timeMinutes - docker: dockerImage + memory: memory + time_minutes: timeMinutes + docker: dockerImage } parameter_meta { @@ -140,6 +142,7 @@ task GffCompare { maxDistanceFreeEndsTerminalExons: {description: "Equivalent to gffcompare's `-e` option.", category: "advanced"} maxDistanceGroupingTranscriptStartSites: {description: "Equivalent to gffcompare's `-d` option.", category: "advanced"} namePrefix: {description: "Equivalent to gffcompare's `-p` option.", category: "advanced"} + memory: {description: "The amount of memory available to the job.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} diff --git a/gffread.wdl b/gffread.wdl index 662309895a5f98af88016a4b42e028929b0a8536..a04540f531de2f4375de76a22bbf55708698857b 100644 --- a/gffread.wdl +++ b/gffread.wdl @@ -32,7 +32,8 @@ task GffRead { String? proteinFastaPath String? filteredGffPath - Int timeMinutes = 1 + ceil(size(inputGff) * 10) + String memory = "4G" + Int timeMinutes = 1 + ceil(size(inputGff, "G") * 10) String dockerImage = "quay.io/biocontainers/gffread:0.9.12--0" } @@ -64,6 +65,7 @@ task GffRead { } runtime { + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -78,6 +80,7 @@ task GffRead { CDSFastaPath: {description: "The location the CDS fasta should be written to.", category: "advanced"} proteinFastaPath: {description: "The location the protein fasta should be written to.", category: "advanced"} filteredGffPath: {description: "The location the filtered GFF should be written to.", category: "advanced"} + memory: {description: "The amount of memory available to the job.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} diff --git a/htseq.wdl b/htseq.wdl index dfa3fcf2005c1dd266932abbd559a379c09217f4..76d3bb8369c624a3f8981f8afad0f73ae9f68d3e 100644 --- a/htseq.wdl +++ b/htseq.wdl @@ -34,7 +34,7 @@ task HTSeqCount { Int nprocesses = 1 String memory = "8G" - Int timeMinutes = 10 + ceil(size(inputBams, "G") * 60) + Int timeMinutes = 1440 #10 + ceil(size(inputBams, "G") * 60) FIXME String dockerImage = "quay.io/biocontainers/htseq:0.12.4--py37hb3f55d8_0" } diff --git a/lima.wdl b/lima.wdl index 119db3f4112b31756dd6a127dbd5551151955fc9..6b87ad4f3120baa2e1e3f13d5f9f1d223419bb80 100644 --- a/lima.wdl +++ b/lima.wdl @@ -51,12 +51,12 @@ task Lima { Int threads = 2 String memory = "2G" Int timeMinutes = 30 - String dockerImage = "quay.io/biocontainers/lima:2.0.0--0" + String dockerImage = "quay.io/biocontainers/lima:2.2.0--h9ee0642_0" } Map[String, String] libraryDesignOptions = {"same": "--same", "different": "--different", "neighbors": "--neighbors"} - command { + command <<< set -e mkdir -p "$(dirname ~{outputPrefix})" lima \ @@ -83,26 +83,22 @@ task Lima { ~{true="--peek-guess" false="" peekGuess} \ --log-level ~{logLevel} \ --num-threads ~{threads} \ - ~{"--log-file " + outputPrefix + ".stderr.log"} \ + ~{"--log-file " + outputPrefix + ".lima.stderr.log"} \ ~{inputBamFile} \ ~{barcodeFile} \ ~{outputPrefix + ".bam"} - # copy the files with the default filename to the folder specified in - # outputPrefix. - if [ "~{basename(outputPrefix)}.json" != "~{outputPrefix}.json" ]; then - cp "~{basename(outputPrefix)}.json" "~{outputPrefix}.json" - cp "~{basename(outputPrefix)}.lima.counts" "~{outputPrefix}.lima.counts" - cp "~{basename(outputPrefix)}.lima.report" "~{outputPrefix}.lima.report" - cp "~{basename(outputPrefix)}.lima.summary" "~{outputPrefix}.lima.summary" - fi - } + dirName="$(dirname ~{outputPrefix})" + find "$(cd ${dirName}; pwd)" -name "*.bam" > bamFiles.txt + find "$(cd ${dirName}; pwd)" -name "*.bam.pbi" > bamIndexes.txt + find "$(cd ${dirName}; pwd)" -name "*.consensusreadset.xml" > consensusreadset.txt + >>> output { - Array[File] limaBam = glob("*.bam") - Array[File] limaBamIndex = glob("*.bam.pbi") - Array[File] limaXml = glob("*.subreadset.xml") - File limaStderr = outputPrefix + ".stderr.log" + Array[File] limaBam = read_lines("bamFiles.txt") + Array[File] limaBamIndex = read_lines("bamIndexes.txt") + Array[File] limaXml = read_lines("consensusreadset.txt") + File limaStderr = outputPrefix + ".lima.stderr.log" File limaJson = outputPrefix + ".json" File limaCounts = outputPrefix + ".lima.counts" File limaReport = outputPrefix + ".lima.report" diff --git a/minimap2.wdl b/minimap2.wdl index d2e699052d89b9dc19ce6806ed1f68524593be78..50ff4db38525cc8e896c944e5bc8de64e52f8a0f 100644 --- a/minimap2.wdl +++ b/minimap2.wdl @@ -33,7 +33,7 @@ task Indexing { Int cores = 1 String memory = "4G" Int timeMinutes = 10 - String dockerImage = "quay.io/biocontainers/minimap2:2.17--hed695b0_3" + String dockerImage = "quay.io/biocontainers/minimap2:2.20--h5bf99c6_0" } command { @@ -100,7 +100,7 @@ task Mapping { Int cores = 4 String memory = "30G" Int timeMinutes = 1 + ceil(size(queryFile, "G") * 200 / cores) - String dockerImage = "quay.io/biocontainers/minimap2:2.17--hed695b0_3" + String dockerImage = "quay.io/biocontainers/minimap2:2.20--h5bf99c6_0" } command { diff --git a/multiqc.wdl b/multiqc.wdl index 2571463a1a9fa42bcd87db1b5edfb5a279060ea8..a166293799d75a24f8aa7f14d3ade49d5fcfdf07 100644 --- a/multiqc.wdl +++ b/multiqc.wdl @@ -57,7 +57,7 @@ task MultiQC { String? clConfig String? memory - Int timeMinutes = 2 + ceil(size(reports, "G") * 8) + Int timeMinutes = 10 + ceil(size(reports, "G") * 8) String dockerImage = "quay.io/biocontainers/multiqc:1.9--py_1" } diff --git a/nanopack.wdl b/nanopack.wdl index f86641b0613e207f7633cde189b8be0415515a38..e4c94a43b113f35c6ae82c228711bd8ce4592490 100644 --- a/nanopack.wdl +++ b/nanopack.wdl @@ -42,7 +42,7 @@ task NanoPlot { Int threads = 2 String memory = "2G" Int timeMinutes = 15 - String dockerImage = "quay.io/biocontainers/nanoplot:1.32.1--py_0" + String dockerImage = "quay.io/biocontainers/nanoplot:1.38.0--pyhdfd78af_0" } Map[String, String] fileTypeOptions = {"fastq": "--fastq ", "fasta": "--fasta ", "fastq_rich": "--fastq_rich ", "fastq_minimal": "--fastq_minimal ", "summary": "--summary ", "bam": "--bam ", "ubam": "--ubam ", "cram": "--cram ", "pickle": "--pickle ", "feather": "--feather "} diff --git a/pacbio.wdl b/pacbio.wdl index df0343d98a737132f82185a04bca133547137659..b21c69bc0b3db02ed0e1b3ea5fc46fb9bebe4ed4 100644 --- a/pacbio.wdl +++ b/pacbio.wdl @@ -23,18 +23,18 @@ version 1.0 task mergePacBio { input { Array[File]+ reports - String mergedReport + String outputPathMergedReport String memory = "4G" - String dockerImage = "lumc/pacbio-merge:0.2" + String dockerImage = "quay.io/redmar_van_den_berg/pacbio-merge:0.2" } command { set -e - mkdir -p $(dirname ~{mergedReport}) + mkdir -p $(dirname ~{outputPathMergedReport}) pacbio_merge \ --reports ~{sep=" " reports} \ - --json-output ~{mergedReport} + --json-output ~{outputPathMergedReport} } runtime { @@ -43,13 +43,13 @@ task mergePacBio { } output { - File outputMergedReport = mergedReport + File outputMergedReport = outputPathMergedReport } parameter_meta { # inputs reports: {description: "The PacBio report files to merge.", category: "required"} - mergedReport: {description: "The location the merged PacBio report file should be written to.", category: "common"} + outputPathMergedReport: {description: "The location the merged PacBio report file should be written to.", category: "common"} memory: {description: "The amount of memory this job will use.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} diff --git a/pbbam.wdl b/pbbam.wdl index d893e64d33ce6867695b8f48a36e8acb4aa0adc2..ae64b87c0efb6f34472eaf3f3789e0129150f3ab 100644 --- a/pbbam.wdl +++ b/pbbam.wdl @@ -36,7 +36,6 @@ task Index { String bamIndexPath = outputPath + ".pbi" command { - bash -c ' set -e # Make sure outputBamPath does not exist. if [ ! -f ~{outputPath} ] @@ -45,7 +44,6 @@ task Index { ln ~{bamFile} ~{outputPath} fi pbindex ~{outputPath} ~{bamIndexPath} - ' } output { diff --git a/prepareShiny.wdl b/prepareShiny.wdl new file mode 100644 index 0000000000000000000000000000000000000000..d669e2d1791fc8ea7462198c4493cfe5c3c342f5 --- /dev/null +++ b/prepareShiny.wdl @@ -0,0 +1,106 @@ +version 1.0 + +# Copyright (c) 2017 Sequencing Analysis Support Core - 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 CreateDesignMatrix { + input { + File countTable + String shinyDir = "." + + String memory = "5G" + Int timeMinutes = 30 + String dockerImage = "quay.io/biocontainers/predex:0.9.2--pyh3252c3a_0" + } + + command { + set -e + mkdir -p ~{shinyDir} + predex design \ + --input ~{countTable} \ + --output ~{shinyDir} + } + + output { + File dgeDesign = shinyDir + "/design_matrix.tsv" + } + + runtime { + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + countTable: {description: "The created count table from HTseq.", category: "required"} + shinyDir: {description: "The directory to write the output to.", category: "required"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + dgeDesign: {description: "Design matrix template to add sample information for DGE analysis."} + } +} + +task CreateAnnotation { + input { + File referenceFasta + File referenceGtfFile + String shinyDir = "." + + String memory = "5G" + Int timeMinutes = 30 + String dockerImage = "quay.io/biocontainers/predex:0.9.2--pyh3252c3a_0" + } + + command { + set -e + mkdir -p ~{shinyDir} + predex annotation \ + --fasta ~{referenceFasta} \ + --gtf ~{referenceGtfFile} \ + --output ~{shinyDir} + } + + output { + File dgeAnnotation = shinyDir + "/annotation.tsv" + } + + runtime { + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + referenceFasta: {description: "The reference Fasta file.", category: "required"} + referenceGtfFile: {description: "The reference GTF file.", category: "required"} + shinyDir: {description: "The directory to write the output to.", category: "required"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + dgeAnnotation: {description: "Annotation file for DGE analysis."} + } +} diff --git a/requirements-test.txt b/requirements-test.txt deleted file mode 100644 index 0b01d193d495c1b118f95461d22fe08a0c595354..0000000000000000000000000000000000000000 --- a/requirements-test.txt +++ /dev/null @@ -1,11 +0,0 @@ -# These are the programs used for testing these biowdl tasks. -# These requirements can be installed with conda with the bioconda channel -# activated. -# For more information on how to set up conda with bioconda channel see: -# http://bioconda.github.io/#install-conda -# This file can be installed with "conda install --file requirements-test.txt". - -cromwell -womtool -miniwdl -wdl-aid diff --git a/samtools.wdl b/samtools.wdl index 9042a0dfc42b0d3b8bb158ac9ee2fa902c633849..81b6c17da3d15a7db469dfee9422bd07e4766273 100644 --- a/samtools.wdl +++ b/samtools.wdl @@ -26,6 +26,7 @@ task BgzipAndIndex { String outputDir String type = "vcf" + String memory = "2G" Int timeMinutes = 1 + ceil(size(inputFile, "G")) String dockerImage = "quay.io/biocontainers/tabix:0.2.6--ha92aebf_0" } @@ -45,6 +46,7 @@ task BgzipAndIndex { } runtime { + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -54,6 +56,7 @@ task BgzipAndIndex { inputFile: {description: "The file to be compressed and indexed.", category: "required"} outputDir: {description: "The directory in which the output will be placed.", category: "required"} type: {description: "The type of file (eg. vcf or bed) to be compressed and indexed.", category: "common"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -122,6 +125,8 @@ task Fastq { } command { + set -e + mkdir -p "$(dirname ~{outputRead1})" samtools fastq \ ~{true="-1" false="-s" defined(outputRead2)} ~{outputRead1} \ ~{"-2 " + outputRead2} \ diff --git a/scripts b/scripts index 85e2ec542b65be5f2a25c22db05c28700fbe6db5..84690a30eb0dde2bfdfaff9abf097b6f4c49dfd8 160000 --- a/scripts +++ b/scripts @@ -1 +1 @@ -Subproject commit 85e2ec542b65be5f2a25c22db05c28700fbe6db5 +Subproject commit 84690a30eb0dde2bfdfaff9abf097b6f4c49dfd8 diff --git a/somaticseq.wdl b/somaticseq.wdl index 07103ef943180f5203650caee8fdf50da5d47275..63f8362ea1c9ad8025e6b30b38e115ed91239946 100644 --- a/somaticseq.wdl +++ b/somaticseq.wdl @@ -47,6 +47,7 @@ task ParallelPaired { File? strelkaSNV File? strelkaIndel + String memory = "2G" Int threads = 1 Int timeMinutes = 60 String dockerImage = "lethalfang/somaticseq:3.1.0" @@ -91,6 +92,7 @@ task ParallelPaired { runtime { cpu: threads + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -121,6 +123,7 @@ task ParallelPaired { strelkaSNV: {description: "An SNV VCF as produced by strelka.", category: "advanced"} strelkaIndel: {description: "An indel VCF as produced by somaticsniper.", category: "advanced"} threads: {description: "The number of threads to use.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -159,6 +162,7 @@ task ParallelPairedTrain { File? strelkaSNV File? strelkaIndel + String memory = "2G" Int threads = 1 Int timeMinutes = 240 String dockerImage = "lethalfang/somaticseq:3.1.0" @@ -202,6 +206,7 @@ task ParallelPairedTrain { runtime { cpu: threads + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -232,6 +237,7 @@ task ParallelPairedTrain { strelkaSNV: {description: "An SNV VCF as produced by strelka.", category: "advanced"} strelkaIndel: {description: "An indel VCF as produced by somaticsniper.", category: "advanced"} threads: {description: "The number of threads to use.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -264,6 +270,7 @@ task ParallelSingle { File? scalpelVCF File? strelkaVCF + String memory = "2G" Int threads = 1 Int timeMinutes = 60 String dockerImage = "lethalfang/somaticseq:3.1.0" @@ -301,6 +308,7 @@ task ParallelSingle { runtime { cpu: threads + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -323,6 +331,7 @@ task ParallelSingle { scalpelVCF: {description: "A VCF as produced by scalpel.", category: "advanced"} strelkaVCF: {description: "A VCF as produced by strelka.", category: "advanced"} threads: {description: "The number of threads to use.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -353,6 +362,7 @@ task ParallelSingleTrain { File? scalpelVCF File? strelkaVCF + String memory = "2G" Int threads = 1 Int timeMinutes = 240 String dockerImage = "lethalfang/somaticseq:3.1.0" @@ -389,6 +399,7 @@ task ParallelSingleTrain { runtime { cpu: threads + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -411,6 +422,7 @@ task ParallelSingleTrain { scalpelVCF: {description: "A VCF as produced by scalpel.", category: "advanced"} strelkaVCF: {description: "A VCF as produced by strelka.", category: "advanced"} threads: {description: "The number of threads to use.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -429,6 +441,7 @@ task ModifyStrelka { File strelkaVCF String outputVCFName = basename(strelkaVCF, ".gz") + String memory = "2G" Int timeMinutes = 20 String dockerImage = "lethalfang/somaticseq:3.1.0" } @@ -447,6 +460,7 @@ task ModifyStrelka { } runtime { + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -455,6 +469,7 @@ task ModifyStrelka { # inputs strelkaVCF: {description: "A vcf file as produced by strelka.", category: "required"} outputVCFName: {description: "The location the output VCF file should be written to.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} diff --git a/spades.wdl b/spades.wdl index 7cc16d21e7e74aaf3a820c5a3ffa0bc29d7fe7ab..3975dd32e3bdff906b1127d93a5aa8f3ca714e8a 100644 --- a/spades.wdl +++ b/spades.wdl @@ -34,16 +34,16 @@ task Spades { File? tslrContigs File? trustedContigs File? untrustedContigs - Boolean? singleCell - Boolean? metagenomic - Boolean? rna - Boolean? plasmid - Boolean? ionTorrent - Boolean? onlyErrorCorrection - Boolean? onlyAssembler - Boolean? careful - Boolean? disableGzipOutput - Boolean? disableRepeatResolution + Boolean singleCell = false + Boolean metagenomic = false + Boolean rna = false + Boolean plasmid = false + Boolean ionTorrent = false + Boolean onlyErrorCorrection = false + Boolean onlyAssembler = false + Boolean careful = false + Boolean disableGzipOutput = false + Boolean disableRepeatResolution = false File? dataset File? tmpDir String? k diff --git a/stringtie.wdl b/stringtie.wdl index 81d9613265242aaa7504f78fa426cab510d9dc91..9c2f3cfcb1683e2340029eae312d12c7da14c582 100644 --- a/stringtie.wdl +++ b/stringtie.wdl @@ -31,11 +31,12 @@ task Stringtie { Boolean? firstStranded Boolean? secondStranded String? geneAbundanceFile + Float? minimumCoverage Int threads = 1 String memory = "2G" Int timeMinutes = 1 + ceil(size(bam, "G") * 60 / threads) - String dockerImage = "quay.io/biocontainers/stringtie:2.1.4--h7e0af3c_0" + String dockerImage = "quay.io/biocontainers/stringtie:1.3.6--h92e31bf_0" } command { @@ -47,6 +48,7 @@ task Stringtie { ~{true="-e" false="" skipNovelTranscripts} \ ~{true="--rf" false="" firstStranded} \ ~{true="--fr" false="" secondStranded} \ + ~{"-c " + minimumCoverage} \ -o ~{assembledTranscriptsFile} \ ~{"-A " + geneAbundanceFile} \ ~{bam} @@ -74,6 +76,7 @@ task Stringtie { firstStranded: {description: "Equivalent to the --rf flag of stringtie.", category: "required"} secondStranded: {description: "Equivalent to the --fr flag of stringtie.", category: "required"} geneAbundanceFile: {description: "Where the abundance file should be written.", category: "common"} + minimumCoverage: {description: "The minimum coverage for a transcript to be shown in the output.", category: "advanced"} threads: {description: "The number of threads to use.", category: "advanced"} memory: {description: "The amount of memory needed for this task in GB.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} diff --git a/survivor.wdl b/survivor.wdl index 8b0360d87fe7e783d01a3f6e128a44590e16ef53..de232405b4d617a46a785f7aa9970a45f474b60b 100644 --- a/survivor.wdl +++ b/survivor.wdl @@ -44,9 +44,9 @@ task Merge { fileList \ ~{breakpointDistance} \ ~{suppVecs} \ - ~{true=1 false=0 svType} \ - ~{true=1 false=0 strandType} \ - ~{true=1 false=0 distanceBySvSize} \ + ~{true='1' false='0' svType} \ + ~{true='1' false='0' strandType} \ + ~{true='1' false='0' distanceBySvSize} \ ~{minSize} \ ~{outputPath} } diff --git a/umi-tools.wdl b/umi-tools.wdl index 6524d656d59b28eaf4de21df2457de2c79036bb3..b79817c2e4304c76b8203c23f366df601836151f 100644 --- a/umi-tools.wdl +++ b/umi-tools.wdl @@ -30,8 +30,9 @@ task Extract { String? read2Output = "umi_extracted_R2.fastq.gz" Boolean threePrime = false + String memory = "20G" Int timeMinutes = 1 + ceil(size([read1, read2], "G") * 2) - String dockerImage = "quay.io/biocontainers/mulled-v2-509311a44630c01d9cb7d2ac5727725f51ea43af:6089936aca6219b5bb5f54210ac5eb456c7503f2-0" + String dockerImage = "quay.io/biocontainers/mulled-v2-509311a44630c01d9cb7d2ac5727725f51ea43af:3067b520386698317fd507c413baf7f901666fd4-0" } command { @@ -51,6 +52,7 @@ task Extract { } runtime { + memory: memory time_minutes: timeMinutes docker: dockerImage } @@ -78,6 +80,8 @@ task Dedup { File inputBam File inputBamIndex String outputBamPath + String tmpDir = "./umiToolsDedupTmpDir" + Boolean paired = true String? umiSeparator @@ -85,21 +89,21 @@ task Dedup { String memory = "25G" Int timeMinutes = 30 + ceil(size(inputBam, "G") * 30) - # Use a multi-package-container which includes umi_tools (0.5.5) and samtools (1.9). - String dockerImage = "quay.io/biocontainers/mulled-v2-509311a44630c01d9cb7d2ac5727725f51ea43af:6089936aca6219b5bb5f54210ac5eb456c7503f2-0" + String dockerImage = "quay.io/biocontainers/mulled-v2-509311a44630c01d9cb7d2ac5727725f51ea43af:3067b520386698317fd507c413baf7f901666fd4-0" } String outputBamIndex = sub(outputBamPath, "\.bam$", ".bai") command { set -e - mkdir -p "$(dirname ~{outputBamPath})" + mkdir -p "$(dirname ~{outputBamPath})" "~{tmpDir}" umi_tools dedup \ - --stdin ~{inputBam} \ - --stdout ~{outputBamPath} \ + --stdin=~{inputBam} \ + --stdout=~{outputBamPath} \ ~{"--output-stats " + statsPrefix} \ ~{"--umi-separator=" + umiSeparator} \ - ~{true="--paired" false="" paired} + ~{true="--paired" false="" paired} \ + --temp-dir=~{tmpDir} samtools index ~{outputBamPath} ~{outputBamIndex} } @@ -122,6 +126,7 @@ task Dedup { inputBam: {description: "The input BAM file.", categrory: "required"} inputBamIndex: {description: "The index for the ipnut BAM file.", cateogry: "required"} outputBamPath: {description: "The location to write the output BAM file to.", category: "required"} + tmpDir: {description: "Temporary directory.", category: "advanced"} paired: {description: "Whether or not the data is paired.", category: "common"} umiSeparator: {description: "Seperator used for UMIs in the read names.", category: "advanced"} statsPrefix: {description: "The prefix for the stats files.", category: "advanced"} diff --git a/wisestork.wdl b/wisestork.wdl index 6be32168ef3f70b837af655c545650954a188ff5..8fb4b76b703d485b244ef7342424f727c3c522f6 100644 --- a/wisestork.wdl +++ b/wisestork.wdl @@ -31,6 +31,7 @@ task Count { Int? binSize File? binFile + String memory = "2G" String dockerImage = "quay.io/biocontainers/wisestork:0.1.2--pyh24bf2e0_0" } @@ -50,6 +51,7 @@ task Count { } runtime { + memory: memory docker: dockerImage } } @@ -67,6 +69,7 @@ task GcCorrect { Int? iter Float? fracLowess + String memory = "2G" String dockerImage = "quay.io/biocontainers/wisestork:0.1.2--pyh24bf2e0_0" } @@ -89,6 +92,7 @@ task GcCorrect { } runtime { + memory: memory docker: dockerImage } } @@ -143,6 +147,7 @@ task Zscore { Int? binSize File? binFile + String memory = "2G" String dockerImage = "quay.io/biocontainers/wisestork:0.1.2--pyh24bf2e0_0" } @@ -163,6 +168,7 @@ task Zscore { } runtime { + memory: memory docker: dockerImage } }