1. illumina测序原理

本人的生物只有高中且4年没碰的水平,如果涉及生物的笔记没写对请见谅.

1. 一个典型的生物信息分析

我们在做生物信息分析时,常常是有一个目的,比如分析为什么某朵花是红色的.假设我们在做转录组数据分析,流程一般如下图所示:   得到数据后,我们会进行标准分析,得到一些信息比如基因表达信息、突变信息等,这个过程的计算量很大,需要在服务器上分析.完成标准分析后,得到的信息就比较小.比如转录组学可以得到一个表达矩阵,每个值代表每个基因的表达水平高低.得到矩阵后,又可以继续分析,比如富集分析,这一步我们称为数据挖掘(这一步可以在个人笔记本上).

2. 方向

前面是生信的基本内容,后续我们可以在不同方向发展自己的技能.比如本人就是机器学习算法方向(.)

3. 测序技术

3.1 发展时间线

测序的reads长度一直往高方向发展.(reads:给与一个基因片段,用测序仪一次测序X个碱基,称为reads长度.)

3.2 主流测序仪

目前市场主流的测序仪主要为4台.左边主要是二代测序仪,右边是三代测序仪(第4个有时候被称为4代测序仪).

4. illumina测序

4.1 原理

核心原理是边合成边测序.当我们想测序一条DNA序列,会使用类似PCR的方法.如果我们知道正在合成的DNA序列的碱基,那么需要测序的DNA序列可以推断出来.   我们用荧光标记正在合成的碱基,不同的碱基发出不同的颜色,每合成一个碱基就暂停一下(核酸以磷酸二酯键相连,可以不让他们相连,使用阻断基团),观察颜色,就知道在合成什么碱基了.   但是也有光线太弱不易观察的问题,解决方法是使用桥式PCR,将一个DNA片段扩展大量DNA片段,这样光线信号就会变强.

4.2 过程

先看右边的图.假如我们要测右边的三个DNA片段,首先我们要把这3个基因片段种植到 <math xmlns="http://www.w3.org/1998/Math/MathML"> f l o w c e l l flowcell </math>flowcell(可以理解为基因芯片)上,使用的方法是在DNA片段上接上接头序列.注意一下这个flowcell上有两种DNA引物,这两种引物与接下来要使用的DNA接头序列相互互补.   有两种接头序列,一种是P5序列,一直称之为P7序列.这是为了让我们将DNA fragment种植到芯片上.种植到芯片上就会形成一个"桥".以红色的片段为例,再利用PCR进行合成,会形成双链DNA片段,合成后桥又会打开,从原来的一个DNA片段变成两个DNA片段.这两个片段再弯腰进行合成,不断重复会形成一个cluster.这个cluster的DNA片段有的是头朝上有的是脚朝上,我们要同时测序就必须保证cluster内的DNA片段一致,所以用化学方法将不同的DNA片段去掉.此时进行同时测序,利用荧光识别DNA序列.   上面讲得很简略,建议看这个Click非常详细.   这里必须要声明一下,DNA分子存储在染色体上,而DNA分子是很长的.我们这样测序最多左边测一下,右边测一下,这样就会显得很浪费,因此我们需要用超声波将DNA分子打断,形成一个个片段,然后进行长度选择,用合适的片段进行测序.除此之外,选择打断的另一个原因是如果DNA片段太长,形成桥状的时候会引申到其他cluster去,此时就会扰乱其他cluster的荧光识别.   请注意,我们选择长度必须要选择差不多的.假如我们选择一个长的DNA片段和一个短的DNA片段,当进行桥式PCR时,短的DNA片段就会比长的多得多.此时测序就会有一个偏向性,当长的DNA片段测一次后,短的DNA片段可能已经测很多次了.此外,我们送去测序的DNA片段有数量要求,如果片段不够就会需要使用PCR扩增,如果长度相差大又会带来一个偏向性.长短是可以进行人为干涉的,但是如果某个DNA片段GC碱基含量高(低也会),合成也会较慢,相同时间PCR扩增就没有那么多,这种因素是难以避免的.   那么 <math xmlns="http://www.w3.org/1998/Math/MathML"> s i z e size </math>size选择多大是比较合适呢.我们来看下面三种情况. (1) 插入DNA的size > 300 bp.那么两端测序就会没有测完这个DNA片段.这属于正常情况. (2) 插入DNA的size > 150 bp && size < 300 bp,这样两端测序刚好拼接,这个片段刚好测完. (3) 插入DNA的size < 150 bp.会测到接头序列,这造成了污染.   我们DNA片段size选择在300bp~1000bp是比较合适的.但是这样就会造成疑惑:中间的DNA片段并没有测到.实际上我们测序打乱DNA片段时,每次打乱都是随机的.如果我们多次打乱,获得不同的随机DNA片段,就有可能覆盖原来整个DNA序列.   某个片段被覆盖3次,这个3次称为depth(测序深度),记为3X.如果某个片段GC含量高,就会导致PCR扩增少,depth就比其他片段低.   每个片段与其他片段有重叠,我们按重叠部分拼接,就可以完成DNA序列的测序(这里说得比较简单,实际是用更复杂的方法拼接).   那么我们的片段DNA从哪里来呢?我们将DNA打断成一定长度的片段,加上接头序列后,再对这些片段进行PCR扩增,这些扩增后的集合构成了DNA文库.我们对文库进行随机抽样DNA片段进行测序.假使文库中的某些DNA片段少的话,测序深度就会低,这样就不利于测序.此外,如果我们测序300条(reads),每条我们会测300bp,则总的数据量是90000,要注意计算.

4.3 illumina 接头

接头的最简单作用是"种植"在基因芯片上,但其实它还有别的作用.   我们将上图的一部分拿出来看.下面是这位佬文章的引用.

接头作为文库的必要组成部分,包括P5/P7、Index以及R1 SP/R2 SP序列。其中P5/P7序列能够跟测序芯片上的P5/P7序列互补和相同,只有这样才能将待测片段固定在Flowcell上进行桥式PCR扩增;Index又称为barcode,目的是给文库加上特定的标签,用于文库混合测序时区分不同的文库样本;R1 SP/R2 SP是Read1和Read2测序引物结合的区域,在dNTP和DNA聚合酶的作用下能够进行碱基的延伸。下图是接头的一般结构,呈"Y"字型.index1和index2也是不同的,与P5相连的是index2,与P7相连的是index1.这里的index1和index2是为了区分paired-end测序得到的双端reads.

请注意测序引物和PCR扩增结合位点是不一样的   还有一点就是Rd2sq到底是怎么用的呢?当我们将rd2的引物结合后,可以发现接下来就可以合成Index的部分,将这部分读出来就可以读到该DNA的Index序号,了解该DNA片段来自哪个原始DNA.

flowcell上有8条lane,每个lane可以测一个样本或者多样本的混合物,即90G120G数据.如果要测序人的基因组,每个lane 90120G数据刚刚好.但如果要测的基因组数据只有10G,每个lane只放一个样本会有点浪费.因此就只能混合处理,这就是为什么要加index的原因.   index(barcode)通常为6个碱基,不同样本加的index不一样.

4.4 测序结果

4.4.1 fastq文件格式

我们测完序后会得到下面的数据,这个数据格式为fastq.我们测序DNA片段时,左边和右边都会进行测序,一般是将左边的序列放在一个fastq文件,右边的序列放在另一个fastq文件.

fastq文件格式如下右图所示.我们拿出一段分析.

fastq 复制代码
@ST-E00126:128:HJFLHCCXX:2:1101:7405:1133
TTGCAAAAAATTTCTCTCATTCTGTAGGTTGCCTGTTCACTCTGATGATAGTTTGTTTTGG
+
FFKKKFKKFKF<KK<F,AFKKKKK7FFK77<FKK,<F7K,,7AF<FF7FKK7AA,7<FA,,

第一段主要储存序列测序时的坐标等信息.@ST-E00126表示机器ID.128表示机器第几次运行.HJFLHCCXX表示flowcell的ID.2表示lane的ID.1101 tail的坐标,7405 在tail中的X坐标,1133 在tail中的Y坐标.要注意第一行最后的字母表示Barcode的ID.

fastq 复制代码
@ST-E00126:128:HJFLHCCXX:2:1101:7405:1133

第2行是测序得到的序列信息,一般用ATCGN来表示,其中N表示荧光信号干扰无法判断到底是哪个碱基.

fastq 复制代码
TTGCAAAAAATTTCTCTCATTCTGTAGGTTGCCTGTTCACTCTGATGATAGTTTGTTTTGG

第3行以"+"开始,可以储存一些附加信息,一般是空的.   第4行储存的是质量信息,与第2行的碱基序列是一一对应的,其中的每一个符号对应的ASCII值成为phred值,可以简单理解为对应位置碱基的质量值,越大说明测序的质量越好.不同的版本对应的不同.举一个质量不好的例子,我们判断碱基是通过荧光颜色,当我们观察到红里透黄就比较难判断是哪个碱基,此时的质量值就会低一点.   请注意观察上图,蓝红相间表示不同的样本左边(或者右边)的DNA序列.

4.4.2 碱基质量体系

我们怎么评定碱基的质量呢?在测序仪进行测序的时候,会自动根据荧光信号的强弱给出一个参考的测序错误概率(error probility,P)根据定义来说,P值肯定是越小越好.比如A碱基的错误率是 <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 10 \frac{1}{10} </math>101,但分数不利于储存,我们会把错误率换算成其他单位.将P取log10之后再乘以-10,得到的结果为Q.把这个Q加上33或者64转成一个新的数值,称为Phred,最后把Phred对应的ASCII字符对应到这个碱基.如Q=20,Phred = 20 + 33 = 53,对应的符号是"5".   当我们看到"xx公司保证Q30>80%".这句表示假使有100G数据,这100G数据至少有80%以上的出错率换算成Q会大于30.也就是说错误率会 <math xmlns="http://www.w3.org/1998/Math/MathML"> < 1 1000 <\frac{1}{1000} </math><10001.

质量体系在未统一前出现过其他质量体系.但现在统一使用Sanger质量体系.

4.5 illumina测序平台比较

下图是illumina桌面级的测序仪.意为能放在桌子上的,就是桌面级测序仪.型号小,通量低,主要在临床检测使用.   下图是illumina工业级的测序仪.

5. 名词总结

  • Single end:只测一端.简写为PE,与之相对的是SE.当我们从文库中抓取一个DNA片段时,只测一端是SE,两端都测是PE.

  • Coverage:测序DNA片段在原DNA的覆盖范围.假使没覆盖到的长度为1M,整个DNA长20M,那么Coverage表示 <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 20 \frac{1}{20} </math>201

  • Adapter:接头

  • Base calling:表示光信号转换为碱基信号的过程.顺带一提,测序仪直接得到的文件是BCL文件.BCL文件再经过Base calling后,才会得到一个fastq文件.

6. 疑难解答

6.1 测序深度对测序有什么影响

一般而言,测序深度当然越深越好.比如我们利用人体细胞的DNA判断这个人有没有可能得老年痴呆.   我们看下图,当测序深度深时,会得到的结果比较多,因此也容易判断是否会有可能得老年痴呆.而另一处只测了2次,结果都是2,无法判断是否有C,这就不易判断.   这里讲一个问题,为什么5次那里得到的结果会不一样,我们是以人的细胞举例的,在测序时不是只取一个细胞的DNA进行分析,而是多个细胞的DNA进行打断分析.人的体细胞的同源染色体一条来自父方,一条来自母方.父方的某个基因可能是显性基因A,而母方的基因是隐形基因a.在碱基表现上也不同,所以会出现5次碱基不同的情况.这是二倍体的例子,如果是6倍体,则可能的结果会更多.   以上建立在排除突变的情况下,生物的体细胞DNA相同.详细可以看下这个Click.

6.2 两个不同的DNA片段是否可能在同一个cluster

有可能.但实际在flowcell上每个cluster之间平均都相差比较远,类似于空投跳伞员,每个跳伞员不会罗在同一个地方.这里还要说明的一点是,这样不易于提高通量.

6.3 是否可能存在没有覆盖全基因组的情况

当然存在,这样只能增加测序次数,比如人的单倍体DNA数据是3G,而我们测序时是测90G,这样平均每一个片段测了30X,有99%的概率覆盖全区域.

6.4 为什么需要双末端测序

看下图,但我们测序了一段只后,会与参考基因组进行比对,但是这段DNA片段可能与参考基因组的多个地方重合,这就难以判断具体是哪个地方.但是如果使用双端测序,就能看到右边的DNA片段的位置,从而排除一些选择.这是其中的一个原因.也有为了工业化统一的原因.

相关推荐
荒Huang1 小时前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
hjjdebug3 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯3 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流3 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
斑布斑布3 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
Spring_java_gg3 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
✿ ༺ ོIT技术༻3 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发4 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信
我言秋日胜春朝★4 小时前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器