测序技术基础:二代测序、三代测序原理及特点
做宏基因组分析,到头来其实都是在跟测序数据打交道。不管你是想研究肠道菌群,还是环境样本里的微生物,第一步就是把样本里的核酸序列读出来。
我个人习惯把测序技术的发展分成三个阶段。第一代测序(Sanger测序)精度高但通量低,现在主要用来做验证。真正把宏基因组这门学科带起来的,是二代测序。而三代测序又在慢慢改变一些分析策略。
今天我们就聊聊二代和三代测序。这俩货的原理差别非常大。你理解了它们,后面做数据预处理的时候,才知道为什么有些操作是必须的。
二代测序:边合成边测序的代表
二代测序的核心思想,说白了就是“边合成边测序”。主流平台是Illumina系列。它的原理其实没那么玄乎。
基本流程如下:
- 文库构建:把DNA打断成小片段(200-500 bp),接上接头。
- 桥式PCR扩增:在flow cell上形成一个个簇。每个簇里有几百万个一模一样的DNA模板。
- 边合成边测序:加入带荧光标记的dNTP,每合成一个碱基就拍一张照。
- 信号读取:通过荧光颜色判断碱基类型。
我记得有一次做一组水样宏基因组,遇到一个坑。当时建库时DNA降解比较严重,qPCR定量一直不过关。后来发现是打断时长没控制好。嗯,这里要注意:打断的片段长度一致性直接影响测序质量。
三代测序:单分子实时测序
三代测序的代表是PacBio和Nanopore。这俩技术的原理完全不同,但有一个共同点:不需要PCR扩增,直接读单个DNA分子。
PacBio SMRT技术:
- 在零模波导孔(ZMW)中固定DNA聚合酶。
- 加入带荧光标记的dNTP。
- 聚合酶每结合一个碱基,荧光信号就被记录下来。
- 测序过程实时发生,可以直接捕获动力学信息。
Nanopore技术:
- 在生物纳米孔上施加电压。
- DNA单链穿过纳米孔时,引起电流变化。
- 不同碱基组合产生特定的电流扰动波形。
- 通过机器学习算法解码碱基序列。
我个人觉得,三代测序最大的价值在于读长。动辄10-20 kb的读长,对于宏基因组里那些重复区域的拼接简直是救星。但我曾经遇到过一个问题:三代测序的原始错误率很高,PacBio大概在15%左右,Nanopore更高。这就对后续的纠错算法提出了要求。
关键技术指标对比
实际操作中,怎么选平台?我一般先看这几个指标:
| 指标 | 二代测序(Illumina) | 三代测序(PacBio) | 三代测序(Nanopore) |
|---|---|---|---|
| 读长 | 150-300 bp | 10-30 kb | 10-100 kb+ |
| 通量 | 高(数百G/run) | 中等(10-50 G/run) | 中等(10-50 G/run) |
| 单碱基准确率 | >99.9% | ~87%(原始) | ~90-95%(原始) |
| 主要错误类型 | 替换错误 | 插入/缺失(indel) | 插入/缺失(indel) |
| 运行时间 | 1-3天 | 4-10小时 | 几分钟到72小时 |
| 起始DNA量 | 1-500 ng | 0.5-5 μg | 200 ng-1 μg |
| 典型应用场景 | 物种注释、功能基因分析、SNP检测 | 基因组组装、结构变异、甲基化检测 | 快速诊断、现场检测、结构变异 |
你看这个表格就知道,没有哪个平台是万能的。二代测序在碱基准确率上有绝对优势,但读长短。三代测序读长优势明显,但原始错误率惊人。你想想看,宏基因组拼接的时候,如果只用二代数据,重复区和高度相似序列基本拼不出来。而只用三代数据,又可能因为错误率太高导致错误的嵌合体。
从原理理解数据特征
很多人拿到测序数据就急着跑流程。我的建议是,先停下来想一想:你的数据是什么样的?
二代数据的特征:
- 质量值分布:前10个碱基质量偏低(测序仪启动不稳定),中间稳定,两端逐渐下降。
- GC bias:高GC或低GC区域覆盖度不均匀。我记得有一次做极端环境样本,GC含量只有30%,测出来的覆盖度比正常样本低了近50%。
- 重复序列:短读长无法跨越重复区域,导致拼接时产生大量断裂。
三代数据的特征:
- 错误分布:indel错误为主,且呈随机分布。不像二代那样集中在末端。
- 读长分布:长尾分布,很多reads可以轻松超过20 kb。
- 基序偏好:某些特定序列组合(比如同聚物)在Nanopore数据中错误率偏高。
了解这些特征,你在做质控(QC)的时候就知道该关注什么。比如对二代数据,要特别留意adapter残留和低质量碱基的裁剪。对三代数据,重点应该是去除短片段(通常小于2 kb的reads质量较差)和进行自纠错。
常见的测序数据文件格式
说了这么多原理和特征,最后聊聊数据长什么样。你总会碰到格式转换的问题。
FASTQ格式:测序原始数据标准格式,每4行代表一条read。
@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:ATCACG
CTCTACTATATTATCAACACAAATTACTAATACCCTCCTTAACATTATTTAC
+
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
第一行是read ID和描述信息,第二行是碱基序列,第三行是分隔符(+),第四行是质量分数(ASCII编码)。
FASTA格式:只包含序列信息,没有质量值。
>seq1
ATCGATCGATCGATCG
>seq2
GCTAGCTAGCTAGCTA
BAM/SAM格式:比对后的存储格式。BAM是压缩后的二进制版本。
@SQ SN:ref LN:10000
read1 0 ref 100 30 150M * 0 0 ATCG... IIII...
在实际项目中,你会频繁用到这些格式的转换。我记得有一次处理Nanopore数据,原始的fast5文件(包含电流信号)需要先转换成FASTQ,才能进入下游分析。这步转换对计算资源要求还挺高的。