I am working on ION Torrent S5 XL and I am facing to an issue with VCF output generated by the variant caller of thermofisher. It stating on VCF 4.1 that Phred Quality Score is on a range of 0 to 255. In my VCF I have values over than 255. Do you know if there is a way to transform these values?
-
$\begingroup$ Let me rephrase to see if I understood: your output exceeds the max value explained by its manual? Could you post an example? My only guess is that either the structure is wrong or there is a bug, or the program is not well documented. $\endgroup$– llrsJun 28, 2018 at 15:03
-
$\begingroup$ Hi Llopis, here's an example: chr17 7577104 . AGGA AAAA,AAGA,AGA,AGAA,AGGG,AGTA 35144.8 PASS. 35144.8 is QUAL Score into the VCF $\endgroup$– user979974Jul 2, 2018 at 11:58
-
$\begingroup$ Please can you edit the question to include it in the right formatting? Also could you post the command you used to get this VCF ? $\endgroup$– llrsJul 2, 2018 at 12:30
2 Answers
See this post on the GATK forums.
It is normal to see values above 255. The QUAL score is the posterior probability that all samples in your callset are homozygous reference. I quote Sheila's response from the thread posted above:
The QUAL score is the Phred-scaled posterior of AC = 0. We use the AC priors and the PLs to get the likelihood of the data given each AC, then use those to get the posterior probability for each AC. From there, the calculation is 1 - Pr{AC > 0}.
Please see the GATK post in Methods and Algorithms for the nitty gritty details. Beware, Bayesian statistics abound.
GATK's HaplotypeCaller
and freebayes
are two more variant caller that output QUAL values greater than 255. The reason for that is, that each read have its part on calculation that value. This results in the higher the read depth at this position the higher the QUAL value.
To get something useful out of this value, the usual thing that is done, is to calculate the quality per depth (QD) by just divide the QUAL value by the read depth.
Note whenever you try a different variant caller, you have to find out whether the QUAL value is read depth dependend or not.