I'm using GATK4 to build a somatic variant calling pipeline. The pipeline uses MultiQC to aggregate quality control data, and one of the QC measures reported is base quality score recalibration from GATK4's BaseRecalibraton. The description in MultiQC says

This plot shows the distribution of base quality scores in each sample before and after base quality score recalibration (BQSR). Applying BQSR should broaden the distribution of base quality scores.

enter image description here

The black line is for my tumor sample and blue line is my normal sample. I don't understand how the before and after distributions are both shown in the plot as I only see 1 distribution per sample. Am I missing something, or should there be a "Post-calibration Count" plot that isn't shown? If nothing is missing, how should I be interpreting the plot?

  • $\begingroup$ Did you actually run the ApplyBQSR tool? $\endgroup$
    – Devon Ryan
    Commented Jan 24, 2020 at 11:07
  • $\begingroup$ I ran both BaseRecalibrator and ApplyBQSR and the BAM headers show ApplyBQSR has been run. Is the post calibration data only stored in the BAM files or is it also in the tables output by BaseRecalibrator? If the post calibration data is only in the BAM files, I'm not sure how MultiQC is supposed to know the data exists... $\endgroup$ Commented Jan 24, 2020 at 20:48
  • $\begingroup$ There may be an option to have GATK output a metrics file. $\endgroup$
    – Devon Ryan
    Commented Jan 25, 2020 at 11:15

1 Answer 1


Turns out two recalibration tables are needed to show pre-recalibration and post-recalibration plots. I previously only had generated the pre-calibration table by running BaseRecalibrator on the BAM that hadn't undergone ApplyBQSR to adjust base scores. Here are the steps to show pre and post recalibration plots in MultiQC:

  1. Run BaseRecalibrator on your initial input BAM. This will create a recalibration table with the original base scores.
  2. Run ApplyBQSR with the recalibration table from step 1 to create a new BAM with the adjusted base quality scores.
  3. Run BaseRecalibrator on the adjusted BAM generated in step 2 to create a new recalibration table with the adjusted base quality scores.
  4. Use both recalibration tables as inputs to MultiQC. This should create both plots.
  • $\begingroup$ hey did you method work ? I have done your steps and it does not create both plots. I believe we need to create a csv file report from gatk AnalyzeCovariates. Will try that now $\endgroup$
    – moth
    Commented Jan 19, 2021 at 10:03
  • $\begingroup$ @alex what part does not work? Does MultiQC not create both plots even though you give it both tables as input? $\endgroup$ Commented Jan 21, 2021 at 20:59
  • $\begingroup$ yes correct. the tables were in different directories and didn't work. I then tried to put the tables under the same directory, did not work either. then i noticed both tables had the same 'sample name'. I changed the names of the tables so multiqc would detect 2 'samples' and correctly use the tables as before and after. It also did not work. strangely their old test data for BQSR on github works. things have probaly changed since then and they did not update the code $\endgroup$
    – moth
    Commented Jan 22, 2021 at 3:35
  • $\begingroup$ Not sure what the issue is then. It has been awhile since I used that MultiQC function and eventually dropped those plots from my pipeline. I would ask the creator of MultiQC, Phil Ewels for help on his Gitter. There's instructions for how to contact him Github. $\endgroup$ Commented Jan 26, 2021 at 21:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.