什么是基因组变异
基因组变异是一个定义比较模糊的概念。 所谓的变异是相对于一个完美的“参考基因组”而言。但是其实完美的“参考基因组”并不存在,因为我们只是选择某一个物种里的其中似乎比较正常的个体进行测序组装,然后基于它进行后续的研究。简单的说,参考和变异是相对而言,变异也可能完全正常。
常见的基因组变异一般可以归为如下几类:
变异种类 | 中文意思 | 简单定义 |
---|---|---|
SNP | 中等文单核苷酸多态性 | 一个碱基的变化 |
INDEL | 插入或缺失 | 一个碱基的增加或移除 |
SNV | 单核苷酸变异 | 一个碱基的改变,可以是SNP,也可以是INDEL |
MNP | 多核苷酸多态性 | 一个区块中有多个保守的SNP |
MNV | 多核苷酸变异 | 一个区块中有多个SNP或INDEL |
short variations | 短的变异 | 小于50bp的变异 |
large-scale variation | 大范围变异 | 大于50bp的大规模变异 |
SV | 结构变异 | 通常是上千个碱基,甚至是染色体级别上的变异 |
一般来说重点研究的是SNP,INDEL 还有SV。
研究这些变异需要用到不同的手段,其中普通的DNA二代测序在寻找20bp以下的变异比较靠谱,对于大于1kb的结构变异而言,采用光学图谱(Bionanogenomics)可能更加靠谱一点。因此,对于目前最常用的二代测序而言,还是尽量就找SNP和INDEL吧,几个碱基的变化找起来还是相对容易些和靠谱些。
genotype和haplotype。genotype,基因型指的是一个个体的遗传组成。但是对于基因组变异而言,基因型通常指的是个体在某个位点上的等位基因情况。haplotype, 单倍型最初指的是从单个亲本中遗传的一组基因,而在基因组变异背景下,则是指一组变异。
通过NGS寻找变异的流程
简单来说可以分为:
- 序列比对
- 比对后处理(可选)
- 从联配中确定变异
- 根据某些标准进行过滤
- 对过滤的变异注释
这里面的每一个可选的工具都有很多,不同工具组合后的分析流程得到的结果可能会有很大差异。变异检测到底应该用什么软件?这里其实已经有很多人做过比较了:
在2014年就有一篇博客,用NA12878/NA12891/NA12892 trio数据集对GATK HaplotypeCaller, FreeBayes, Platypus 和samtools 这五个软件做了一个比较,下面是比较结果。
先不要被这个条形图的明显反差误差,以为Platypus非常差,其实它们都在一个数量级上。在同一个数量级上,GATK的HaplotypeCaller在精度和准确上都的确比其他软件好。也可以发现samtools其实在找indels更加的粗犷,找到了更多本来不存在的indels,但是在snp上的表现其实是一致的。
还有就是关于比对软件的比较:
BWA mem算法产生的SNP是比bowtie2的高很多,所以大多数的variant calling的pipeline中都会推荐使用BWA比对工具。
总的来说,GATK的优势在于,能够利用机器学习的方法根据已有变异数据库进一步提高结果的准确度。但是对于植物而言,所能做的就是硬指标过滤也是可以考虑使用。因此,如果做人类,最推荐的工具是GATK,因为表现的确很好。而且人类还会不断增加样本,需要使用GVCFS文件解决N+1的问题。如果是植物,可以考虑freebayes效率高,表现也不错。
常用比对工具网址
bcftools: http://www.htslib.org/doc/bcftools.html
FreeBayes: https://github.com/ekg/freebayes
GATK: https://software.broadinstitute.org/gatk/
VarScan2: http://varscan.sourceforge.net/
variant分析阶段小结3-对变异进行注释
推荐阅读文章
这是整理的非常非常好的几篇文章,强烈推荐大家阅读、
variant分析阶段小结1-基础知识
variant分析阶段小结2-寻找变异并过滤
variant分析阶段小结3-对变异进行注释
call variant中关于snp筛选的一些思考