Skip to content
Snippets Groups Projects
gatk.wdl 2.19 KiB
Newer Older
Peter van 't Hof's avatar
Peter van 't Hof committed
# 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
Peter van 't Hof's avatar
Peter van 't Hof committed
    Array[File]+ known_indels_sites_VCFs
    Array[File]+ known_indels_sites_indices
Peter van 't Hof's avatar
Peter van 't Hof committed
    File ref_dict
    File ref_fasta
    File ref_fasta_index

    command {
        java -Xms4G -jar ${gatk_jar} \
Peter van 't Hof's avatar
Peter van 't Hof committed
          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}"
    }
}

# 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

    command {
        java ${"-Dsamjdk.compression_level=" + compression_level} -Xms4G -jar ${gatk_jar} \
Peter van 't Hof's avatar
Peter van 't Hof committed
          ApplyBQSR \
          --create-output-bam-md5 \
          --add-output-sam-program-record \
          -R ${ref_fasta} \
          -I ${input_bam} \
          --use-original-qualities \
Peter van 't Hof's avatar
Peter van 't Hof committed
          -O ${output_bam_path} \
Peter van 't Hof's avatar
Peter van 't Hof committed
          -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"
    }
}

# Combine multiple recalibration tables from scattered BaseRecalibrator runs
task GatherBqsrReports {
    String gatk_jar
    Array[File] input_bqsr_reports
    String output_report_filepath

    command {
        java -Xms3G -jar ${gatk_jar} \
Peter van 't Hof's avatar
Peter van 't Hof committed
        GatherBQSRReports \
        -I ${sep=' -I ' input_bqsr_reports} \
        -O ${output_report_filepath}
    }
    output {
        File output_bqsr_report = "${output_report_filepath}"
    }
}