1. 测序的应用
1.1 基因组组装
当我们进行二代测序时,常常就是将待测序列打碎,然后拼接,我们回顾一些基础知识:
- reads:就是我们测序产生的短读序列,通常一代和三代的reads读长在几千到几万bp之间,二代的相对较短,平均是几十到几百bp。
- contig:中文叫做重叠群,就是不同reads之间的overlap交叠区,拼接成的序列就是contig
- scaffold:这是比contig还要长的序列,获得contig之后还需要构建paired-end或者mate-pair库,从而获得一定片段的两端序列,这些序列可以确定contig的顺序关系和位置关系,最后contig按照一定顺序和方向组成scaffold,其中形成scaffold过程中还需要填补contig之间的空缺.
当我们拼接好一条DNA序列后,我们需要注明DNA上编码基因、重复序列、非编码RNA等等的位置,这一步骤称为基因组注释.
- 基因组注释:即在一条DNA序列上,通过从头、同源、结构定义等多种方法,搜寻并定义基因组原件,得到其位置、序列、结构、功能等信息. 当知道了DNA结构信息,我们可以对序列进行进化分析、比较基因组学的分析等等.这样就是二、三代测序的第一个应用:基因组组装.基因组组装就是把序列测序产生的读取片段reads经过序列拼接组装,生成基因组的碱基序列。基因组组装软件可根据得到的所有读长组装成基因组.
1.2 基因组重测序与变异检测
全基因组重测序是对已知基因组序列的物种进行不同个体的基因组测序,并在此基础上对个体或群体进行差异性分析。SBC将不同梯度插入片段(Insert-Size)的测序文库结合短序列(Short-Reads)、双末端(Paired-End)进行测序,帮助客户在全基因组水平上扫描并检测与重要性状相关的基因序列差异和结构变异,实现遗传进化分析及重要性状候选基因预测. 我个人的大致理解就是你拿一个单体的基因组和参考基因组对比,这样可以做碱基位置定位,发现一些特定位置的碱基有何不同,从而分析变异差异.
1.3 转录组测序
当进行了DNA测序后,我们可能还会需要RNA测序.DNA测序技术采用的是边合成边测序的原理,而RNA是单链,无法进行这一步骤.因此我们测序RNA需要将RNA逆转录. 那么转录组测序有什么用呢?我们将RNA逆转录成cDNA,然后打碎进行测序.我们可以在测序中得到不同的DNA碎片含量,以此判断哪些基因的表达量高.但这并不是究极目的,我们大多是测序同一基因在不同样本之间的表达量,如果A样本表达量高,B样本在经过一些处理后表达量低,这就说明B样本的基因表达量下降了.
2. RNA分析
2.1 为什么分析RNA
生物基因研究的大多时候是在找到表型变化后的分子机制.比如种在同一块地下的两棵苹果树,种出来的苹果出现了红色和黄色两种表型.这时候我们就需要探索在基因表达的过程中,是哪一步出现了问题.比如DNA甲基化、RNA可变剪接(比如红色苹果的外显子3个串联连接,而黄色苹果跳过中间的外显子连接)、Protein折叠不同(二、三级空间结构).如果我们测序氨基酸的序列,而一个单体的基因组有很多基因,如果我们将这些基因表达的全部蛋白质都测序出来,目前的技术是做不到的.所以我们退而求其次,测序RNA,从RNA观察表型差异原因(但RNA的差异不一定就会导致蛋白质的差异,但RNA仍然是一个比较好的突破口).
2.2 RNA测序的步骤
2.2.1 ⽐对 Spliced alignment
我们可以先将RNA分为三类:mRNA(编码RNA),lncRNA(长链非编码RNA),small RNA(短链非编码RNA).small RNA包括tRNA、核糖体RNA等.本小节专注于mRNA. mRNA变成成熟mRNA之后,会有一个Poly A的尾巴.也就是在RNA的3端加上的一段重复的AAA,我们可以利用类似钓鱼的手法,使用一段TTT将mRNA钓起来.这时钓起来的RNA几乎是mRNA,但也有lncRNA(部分也有poly A的尾巴). 我们做实验时,一般采用3个生物学样本(比如3个红苹果和3个黄苹果),当然越多越好,但考虑到设备技术条件不允许,所以一般是3个.得到6个数据后,将实验数据和参考基因组做对比. 但是RNA序列比对和DNA序列比对是存在不同的.转录组RNA reads比对不同于基因组DNA reads比对(如ChIP-seq、WES等)的地方在于,比对的reads可能来源于2个被内含子隔开的外显子区域,导致reads一端比对在第一个外显子的后面部分,另一端比对在第二个外显子的前面部分,即跨剪切位点,从而形成exon-exon junction (剪接点)。这些reads又称为junction reads,对转录本的拼接、鉴定和差异分析具有重要的意义.具体示意图如下所示:
一开始关于测序比对只有DNA的,RNA测序比对提供Spliced alignment功能的软件是在后续才出现.现今可以用于这个功能的主要是两款软件Hisat2
和STAR
.下图是比对结果统计, <math xmlns="http://www.w3.org/1998/Math/MathML"> M a p p e d r e a d s Mapped\ reads </math>Mapped reads表示能映射回DNA的数据量.我们可以发现 <math xmlns="http://www.w3.org/1998/Math/MathML"> r e a d s reads </math>reads总量和 <math xmlns="http://www.w3.org/1998/Math/MathML"> M a p p e d r e a d s Mapped\ reads </math>Mapped reads不相等.这是因为参考基因组和我们实验的基因组不一定一致,也有可能是参考基因组组装地不完整.正常的比对率需要在 <math xmlns="http://www.w3.org/1998/Math/MathML"> 80 80% </math>80以上. 下图还有一个 <math xmlns="http://www.w3.org/1998/Math/MathML"> U n i q u e l y m a p p e d r e a d s Uniquely\ mapped\ reads </math>Uniquely mapped reads,简而言之, <math xmlns="http://www.w3.org/1998/Math/MathML"> U n i q u e l y m a p p e d r e a d s Uniquely\ mapped\ reads </math>Uniquely mapped reads是指在参考组上只有一个匹配点.如果存在多个匹配点(比如匹配点的基因序列比较相似),这时候就不知道怎么处理,往常做法是直接丢掉这个 <math xmlns="http://www.w3.org/1998/Math/MathML"> r e a d s reads </math>reads,但现在也有新的方法存在,我们测序需要让 <math xmlns="http://www.w3.org/1998/Math/MathML"> U n i q u e l y m a p p e d r e a d s Uniquely\ mapped\ reads </math>Uniquely mapped reads占 <math xmlns="http://www.w3.org/1998/Math/MathML"> M a p p e d r e a d s Mapped\ reads </math>Mapped reads的 <math xmlns="http://www.w3.org/1998/Math/MathML"> 95 95 </math>95%(注意下面的 <math xmlns="http://www.w3.org/1998/Math/MathML"> U n i q u e l y m a p p e d r e a d s Uniquely\ mapped\ reads </math>Uniquely mapped reads百分比是指占所有的reads,而非mapped reads)以上.
2.2.2 表达定量 Quantification
比对完成后,会得到 <math xmlns="http://www.w3.org/1998/Math/MathML"> s a m sam </math>sam的数据格式文件,描述每一条reads对比到什么地方.定量即确定基因或转录本的表达量,最直接的方式就是统计mapping到这个基因/转录本上的reads的个数,将reads数作为表达量。我们称这种表达量为raw count.但是这一部没有这么简单,我们会在统计的时候遇到各种问题: 有很多算法用于研究这个问题,以及很多软件用实现算法来解决这个问题,这里老师推荐的是 <math xmlns="http://www.w3.org/1998/Math/MathML"> f e a t u r e C o u n t s feature\ Counts </math>feature Counts. 第二个问题是在基因层次还是isoform
层次定量?先说明一下什么是isoform
.
- 同源异构体(isoform):由来⾃⼀个基因的mRNA前体因选择性剪接⽽产⽣多种mRNA,并翻译出多种蛋⽩,这些蛋⽩即为同源异构体。同⼀个基因的不同版本的蛋⽩.
- 转录变异体(transcript variant):由来⾃⼀个基因的mRNA前体因选择性剪接⽽产⽣多种mRNA,这些mRNA即为转录变异体.同⼀个基因的不同mRNA转录本. 这里的定量会影响到后面的表达统计,在基因层次定量就是将不同的 <math xmlns="http://www.w3.org/1998/Math/MathML"> i s o f o r m isoform </math>isoform的表达量加在一起,如果是 <math xmlns="http://www.w3.org/1998/Math/MathML"> i s o f o r m isoform </math>isoform层次的就是各加各个.对于大多数物种,都建议在基因层次定量.
2.2.3 标准化 Normalization
在统计完表达定量后,我们会得到一个表格.表格的数据我们称它为 <math xmlns="http://www.w3.org/1998/Math/MathML"> r e a d s c o u n t reads\ count </math>reads count.
- 第一个问题,因为B基因更长,打碎片段更多,所以reads也会多.
- 第二个问题,total reads不同,样本3获得的总reads多,基因表达量也会多. 但是这样就无法比对了,因此就需要
Normalization
. 请注意当我们除以基因长度后,接下来就要除以 <math xmlns="http://www.w3.org/1998/Math/MathML"> t o t a l r e a d s total\ reads </math>total reads,这里有两个选择,第一个就是除以之前(未除以基因长度的) <math xmlns="http://www.w3.org/1998/Math/MathML"> t o t a l r e a d s total\ reads </math>total reads,第二个就是除以基因长度之后的 <math xmlns="http://www.w3.org/1998/Math/MathML"> t o t a l r e a d s total\ reads </math>total reads.比如样本1的A基因对于选择1是除以35,选择2是除以15.上图是选择一的结果图. 实际上选择2才是正确的.这是因为当我们除以基因长度后,得到的 <math xmlns="http://www.w3.org/1998/Math/MathML"> 5 5 </math>5是已经去除了基因长度影响的.而 <math xmlns="http://www.w3.org/1998/Math/MathML"> 35 35 </math>35是因为基因长度才会有35,比如长度越长,得到的 <math xmlns="http://www.w3.org/1998/Math/MathML"> r e a d s reads </math>reads更多.所以我们要让35也去除基因长度的影响. 我们会将选择一称为 <math xmlns="http://www.w3.org/1998/Math/MathML"> R P K M ( 与 F P K M 类似 ) RPKM(与FPKM类似) </math>RPKM(与FPKM类似),选择二是 <math xmlns="http://www.w3.org/1998/Math/MathML"> T P M TPM </math>TPM,虽然我们称 <math xmlns="http://www.w3.org/1998/Math/MathML"> R P K M RPKM </math>RPKM是错的,但也有早期论文采用,这个实际是不影响结论的. <math xmlns="http://www.w3.org/1998/Math/MathML"> T P M TPM </math>TPM可以理解为相对定量.详细区别可以看这个,还有一个 <math xmlns="http://www.w3.org/1998/Math/MathML"> C P M CPM </math>CPM,这个词没有 <math xmlns="http://www.w3.org/1998/Math/MathML"> K K </math>K代表没有去除基因长度的影响,只去除了测序深度的影响,这个多用于比较同一基因在不同样本之间的差异. 这里讲一下 <math xmlns="http://www.w3.org/1998/Math/MathML"> R P K M RPKM </math>RPKM和 <math xmlns="http://www.w3.org/1998/Math/MathML"> F P K M FPKM </math>FPKM的区别.FPKM和RPKM的定义是相同的,唯一的区別是FPKM適用於双端测序文库,而RPKM適用於单端测序文库.FPKM会將配对比对到一个片段(fragment)上的两个reads计算一次,也就是说 <math xmlns="http://www.w3.org/1998/Math/MathML"> F P K M FPKM </math>FPKM的两端测序算一个 <math xmlns="http://www.w3.org/1998/Math/MathML"> r e a d c o u n t read\ count </math>read count,接下来的计算过程跟RPKM一样.一般而言,建议我们使用FPKM. 有时候经过标准化后,还是不能对比基因表达量,会需要进一步标准化.下面我们分为了两组,一个处理一个对照,为了找出差异表达基因.我们可以注意到基因5差别很大,但问题是其他基因的差别也很大,最后会得出所有基因都是差异表达基因的结论,但这显然是不行的.
基因表达差异分析的第一步是要识别在两个条件下有显著性表达差异的基因,简称差异表达基因。那么怎样才能称得上显著性表达差异?通常是指一个基因在两个条件中表达水平的检测值差异具有统计学意义,往往基于一定的统计假设。
这里有一些解决方法:
- 内参基因 也称为管家基因,其编码蛋白是维持细胞基本生命活动所必须的蛋白质.它的表达量是不会显著改变的.如果 <math xmlns="http://www.w3.org/1998/Math/MathML"> G 1 G1 </math>G1是内参基因,那么 <math xmlns="http://www.w3.org/1998/Math/MathML"> × 3 \times3 </math>×3将它的表达量校正到处理后的同一水平,此时再观察哪些基因是差异表达基因.这里说明一下,这里我们是假设了已知 <math xmlns="http://www.w3.org/1998/Math/MathML"> G 1 G1 </math>G1是内参基因,但如果它不是,就不能这么假设.但实际分析中,我们不一定知道哪些基因是内参基因,因此这种方法还是有一定限制的.
- TMM 即假设大多数基因是没有差异表达的.通过这种假设,给处理前后尝试校正因子,当找到一个最优的因子后,可以保证大多数基因的表达量处于同一个水平,然后再去找差异表达基因.