diff --git a/bedtools.wdl b/bedtools.wdl index 50f9f92e1b49afc5e393084270d5768a06117fb8..6ae3b3c776a52c40dc3e16bb62e4c759fc711e16 100644 --- a/bedtools.wdl +++ b/bedtools.wdl @@ -164,3 +164,49 @@ task Sort { docker: dockerImage } } + +task Intersect { + input { + File regionsA + File regionsB + # Giving a faidx file will set the sorted option. + File? faidx + String outputBed = "intersect.bed" + String dockerImage = "quay.io/biocontainers/bedtools:2.23.0--hdbcaa40_3" + } + Boolean sorted = defined(faidx) + + command { + set -e + ~{"cut -f1,2 " + faidx} ~{true="> sorted.genome" false ="" sorted} + bedtools intersect \ + -a ~{regionsA} \ + -b ~{regionsB} \ + ~{true="--sorted" false="" sorted} \ + ~{true="-g sorted.genome" false="" sorted} \ + > ~{outputBed} + } + + output { + File intersectedBed = outputBed + } + + runtime { + docker: dockerImage + } + + parameter_meta { + faidx: {description: "The fasta index (.fai) file that is used to create the genome file required for sorted output. Implies sorted option.", + category: "common"} + regionsA: {description: "Region file a to intersect", + category: "required"} + regionsB: {description: "Region file b to intersect", + category: "required"} + outputBed: {description: "The path to write the output to", + 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" + } + } +}