Skip to content

Commit

Permalink
🚀 bcftools_markdup, bcftools_stats, fastqc, minimap2_align, picard_ma…
Browse files Browse the repository at this point in the history
…rkduplicates, pilon
  • Loading branch information
lmtani committed Mar 30, 2024
1 parent 1ea673a commit ff0f008
Show file tree
Hide file tree
Showing 6 changed files with 187 additions and 4 deletions.
42 changes: 42 additions & 0 deletions tasks/bcftools/bcftools_markdup.wdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
version 1.0


task Markdup {
input{
File vcf
String extra_args = "-m-any"
Boolean stub = false
}
String outname = basename(vcf, ".vcf.gz")
command <<<
set -e
bcftools --version | grep bcftools > version.txt
if [ ~{stub} == "true" ]; then
echo "Stubbing out Norm"
touch ~{outname}.norm.vcf.gz
touch ~{outname}.norm.vcf.gz.tbi
exit 0
fi
bcftools norm ~{extra_args} ~{vcf} -Oz -o ~{outname}.norm.vcf.gz
bcftools index --tbi ~{outname}.norm.vcf.gz
>>>
runtime {
docker: "quay.io/biocontainers/bcftools:1.11--h7c999a4_0"
memory: "2 GB"
cpu: 1
preemptible: 3
disks: "local-disk 15 SSD"
}

output {
File norm_vcf = "~{outname}.norm.vcf.gz"
File norm_vcf_index = "~{outname}.norm.vcf.gz.tbi"
File version = "version.txt"
}
}
35 changes: 35 additions & 0 deletions tasks/bcftools/bcftools_stats.wdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version 1.0


task Stats {
input {
File vcf
File? exons
File? fasta
File? fasta_idx
Boolean stub = false
}

String basename = basename(vcf, ".vcf.gz")

command <<<
set -e
bcftools --version | grep bcftools > version.txt
if [ ~{stub} == "true" ]; then
echo "Stubbing out the task"
touch ~{basename}.stats
exit 0
fi

bcftools stats ~{"--exons " + exons} ~{"--fasta-ref " + fasta} ~{vcf} > ~{basename}.stats
>>>

runtime {
docker: "quay.io/biocontainers/bcftools:1.11--h7c999a4_0"
}

output {
File stats = "~{basename}.stats"
File version = "version.txt"
}
}
36 changes: 36 additions & 0 deletions tasks/fastqc/fastqc.wdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
version 1.0

task FastQC {
input {
Array[File] input_files
Int threads = 2
Boolean stub = false
}

Int memory = threads * 250 # 250MB per thread, as per FastQC documentation
command <<<
set -e
mkdir -p outputs

fastqc --version > version.txt
if [ ~{stub} == "true" ]; then
touch outputs/fastqc_report.zip
exit 0
fi


fastqc -t ~{threads} -o outputs ~{sep = ' ' input_files}
>>>

runtime {
docker: "quay.io/biocontainers/fastqc:0.11.9--0"
cpu: threads
memory: "~{memory} MB"
}

output {
Array[File] zip_files = glob("outputs/*.zip")
File version = "version.txt"
}
}
3 changes: 1 addition & 2 deletions tasks/minimap2/align.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ task Minimap2Align {
String sample_id
String technology
String library
String prefix

Boolean stub = false
}
Expand All @@ -19,12 +20,10 @@ task Minimap2Align {
Int memory = cpus * 2
Int disk_size = ceil(size(reads_tar, "GiB") * 8 + size(reference_mmi, "GiB") + 10)

String prefix = basename(basename(reads_tar, ".gz"), ".tar")

command <<<

minimap2 --version > version.txt

if [ ~{stub} == "true" ]; then
touch ~{prefix}.sam
exit 0
Expand Down
4 changes: 2 additions & 2 deletions tasks/picard/markduplicates.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ task MarkDuplicates {
java -Xmx4000m -jar /usr/gitc/picard.jar \
MarkDuplicates \
INPUT=~{sep=" INPUT=" input_bams} \
OUTPUT=~{output_bam_basename}_metrics.txt \
METRICS_FILE={} \
OUTPUT=~{output_bam_basename}.bam \
METRICS_FILE=~{output_bam_basename}_metrics.txt \
VALIDATION_STRINGENCY=SILENT \
OPTICAL_DUPLICATE_PIXEL_DISTANCE=2500 \
CREATE_MD5_FILE=true
Expand Down
71 changes: 71 additions & 0 deletions tasks/pilon/pilon.wdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
version 1.0

task Pilon {
input {
File alignment
File alignment_index
File draft_sequence

Boolean stub = false
}

command <<<

pilon --version > version.txt
if [ ~{stub} == "true" ]; then
mkdir pilon
touch pilon/pilon.changes \
pilon/pilon.vcf \
pilon/pilonPilon.bed \
pilon/pilonCoverage.wig \
pilon/pilonDipCoverage.wig \
pilon/pilonDeltaCoverage.wig \
pilon/pilonBadCoverage.wig \
pilon/pilonPctBad.wig \
pilon/pilonClippedAlignments.wig \
pilon/pilonGC.wig \
pilon/pilonWeightedMq.wig \
pilon/pilonWeightedQual.wig \
pilon/pilonPhysicalCoverage.wig \
pilon/pilonCopyNumber.wig \
pilon/pilonUnconfirmed.wig \
pilon/pilon.fasta
exit 0
fi

pilon --genome ~{draft_sequence} \
--bam ~{alignment} \
--output pilon \
--outdir pilon \
--changes --vcf --tracks \
--fix all \
--mindepth 0.5 \
--minmq 30 \
--minqual 20 \
--threads 8
>>>

runtime {
docker: "quay.io/biocontainers/pilon:1.24--hdfd78af_0"
}

output {
File pilon_changes = "pilon/pilon.changes"
File pilon_vcf = "pilon/pilon.vcf"
File pilon_tracks = "pilon/pilonPilon.bed"
File pilon_coverage = "pilon/pilonCoverage.wig"
File pilon_dip_coverage = "pilon/pilonDipCoverage.wig"
File pilon_delta_coverage = "pilon/pilonDeltaCoverage.wig"
File pilon_bad_coverage = "pilon/pilonBadCoverage.wig"
File pilon_pct_bad = "pilon/pilonPctBad.wig"
File pilon_clipped_alignments = "pilon/pilonClippedAlignments.wig"
File pilon_gc = "pilon/pilonGC.wig"
File pilon_weighted_mq = "pilon/pilonWeightedMq.wig"
File pilon_weighted_qual = "pilon/pilonWeightedQual.wig"
File pilon_physical_coverage = "pilon/pilonPhysicalCoverage.wig"
File pilon_copy_number = "pilon/pilonCopyNumber.wig"
File pilon_unconfirmed = "pilon/pilonUnconfirmed.wig"
File pilon_fasta = "pilon/pilon.fasta"
File version = "version.txt"
}
}

0 comments on commit ff0f008

Please sign in to comment.