基因变异检测
本周的任务是弄清楚基因检测是什么,本来以为挺简单的,后来发现自己基本的染色体都忘干净了。
基因变异检测看名字就知道是针对基因的,但是基因是什么呢?感觉基因像是一种抽象的概念,那么该怎么检测呢?
1. 什么是基因
基因(英语:gene),在生物学中是指“携带遗传信息的基本物质单位”(基本遗传单位)。而自从确定遗传信息的分子载体为核酸后,基因即指能够遗传且具功能性的一段DNA或RNA序列,详细来说,其为DNA或RNA大分子内一段编码基因产物(RNA或蛋白质)的合成)的核苷酸序列。
这是百科上面的定义,感觉挺抽象的,但是经过查资料总结,可以看出如下从上到下的关系。
对于基因检测这种偏向于计算机和统计学的角度来看,我认为不需要了解具体的构成,只需要知道在概念上位于哪个层次就好了。
首先我们都知染色体在体细胞内是成对存在的,一个染色体内有1-2个DNA(脱氧核酸)。DNA上有许多基因,基因是DNA上具有遗传效应的片段,这里可以直接类比 想一下类比啥。DNA是由成千上百个脱氧核苷酸组成的,而脱氧核苷酸由一分子含氮碱基、一分子脱氧核糖、一分子磷酸组成。这里注意一下碱基的位置,碱基就对应第一个图上的双链中间的字幕,可能的字母只有A,C,G和T,分别代表组成DNA的四种核苷酸——腺嘌呤,胞嘧啶,鸟嘌呤,胸腺嘧啶。每个字母代表一种碱基,两个碱基形成一个碱基对,碱基对的配对规律是固定的,即是:A-T,C-G。碱基的排列顺序代表着遗传信息,所以在后面基因的变异检测里面,就是对基因测序测出来的这种碱基字母序列进行检测。
2. 怎样测出基因序列
总的来说基因测序就是对碱基排列顺序,也就是遗传信息,进行测定。目前总的来说已有三代测序技术,但是目前我先以二代测序(Next Generation Sequencing, NGS)为例说明测序流程是怎样的,可能会对后面的变异检测产生什么影响。
二代测序又称为高通量测序(这里高通量我认为简单的可以理解为同时检测的数量大),二代测序的流程大致分为以下几个部分样本准备、文库制备、簇生成、上机测序。
样本准备就是准备DNA分子。
文库制备:首先解释一下文库,文库就是两端有特定接头的DNA片段混合物(因为基因测序都是在测序芯片上进行的,芯片上含有一种接头,而在DNA片段两端加入接头就是为了与芯片接头进行互补配对连接)。
因为DNA太长,但是目前的技术无法一次对整个DNA进行测序,所以这个阶段首先将基因组DNA打断(使用物理的超声波打断或化学的酶切法)。
因为打断后DNA是不规则形状的,一对DNA可能两端不一样长,所以接下来进行DNA末端修复,就是将两端磨得对齐。
接下来在基因的3’端加入A尾,这一步的目的是为了方便接头嫁接。而3’端和5‘,就可以认为是对方向进行标记的。具体解释是:DNA 中的 3’ 端、 5’ 端是指每一条链来说的。在DNA分子的每一条链中,磷酸基团(P)那一边属于 5’ 端,因为在一个脱氧核苷酸中,磷酸连接在脱氧核糖的第5号碳原子上;而—OH端是 3’ 端,因为羟基连接在脱氧核糖的第3号碳原子上。所以DNA分子的两条链都有 3’ 端、 5’ 端。
加入A尾DNA分子结构示意图
接下来在两端加入特异性接头。这一步的主要目的就是为了与芯片上的接头进行互补配对连接。
簇生成:这一步就是通过不断地进行PCR桥式扩增,桥式扩增的目的是为了形成簇,单个DNA分子反应的信号难以检测,桥式扩增后形成簇,测序才能检测信号(因为测序是通过拍照检测荧光实现的)。对应下图过程。上机测序:这部分就是使用机器对基因处理好的DNA片段进行测序。测序产生的短序列片段叫做读段(reads)。而测序分为两种,从头测序(de novo sequencing)和重测序(resequencing),从头测序就是针对没有参考基因组(就是已经有人测得的该物种完整的基因)的情况下,需要将reads从头进行拼接,组装成完整的基因组序列。如果已有参考基因组,那么测序的目的就是为了检测变异之类的,就需要基于参考基因组进行测序(对照)。生物信息学分析:最后将得到的数据进行分析。
3. 基因组变异的主要类型
前面解释了基因的概念,对于基因组变异检测,检测的主要就是样本的碱基序列与参考序列之间的差异。按照这个差异的长度来分主要有三种。(下面的bp是碱基对的单位,basepair)
单核苷酸变异单个碱基之间 -Single Nucleotide Variant,SNV
短片段插入/删除变异<50bp -Insertion/Deletion,INDEL
大片段结构变异>50bp -Structure Variant,SV
单核苷酸变异 SNV
单核苷酸变异,简单的说就是变异只产生在单个碱基上面,比如在橙色的那一列可以看出正常样本在参考序列G的位置有些变异为了C。
短片段插入/删除变异 INDEL
短片段插入删除变异是指长度小于50bp的变异,这个比较好懂。
大片段结构变异 SV
这种变异是指针对长度大于50bp的变异。主要有以下几种:
拷贝数变异 copy number variation,CNV 或 duplication
这种变异可以理解为复制错误,就像下图,参考基因组序列的一个片段在样本序列中出现了两次。
插入 insertion
这种变异就是在插入点两端与参考基因组都是对应的,但是在插入点这个位置(就是下图中橘黄色的区域),插入了一段序列。
缺失 deletion
如下图,样本序列中缺少了参考基因组的一段。
反转 inversion
反转对应下图中样本两端的序列与参考基因是一致的,但是中间的区域(对应下图中中间的绿色条)是与参考基因组反向的。
易位 translocation
易位对应下图出现在参考序列左端的的序列却出现在了样本中的右端。
4. 单核苷酸变异检测
单核苷酸变异检测大部分方法都是基于贝叶斯定理进行推断的。贝叶斯定理简单的说就是通过样本确定一些概率,从根据概率确定一个位置是否发生变异,发生哪种变异。
其中,G表示基因型的任意一种,D表示观测数据。检测流程如下图:
以一个基于Java的检测软件方法HaplotypeCaller为例:
其检测流程:首先定义变异区间,这里指发生变异概率较高的区间,可以减少计算。然后进行数据组装,将数据对应到参考基因组。在根据隐马尔科夫模型计算最大似然值(可以理解为变异点各种基因型的概率)。最后使用贝叶斯算法求出变异位置最大可能的基因型,进而可以与参考基因型对比得出发生了哪种变异。
5. 拷贝数变异检测
拷贝数变异主要有以下四种检测方法:双末端映射、基于reads深度、基于拆分read、基于从头拼接。
双末端映射 - Paired End Mapping, PEM
双末端映射或者说读对方法等,是测序从两端同时展开,生成双末端reads,双末端段之间的距离称为插入片段长度(Insert Size)。无结构变异区域,获得的数据基本保持不变,对于发生结构变异的异常reads对,其双末端reads会发生长度或方向等的改变。检测就是分析样本基因组与参考基因组在距离和方向上的不同,来判断是否存在SV。
通常检测时,对所有的异常reads进行聚类,一种方法是限定每个拷贝数变异的类至少有两个异常reads对,最后根据产生哪种异常的数目多就判定为哪种变异(就是投票表决)。
另外一种是基于概率或统计模型的方法进行检测。
基于reads深度 - Read Depth, RD
对于基于reads深度的方法,首先reads的深度就是指同一位置上reads的数量,就比如说前面介绍变异时的an。如果发生删除变异,深度比正常小,发生重复深度比正常的大,如下图。
至于算法流程,经典算法是EWT算法,首先取长度为100bp的窗口,计算窗内的reads起始位点个数作为测序深度。假设正常情况下服从泊松分布,但是在红框区域内,产生了连续且明显的下降,就可以判断出这里出现了缺失变异。
但是缺点是只能判断是否存在变异,没办法继续判断变异的类型。
基于拆分read - Split Read, SR
基于拆分的方法,主要思想是,基本思想是如果双末端reads中的一条可以正确映射到参考基因组,另一条无法正确映射则可判断可能是由于覆盖拷贝数变异的断点原因。断点是指在其两端的部分是可以与参考基因组正确对比的,但是在断点处无法正确对比。
具体步骤就是将待测的基因组在进行拆分成多段,使其首尾两端都能够正确映射到参考基因组,这样就可以判断出出现了哪种变异。
基于从头拼接 - de novo assembly, AS
对于从头拼接的方法来说,他是将reads片段从头进行拼接,再将其与参考基因组进行对比。
拼接方法就是将大量相互重叠的reads进行不断的拼接,最后获得较长的片段,与参考基因组进行对比
但是目前由于读长较短,并且存在错误等,导致效果不好。