在做等位基因(allele)的研究中,其中一个重要的步骤就是去除比对偏差。 众所周知,人是二倍体生物,在染色体同样位置会有一对allele,一般情况下是纯合子(homozygous)状态;有时候其中一个allele发生变异(可以理解为一个SNP,寡核苷酸多态性),会变成杂合子(heterozygous)状态。
image.png
假如一个人在某个位点是杂合子,比如是AG(A与参考基因组一致,G为变异位点),在用bowtie2或者bwa等软件比对的过程中,携带有A的reads更容易比对上去,而携带有G的reads会因为与参考基因组不完全一致而相对不容易比对上去(被当成mismatch罚分),这样最终会导致两者reads数量不同而造成误差。
以下是我所见过的几种去除比对偏差的方法:
- 用N-masked genome比对,即把参考基因组的SNP的位置都替换为N,比较老的方法,效果不好;
- 构建personal genome,将参考基因组SNP的位置替换为与参考不同的那个SNP(即alternative SNP),这个方法非常常用。
- 模拟数据,将模拟数据插入SNP位点比对,把容易比对错的位点丢掉。
- 构建父母基因组,知道父母的基因组信息的话,将这个人的信息比对到其父母基因组上,适用范围比较狭小。
- 2015年Nature Method上的方法——WASP,原理是将有SNP的reads考虑各种组合情况,构建出不同情况的reads去比对,如果都比对到同样的位置,那么留下,不能的话就丢掉。效果相对不错。
15年GB上有一篇文章Tools and best practices for data processing in allelic expression analysis比较了当时的几种方法效果:
image.png
WASP的效果不错,而且丢掉的reads最少。
欢迎关注公众号:生信编程日常 共同学习~