diff --git a/CHANGELOG.md b/CHANGELOG.md index 6230afbff4f9abcadb75abf76e40c14c95081aac..c1e7a2548d77bc75963de3cefcf864ad346aebb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,9 @@ version 5.0.0-dev + isoseq3: Add required bam index input to isoseq3. + pbbam: Add task for indexing PacBio bam files + picard: Add CollectHsMetrics and CollectVariantCallingMetrics. ++ bcftools: add tmpDir input to specify temporary directory when sorting. ++ bcftools: remove outputType and implement indexing based on output file extension. ++ NanoPack: Add parameter_meta to NanoPlot task. + Centrifuge: Remove metrics file from classification (which causes the summary report to be empty). https://github.com/DaehwanKimLab/centrifuge/issues/83 diff --git a/bcftools.wdl b/bcftools.wdl index affa805a78e7fcd2755fc1dab1365741968ff885..a0aeb44258e6d133fb7b97355287921574bbeceb 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -35,7 +35,6 @@ task Annotate { Boolean keepSites = false String? markSites Boolean noVersion = false - String outputType = "z" String? regions File? regionsFile File? renameChrs @@ -52,14 +51,14 @@ task Annotate { String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" } - Boolean indexing = if outputType == "z" then true else false + Boolean compressed = basename(outputPath) != basename(outputPath, ".gz") command { set -e mkdir -p "$(dirname ~{outputPath})" bcftools annotate \ -o ~{outputPath} \ - -O ~{outputType} \ + -O ~{true="z" false="v" compressed} \ ~{"--annotations " + annsFile} \ ~{"--collapse " + collapse} \ ~{true="--columns" false="" length(columns) > 0} ~{sep="," columns} \ @@ -80,7 +79,7 @@ task Annotate { ~{true="--remove" false="" length(removeAnns) > 0} ~{sep="," removeAnns} \ ~{inputFile} - ~{if indexing then 'bcftools index --tbi ~{outputPath}' else ''} + ~{if compressed then 'bcftools index --tbi ~{outputPath}' else ''} } @@ -97,7 +96,6 @@ task Annotate { parameter_meta { outputPath: {description: "The location the output VCF file should be written.", category: "common"} - outputType: {description: "Output type: v=vcf, z=vcf.gz, b=bcf, u=uncompressed bcf", category: "advanced"} annsFile: {description: "Bgzip-compressed and tabix-indexed file with annotations (see man page for details).", category: "advanced"} collapse: {description: "Treat as identical records with <snps|indels|both|all|some|none>, see man page for details.", category: "advanced"} columns: {description: "Comma-separated list of columns or tags to carry over from the annotation file (see man page for details).", category: "advanced"} @@ -129,23 +127,24 @@ task Sort { input { File inputFile String outputPath = "output.vcf.gz" + String tmpDir = "./sorting-tmp" String memory = "256M" Int timeMinutes = 1 + ceil(size(inputFile, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" - String outputType = "z" } - Boolean indexing = if outputType == "z" then true else false + Boolean compressed = basename(outputPath) != basename(outputPath, ".gz") command { set -e - mkdir -p "$(dirname ~{outputPath})" + mkdir -p "$(dirname ~{outputPath})" ~{tmpDir} bcftools sort \ -o ~{outputPath} \ - -O ~{outputType} \ + -O ~{true="z" false="v" compressed} \ + -T ~{tmpDir} \ ~{inputFile} - ~{if indexing then 'bcftools index --tbi ~{outputPath}' else ''} + ~{if compressed then 'bcftools index --tbi ~{outputPath}' else ''} } output { @@ -162,7 +161,7 @@ task Sort { parameter_meta { inputFile: {description: "A vcf or bcf file.", category: "required"} outputPath: {description: "The location the output VCF file should be written.", category: "common"} - outputType: {description: "Output type: v=vcf, z=vcf.gz, b=bcf, u=uncompressed bcf", category: "advanced"} + tmpDir: {description: "The location of the temporary files during the bcftools sorting.", 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"} @@ -280,26 +279,22 @@ task View { input { File inputFile String outputPath = "output.vcf" - Int compressionLevel = 0 String memory = "256M" Int timeMinutes = 1 + ceil(size(inputFile, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" } - String outputType = if compressionLevel > 0 then "z" else "v" - Boolean indexing = if compressionLevel > 0 then true else false - String outputFilePath = if compressionLevel > 0 then outputPath + ".gz" else outputPath + Boolean compressed = basename(outputPath) != basename(outputPath, ".gz") command { set -e mkdir -p "$(dirname ~{outputPath})" bcftools view \ -o ~{outputPath} \ - -l ~{compressionLevel} \ - -O ~{outputType} \ + -O ~{true="z" false="v" compressed} \ ~{inputFile} - ~{if indexing then 'bcftools index --tbi ~{outputPath}' else ''} + ~{if compressed then 'bcftools index --tbi ~{outputPath}' else ''} } output { File outputVcf = outputPath @@ -314,7 +309,6 @@ task View { parameter_meta { inputFile: {description: "A vcf or bcf file.", category: "required"} - compressionLevel: {description: "Compression level from 0 (uncompressed) to 9 (best).", category: "advanced"} outputPath: {description: "The location the output VCF file should be written.", 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"} diff --git a/nanopack.wdl b/nanopack.wdl index 6860cf13828d50b0190c88d23e62601111bffb8d..e4d15135cd1e9145ab8282b2614cc7bbbf27f5c0 100644 --- a/nanopack.wdl +++ b/nanopack.wdl @@ -92,6 +92,7 @@ task NanoPlot { inputFileType: {description: "The format of the read file.", category: "required"} outputDir: {description: "Output directory path.", category: "required"} outputPrefix: {description: "Output file prefix.", category: "required"} + outputPath: {description: "Combination of the outputDir & outputPrefix strings.", category: "advanced"} outputTsvStats: {description: "Output the stats file as a properly formatted TSV.", category: "common"} dropOutliers: {description: "Drop outlier reads with extreme long length.", category: "advanced"} logLengths: {description: "Additionally show logarithmic scaling of lengths in plots.", category: "advanced"}