Newer
Older
# Generate Base Quality Score Recalibration (BQSR) model
task BaseRecalibrator {
String gatk_jar
String input_bam
String input_bam_index
String recalibration_report_filename
Array[File]+ sequence_group_interval
Array[File]+ known_indels_sites_VCFs
Array[File]+ known_indels_sites_indices
BaseRecalibrator \
-R ${ref_fasta} \
-I ${input_bam} \
--use-original-qualities \
-O ${recalibration_report_filename} \
--known-sites ${sep=" --known-sites " known_indels_sites_VCFs} \
-L ${sep=" -L " sequence_group_interval}
}
output {
File recalibration_report = "${recalibration_report_filename}"
}
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
}
# Apply Base Quality Score Recalibration (BQSR) model
task ApplyBQSR {
String gatk_jar
String input_bam
String output_bam_path
File recalibration_report
Array[String] sequence_group_interval
File ref_dict
File ref_fasta
File ref_fasta_index
Int? compression_level
ApplyBQSR \
--create-output-bam-md5 \
--add-output-sam-program-record \
-R ${ref_fasta} \
-I ${input_bam} \
--use-original-qualities \
-bqsr ${recalibration_report} \
--static-quantized-quals 10 --static-quantized-quals 20 --static-quantized-quals 30 \
-L ${sep=" -L " sequence_group_interval}
}
output {
File recalibrated_bam = "${output_bam_path}"
File recalibrated_bam_checksum = "${output_bam_path}.md5"
}
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
}
# Combine multiple recalibration tables from scattered BaseRecalibrator runs
task GatherBqsrReports {
String gatk_jar
Array[File] input_bqsr_reports
String output_report_filepath
GatherBQSRReports \
-I ${sep=' -I ' input_bqsr_reports} \
-O ${output_report_filepath}
}
output {
File output_bqsr_report = "${output_report_filepath}"
}
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
# Call variants on a single sample with HaplotypeCaller to produce a GVCF
task HaplotypeCallerGvcf {
Array[File]+ inputBams
Array[File]+ inputBamsIndex
Array[File]+ intervalList
String gvcfPath
File refDict
File refFasta
File refFastaIndex
command {
set -e -o pipefail
${preCommand}
java ${"-Dsamjdk.compression_level=" + compressionLevel} \
-Xmx${mem}G -jar ${gatkJar} \
-R ${refFasta} \
-O ${gvcfPath} \
-I ${sep=" -I " inputBams} \
-L ${sep=' -L ' intervalList} \
-contamination ${default=0 contamination} \
-ERC GVCF
}
File outputGVCF = gvcfPath
File outputGVCFindex = gvcfPath + ".tbi"
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
command {
set -e -o pipefail
${preCommand}
java ${"-Dsamjdk.compression_level=" + compressionLevel} \
-Xmx${mem}G -jar ${gatkJar} \
-G StandardAnnotation \
--only-output-calls-starting-in-intervals \
-new-qual \
File outputVCF = outputPath
File outputVCFindex = outputPath + ".tbi"
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
command {
set -e -o pipefail
${preCommand}
if [ ${length(gvcfFiles)} -gt 1 ]; then
java ${"-Dsamjdk.compression_level=" + compressionLevel} \
-Xmx${mem}G -jar ${gatkJar} \
-R ${refFasta} \
-O ${outputPath} \
-V ${sep=' -V ' gvcfFiles} \
ln -sf ${select_first(gvcfFiles)} ${outputPath}
ln -sf ${select_first(gvcfFileIndexes)} ${outputPath}.tbi
File outputGVCF = outputPath
File outputGVCFindex = outputPath + ".tbi"
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
File inputBam
File inputBamIndex
File refFasta
File refFastaIndex
File refDict
String outputBam
String gatkJar
File bam = outputBam
File bam_index = sub(outputBam, "\\.bam$", ".bai")
memory: ceil(mem * select_first([memoryMultiplier, 3.0]))