vcf文件中的PL值
PL是HaplotypeCaller等GATK变异检测软件在sample层面给出的注释,一般记录在VCF文件的FORMAT/sample一栏中。它代表了根据某位点变异情况给出的基因型判定不正确的可能性。
PL值的计算方法
公式如下:
Data指reads某位点的观测变异数据集;
Genotype指特定基因型,设为GT;
P(Genotype|Data)指基于观测的变异数据集的基因型GT的条件概率;
将P(Genotype|Data)取log值并乘以-10后将其转换为Phred-scale格式即为PL,然后将所有基因型的PL进行归一化,使得最有可能的基因型PL为0
计算实例
假如某位点的参考等位基因是A,现在观察到一个read在该位点为T,并且我们现在有HaplotypeCaller根据这个read计算出来的各基因型的条件概率P(Genotype|Data)(当然如果有多个read,它们的贡献将会相加):
Alleles
Reference: A
Read: T
Conditional probabilities calculated by HaplotypeCaller
P(AA | Data) = 0.000001
P(AT | Data) = 0.000100
P(TT | Data) = 0.010000
- 计算初始PL值
我们要分别计算基因型为0/0, 0/1 和 1/1时的初始PL值,根据前述的公式,结果如下:
Genotype | A/A | A/T | T/T |
---|---|---|---|
Raw PL |
可以发现P(Genotype|Data)最低的基因型在转换为PL后变为最大值。这是在我们的意料之中的,因为PL指的就是这个基因型是不正确的概率。一个基因型的Raw PL值越小,代表越有可能是真实的基因型。
2. 标准化
在将PL值写入VCF之前,还要对Raw PL进行一个小小的计算:对所有的PL值进行标准化,使得最小的PL值为零。很简单,取所有基因型的PL值和最小PL值之间的差值即可。
Genotype | A/A | A/T | T/T |
---|---|---|---|
Normalized PL |
我们从中可以发现,最终的PL值和原始的P(Genotype|Data)之间的关系:我们取的原始P(Genotype|Data)之间依次相差100倍,最终的PL之间最终相差20,也就是100取Phred-scale后的值。这样我们扫一眼VCF里面PL值的大小,就可以方便的比较各个基因型之间可能性的差异了。
PL和GQ之间的联系和区别
GQ的值其实就是PL次小值和最小值之间的差异,由于PL的最小值总是0,所以GQ就是PL的次小值。在上面的例子中,GQ = 20 - 0 = 20。需要注意的是,为了节省计算空间,在GATK中,GQ值最大为99,就算实际计算出的GQ大于99,VCF中也只会记录为99哦。
对基因型质量的判定
对于HaplotypeCaller给定的PL值(三个数值分别对应0/0,0/1,1/1),比如
1. GT:PL = 0/1:309,0,233,那么该位点对应的GQ值为233,
一般GQ>20,即calling到的变异即alt等位基因的错误率小于0.01,
则认为该位点基因型是准确的。GQ=233 > 20,该位点基因型为0/1,杂合子类型,准确率高;
2. GT:PL = 0/0:0,30,261,那么该位点对应的GQ值为30 > 20,该位点基因型为0/0,准确率高;
3. GT:PL = 1/1:267,24,0,那么该位点对应的GQ值为24 >20,该位点基因型为1/1,准确率高;
4. GT:PL = 0/0:0,18,270,那么该位点对应的GQ值为18 < 20,
则认为该位点变异calling质量值不准确,即使概率最高的基因型是ref纯合基因型0/0,
这样的基因型也是不准确的;
5. GT:PL = 1/1:64,6,0,那么该位点对应的GQ值为6 < 20,
则认为该位点变异calling质量值不准确,即使概率最高的基因型是alt纯合基因型1/1,
这样的基因型也是不准确的。
References:
- https://www.jianshu.com/p/d6964cdcf4c6
- https://software.broadinstitute.org/gatk/documentation/article?id=5913
- https://gatk.broadinstitute.org/hc/en-us/articles/360035890531?id=4441