diff --git a/CHANGELOG.md b/CHANGELOG.md index 424dc76444073fce38836e0a6264c7ea7a5e6a9d..5e175c6df7be51f49ef55987266c2792ac21d54f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ that users understand how the changes affect the new version. version 5.0.0-dev --------------------------- ++ Update 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. diff --git a/bcftools.wdl b/bcftools.wdl index 28380dea78515f35122bd01be987cd6ecc0b7e80..4dc4edb5e4cccd9559fa5b260d83db79354e3a09 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -290,6 +290,10 @@ task View { input { File inputFile String outputPath = "output.vcf" + Boolean excludeUncalled = false + + String? exclude + String? include String memory = "256M" Int timeMinutes = 1 + ceil(size(inputFile, "G")) @@ -302,6 +306,9 @@ task View { set -e mkdir -p "$(dirname ~{outputPath})" bcftools view \ + ~{"--exclude " + exclude} \ + ~{"--include " + include} \ + ~{true="--exclude-uncalled" false="" excludeUncalled} \ -o ~{outputPath} \ -O ~{true="z" false="v" compressed} \ ~{inputFile} @@ -324,6 +331,9 @@ task View { # inputs inputFile: {description: "A vcf or bcf file.", category: "required"} outputPath: {description: "The location the output VCF file should be written.", category: "common"} + include: {description: "Select sites for which the expression is true (see man page for details).", category: "advanced"} + exclude: {description: "Exclude sites for which the expression is true (see man page for details).", category: "advanced"} + excludeUncalled: {description: "Exclude sites without a called genotype (see man page for details).", 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/duphold.wdl b/duphold.wdl new file mode 100644 index 0000000000000000000000000000000000000000..80fe31d23bcfa8bc8a68c777005411615a441b2e --- /dev/null +++ b/duphold.wdl @@ -0,0 +1,75 @@ +version 1.0 + +# Copyright (c) 2020 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 Duphold { + input { + File inputVcf + File bamFile + File bamIndex + File referenceFasta + File referenceFastaFai + String sample + String outputPath = "./duphold.vcf" + + String memory = "15G" + Int timeMinutes = 1440 + String dockerImage = "quay.io/biocontainers/duphold:0.2.1--h516909a_1" + } + + command { + set -e + mkdir -p "$(dirname ~{outputPath})" + export DUPHOLD_SAMPLE_NAME=~{sample} + duphold \ + -v ~{inputVcf} \ + -b ~{bamFile} \ + -f ~{referenceFasta} \ + -o ~{outputPath} + } + + output { + File outputVcf = outputPath + } + + runtime { + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + inputVcf: {description: "The VCF file to process.", category: "required"} + bamFile: {description: "The bam file to process.", category: "required"} + bamIndex: {description: "The index of the bam file.", category: "required"} + referenceFasta: {description: "The reference fasta file also used for mapping.", category: "required"} + referenceFastaFai: {description: "Fasta index (.fai) file of the reference.", category: "required" } + sample: {description: "The name of the sample.", category: "required"} + outputPath: {description: "The location the output VCF file should be written.", category: "common"} + memory: {description: "The memory required to run the programs.", category: "advanced"} + timeMinutes: {description: "The maximum duration (in minutes) the tool is allowed to run.", 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 + outputVcf: {description: "Duphold annotated VCF file."} + } +}