引言
所有生信分析的上游,都是一台测序仪把生物分子的化学信号转换成数字信号。理解这个转换过程,是理解下游所有数据特征的前提:为什么读段长度是 150 bp 而不是别的?为什么 FASTQ 里每个碱基都带一个质量值?为什么某些区域的覆盖度会异常高或异常低?这些问题的答案都藏在测序原理里。
很多工程师把测序数据当成「黑盒输入」,只关心格式对不对、能不能跑通工具。这在常规流程里没问题,但一旦数据出现异常(覆盖度不均、质量值崩塌、接头污染),缺乏原理认知的人只能盲目试错。相反,理解测序原理的人能立刻判断:这是文库制备的问题、测序仪的问题,还是数据本身就该如此。
这也是为什么理解测序原理是后续一切分析的地基——本文是 生物信息学工程全景 的展开,聚焦「数据从哪来」。掌握了它,你才能读懂下游 变异检测 里那些质量相关的字段为什么重要。
本文按「技术演进 → 测序原理 → 文库制备 → 数据格式 → 质量与深度 → 实验设计」的顺序展开。重点不是罗列所有测序平台,而是建立「化学信号 → 数字数据 → 质量指标」的因果链条。读完你应该能看懂一张测序报告的每一项指标,并判断它是否正常。
需要说明的是,测序技术迭代极快:Illumina 的 NovaSeq X 系列、Element 的 Aviti、华大智造的 DNBSEQ 都在快速演进。但底层原理(边合成边测序、质量值定义、接头结构)相对稳定,掌握原理比记住具体机型参数更有长期价值。
目录
- 测序技术的三代演进
- Illumina 边合成边测序原理
- 文库制备与接头结构
- 双端测序与插入片段
- 质量值与 Phred 分数
- 长读长测序:PacBio 与 Nanopore
- 从 BCL 到 FASTQ 的数据产出
- 测序深度、覆盖度与实验设计
- 批次效应与常见测序异常
1. 测序技术的三代演进
测序技术按原理可分为三代,每一代解决上一代的特定瓶颈:
| 代际 | 代表平台 | 读长 | 通量/次 | 准确率 | 核心特点 |
|---|---|---|---|---|---|
| 一代 | Sanger ABI 3730 | 700-1000 bp | 96 反应 | 99.99% | 金标准、通量低、成本高 |
| 二代 | Illumina NovaSeq | 150-300 bp | 数十 Tb | 99.9% | 高通量、短读、主流 |
| 三代 | PacBio Revio | 10-25 kb | 数百 Gb | 99.9%(HiFi) | 长读、单分子、可跨重复区 |
| 三代 | Oxford Nanopore | 10-100+ kb | 数十 Gb | 97-99% | 超长读、便携、实时 |
一代 Sanger 测序是 1977 年发明的,至今仍是验证金标准——临床上确认一个关键变异,仍会用 Sanger 复核。但它的通量太低(一次只能测一条序列),无法承担全基因组测序。
二代测序(NGS,Next-Generation Sequencing)的核心突破是「大规模并行」:把数百万条 DNA 片段同时固定在一个芯片上,边合成边读取,一次运行产出数十亿碱基。这带来了成本的指数级下降——人类全基因组测序成本从 2001 年的约 1 亿美元降到如今的约 200-600 美元,降幅超过 20 万倍,比摩尔定律还快。
三代测序(长读长)解决的是「短读无法跨越重复区」的问题。人类基因组约一半是重复序列,短读段无法确定它们来自哪一份拷贝,导致组装碎片化。长读长可以一次跨越几十 kb,直接穿越重复区,这是 2022 年 T2T(端粒到端粒)完成人类基因组最后 8% 空白的关键技术。
理解这三代的关系:不是替代,而是分工。高深度短读用于变异检测(准确、便宜),长读用于结构变异、组装、全长转录本(跨越重复、看全长)。
2. Illumina 边合成边测序原理
Illumina 是目前最主流的平台,其核心原理是「边合成边测序」(Sequencing By Synthesis, SBS)。整个过程可以拆成四步:
1. 建库:DNA 片段化 → 加接头 → 变性成单链
2. 成簇:单链结合到 flow cell,桥式扩增(bridge amplification)
形成约 1000 个拷贝的克隆簇(cluster)
3. 测序:逐轮加入带荧光标记的可逆终止核苷酸
每轮只掺入一个碱基 → 拍照 → 切荧光 → 继续
4. 读取:从荧光图像解析每个簇每轮的碱基,得到序列
关键在于「可逆终止子」这个化学设计:每个加入的核苷酸带一个可切除的荧光基团和一个可逆的阻断基团。阻断基团确保一轮只加一个碱基(保证读框),荧光基团让仪器能识别加了哪个碱基(A/T/C/G 四种颜色)。每轮结束后切掉荧光和阻断,进入下一轮。
这个设计带来几个重要特性:
- 读长由轮数决定:150 bp 读长意味着 150 轮循环。轮数越多,后面的簇越容易失活(信号衰减),所以读长与质量成反比——150 bp 读的末端质量通常低于开头。
- 质量值与信号强度相关:荧光信号清晰、四种颜色区分明显的碱基,质量值高;信号模糊、颜色串扰的碱基,质量值低。这就是 FASTQ 质量值波动的物理来源。
- 成簇密度有上限:簇太密会互相干扰(信号串扰),太疏则浪费芯片面积。NovaSeq 的 patterned flow cell 用纳米孔阵列精确控制簇位置,把密度推到物理极限。
Illumina 的循环数、读长与产出关系可以估算:
NovaSeq 6000 S4 流动池:
每条 lane 约 10 亿簇(clusters)
双端 150 bp(PE150)→ 每簇产出 300 bp
单次运行(4 lanes)理论产出 ≈ 4 × 1e9 × 300 = 1.2 Tb
换算成 30x 人类 WGS 样本数 ≈ 1.2e12 / (30 × 3.1e9) ≈ 12 个样本
这也是实验室排样的依据:一个 S4 流动池大约能装 10-12 个 30x 人类 WGS 样本,或者几十个 RNA-seq 样本。批次设计(哪些样本放同一批测)会直接影响后续的批次效应分析。
3. 文库制备与接头结构
测序仪不能直接测原始 DNA,必须先「建库」(library preparation)——把 DNA 处理成测序仪能识别的形式。标准步骤:
- 片段化(fragmentation):把长 DNA 打断成 200-600 bp 的小片段。方法有超声打断(Covaris)和酶切,前者更均匀。
- 末端修复(end repair):补平片段末端,加 A 尾(防止片段自连)。
- 接头连接(adapter ligation):在两端连接已知序列的接头。
- PCR 扩增:选择性扩增带接头的片段,同时引入 index。
- 纯化与质检:磁珠纯化去除游离接头,用 Agilent Bioanalyzer 或 Qubit 检查片段分布。
接头(adapter)结构是理解 FASTQ 数据的关键。一个典型的 Illumina 双端接头包含:
| 组件 | 作用 |
|---|---|
| P5 / P7 序列 | 与 flow cell 上的引物互补,用于成簇 |
| Read 1 / Read 2 引物位点 | 测序引物结合位置 |
| Index(i5/i7) | 样本条形码,用于多样本混测时拆分 |
| 测序引物结合序列 | 启动边合成边测序 |
接头污染是最常见的测序问题之一。如果片段化不充分(片段太短)或接头纯化不彻底,测序会读到接头序列而非样本序列。表现是 FASTQ 末端出现固定序列(如 AGATCGGAAGAGC)。这类污染必须在下游分析前剪除,否则会导致比对失败或假变异。
还有一个相关概念是 UMI(Unique Molecular Identifier):在接头中加入一段随机序列,为每个原始 DNA 分子打上唯一标签。这样即使经过 PCR 扩增,也能通过 UMI 区分「真实的多个分子」与「同一个分子的多个拷贝」,从而准确计数。低输入量建库(如单细胞、cfDNA 液体活检)几乎必用 UMI。
4. 双端测序与插入片段
双端测序(Paired-End, PE)指从片段的两端各读一段序列,得到 Read 1 和 Read 2。它与单端(Single-End, SE)的区别不是「读得更长」,而是「知道两端」。
5'----R1----> <----R2----3'
|<------ 插入片段 (insert size) ------>|
插入片段 = 300 bp 时:
R1 (150 bp) + R2 (150 bp) 完全覆盖,两端重叠
插入片段 = 500 bp 时:
R1 + R2 之间留 200 bp 空隙(未测区域)
双端测序的价值:
- 更好的比对唯一性:单个 150 bp 读段可能匹配基因组多处,但结合「两端相隔约 500 bp」的约束,可以唯一定位。这对重复序列区域至关重要。
- 检测结构变异:如果 R1 和 R2 比对到基因组的相距很远的两个位置,说明中间存在结构变异(缺失、倒位、易位)。这是短读检测 SV 的主要手段。
- 组装 scaffold:在基因组组装中,双端信息可以把 contig 连接成更长的 scaffold。
插入片段大小(insert size)由建库时的片段化决定,通常在 300-600 bp。这个参数必须与读长匹配:如果插入片段只有 200 bp 而读长 150 bp,R1 和 R2 会大量重叠(浪费测序量);如果插入片段过长而读长太短,中间的空隙太大,比对约束会变弱。
工程上,fastp 可以自动检测并报告插入片段分布,picard CollectInsertSizeMetrics 也能输出分布图。异常分布(如双峰、拖尾)通常提示建库问题。
一个常见的误区是「双端测序等于读长翻倍」。实际上,PE150 的单条读段仍是 150 bp,只是每个片段产生两条读段。当插入片段小于 2 倍读长(如插入 200 bp、读长 150 bp)时,R1 和 R2 会重叠 100 bp,这段重叠区等于「被测了两遍」,是一种浪费。理想的插入片段应在 1.5-2 倍读长之间,既能覆盖全长又不浪费。
此外,双端信息在「去重」时也有用。picard MarkDuplicates 判断两条读段是否来自同一个原始分子,依据就是 R1 和 R2 的起点与方向是否完全一致——这是 PCR 重复的特征。单端数据无法做这种精确判断,所以去重效果差很多。
5. 质量值与 Phred 分数
FASTQ 的每个碱基都带一个质量字符,编码的是「这个碱基测错的概率」。这个编码规则是 Phred 质量值(Phred Quality Score, Q):
Q = -10 × log10(P_error)
Q20 → 错误率 1/100 (99% 正确)
Q30 → 错误率 1/1000 (99.9% 正确)
Q40 → 错误率 1/10000 (99.99% 正确)
质量值在 FASTQ 里用单个 ASCII 字符表示,编码方式是 Q + 33(Phred+33,现代标准)或 Q + 64(Phred+64,早期 Solexa/454)。例如:
字符 'I' 的 ASCII 码是 73
Phred+33: Q = 73 - 33 = 40 (高质量)
字符 '#' 的 ASCII 码是 35
Phred+33: Q = 35 - 33 = 2 (极低质量)
ASCII 33 到 126 对应 Q0 到 Q93,但实际质量值很少超过 41(受测序化学限制)。理解质量值有三个工程要点:
- Q30 比例是最核心的质量指标:通常要求 ≥ 80%(Illumina 标准),低于 70% 说明测序有问题。这个比例是「质量值 ≥ 30 的碱基占总碱基的百分比」。
- 质量值沿读段递减:读段开头(前几个循环化学不稳定)和末端(信号衰减)质量较低,中间最高。这是「两端剪裁」策略的依据。
- 质量值不可直接平均:因为 Phred 是对数刻度,平均 Q30 和 Q20 不等于 Q25。正确做法是先转成错误概率再平均,
samtools的-q过滤也是按阈值而非平均值。
质量值与下游决策直接相关:比对工具会用质量值决定是否信任一个错配(低质量错配更可能是测序错误);变异检测会综合质量值计算该位点是真变异的概率。所以质量值不是「装饰」,而是贯穿全流程的权重信息。
6. 长读长测序:PacBio 与 Nanopore
长读长测序解决短读的根本局限:无法跨越重复区、无法看全长转录本、难以检测大结构变异。两大技术路线:
PacBio(SMRT 测序):用零模波导(ZMW)孔观察单个 DNA 聚合酶的实时合成。原始读长可达 10-25 kb,但单次准确率约 85-90%。通过「环化一致性测序」(Circular Consensus Sequencing, CCS),让同一个分子被测多次,取一致性得到 HiFi 读段:读长约 15 kb、准确率 > 99.9%。HiFi 是当前高精度长读的主流。
Oxford Nanopore(ONT):让 DNA 单链穿过纳米孔,通过离子电流变化识别碱基。读长可以超过 100 kb,甚至达到 Mb 级,但原始准确率约 95-99%(取决于孔版本,R10.4.1 显著提升)。设备小巧(MinION 只有 U 盘大小),适合现场测序与实时分析。
| 维度 | PacBio HiFi | ONT |
|---|---|---|
| 读长 | 10-20 kb | 10-100+ kb |
| 准确率 | > 99.9% | 97-99%(原始) |
| 通量 | 高(Revio) | 中 |
| 便携性 | 台式机 | 极小(MinION) |
| 适用 | 组装、SV、甲基化 | 超长读、实时、现场 |
长读长的工程挑战主要在数据处理:数据量大(单次运行上百 GB)、比对工具不同(minimap2 而非 BWA)、需要专门的变异检测工具(如 pbmm2 + DeepVariant,或 Sniffles 检测 SV)。此外长读的错误模式是「插入缺失为主」,与短读的「替换为主」不同,下游工具必须匹配。
一个实用建议:混合组装(hybrid assembly)用长读做骨架、短读做纠错,兼顾长读的跨度与短读的准确度。这是很多高质量基因组组装的标准做法。
长读长的成本仍然显著高于短读(单位碱基约贵 5-10 倍),所以常见策略是「长读低深度 + 短读高深度」:用 15-20x 的长读跨越重复区、检测结构变异,用 30x+ 的短读做精确的碱基级变异检测。两者互补,总成本远低于用长读做到 30x。
需要提醒的是,长读长的碱基错误模式以「插入缺失」为主,这会让许多为短读设计的工具(默认只处理替换型错误)产生大量假阳性。使用长读数据时,必须选择明确支持长读错误模型的工具链,例如用 minimap2 的 map-hifi 预设比对 HiFi 数据,而非用 BWA。
7. 从 BCL 到 FASTQ 的数据产出
测序仪的原始输出不是 FASTQ,而是 BCL 格式(Base Call files)——按「循环 × 簇位置」组织的碱基调用结果。从 BCL 到 FASTQ 需要经过碱基识别(base calling)与拆分(demultiplexing):
# Illumina 平台:bcl2fastq(旧)或 bcl-convert(新,NovaSeq X 用)
bcl-convert \
--bcl-input-directory /runs/240101/Data/Intensities/BaseCalls \
--output-directory /runs/240101/fastq \
--sample-sheet /runs/240101/SampleSheet.csv \
--no-lane-splitting true
# 输出:每个样本一对(或两对)FASTQ
# SampleA_S1_L001_R1_001.fastq.gz
# SampleA_S1_L001_R2_001.fastq.gz
关键点:
- SampleSheet.csv 决定拆分:它声明每个 index 对应哪个样本。index 写错会导致样本错配——这是「样本调包」事故的头号原因。
- index 测序质量:index 也要测序,如果 index 有 1 个碱基错读,样本可能被分到错误的组(index hopping)。双 index(unique dual index, UDI)能大幅降低这种风险。
--no-lane-splitting:默认 bcl-convert 会按 lane 拆分,产生多个文件;合并成单个文件通常更方便下游。- 数据量对账:产出后要核对实际数据量是否达到预期(如 30x 目标对应约 100 GB FASTQ),不足需补测。
从 FASTQ 的头部也能读出关键信息:
@A00123:45:HXXXXX:1:1101:1000:1000 1:N:0:ACGTACGT
└── index 序列
└── tile/坐标(用于定位簇)
└── flow cell ID
读段名(read name)中的坐标信息在排查「特定区域质量异常」时非常有用——可以定位到 flow cell 上的物理位置,判断是局部化学问题还是全局问题。
8. 测序深度、覆盖度与实验设计
测序深度(depth)是实验设计的核心参数。几个相关但不同的概念:
- 测序深度:总碱基数 / 基因组大小。30x 表示平均每个碱基被 30 条读段覆盖。
- 覆盖度(coverage):实际被覆盖的碱基比例。由于覆盖度符合泊松分布,30x 平均深度下,仍有个别位点深度为 0(未被覆盖)。
- 目标深度:针对特定区域(如 WES 的捕获区、肿瘤的驱动基因)要求的最低深度。
深度与「检出能力」的关系可以用泊松分布估算:
import math
def p_uncovered(depth):
"""给定平均深度,某位点完全未被覆盖(深度=0)的概率"""
return math.exp(-depth)
def p_min_depth(depth, k):
"""某位点深度至少为 k 的概率(用于判断能否可靠检出变异)"""
return 1 - sum(math.exp(-depth) * depth**i / math.factorial(i)
for i in range(k))
# 30x 下约 6.9% 的位点深度为 0(无覆盖)
print(f"P(depth=0) @30x = {p_uncovered(30):.4f}")
# 杂合变异需要至少 10x 才能较可靠检出(避免等位基因丢失)
print(f"P(depth>=10) @30x = {p_min_depth(30, 10):.4f}")
实验设计要点:
- 深度按目标定:胚系变异 30x、体细胞变异 100x+、宏基因组 5-10 Gb/样本、单细胞 20k-50k reads/细胞。深度不足会导致假阴性(漏检真变异),过高则浪费成本。
- 生物学重复(biological replicate):至少 3 个,用于统计推断。技术重复(同一文库测多次)不能替代生物学重复。
- 对照样本:肿瘤研究需要「肿瘤 + 正常」配对,才能区分胚系与体细胞变异;处理组需要对照组。
- 批次平衡:不同批次(不同流动池、不同日期)会引入批次效应,应把处理组与对照组均匀分布在各个批次,而非一批全是对照。
9. 批次效应与常见测序异常
测序数据异常可粗分为「化学/仪器问题」与「生物学问题」,两者的排查方向完全不同:
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| Q30 比例 < 70% | 试剂过期、成簇失败 | 看 flow cell 报告 |
| 覆盖度严重不均 | GC 偏倚、建库问题 | fastqc 的 per-base GC 图 |
| 接头污染 | 片段过短、纯化不足 | 搜索已知接头序列 |
| 重复率异常高 | PCR 循环过多、输入量低 | picard MarkDuplicates 统计 |
| 样本间相关性异常 | 批次效应、样本污染 | PCA / 相关性热图 |
| 特定区域无覆盖 | 参考基因组缺口、重复区 | 检查参考版本 |
批次效应(batch effect) 是实验设计层面最隐蔽的问题。不同批次的试剂、操作员、仪器状态都会引入系统性差异。如果处理组恰好都在批次 A、对照组都在批次 B,那么「处理效应」与「批次效应」就完全混淆(confounded),无法区分。这属于实验设计阶段就必须避免的错误,事后无法用统计方法补救。
GC 偏倚是另一个常见问题:某些 GC 含量高或低的区域扩增效率低,导致覆盖度系统性偏低。这在全基因组扩增(WGA,单细胞常用)中尤其严重。检测方法是画「GC 含量 vs 覆盖度」散点图,正常应接近水平线,有明显斜率则存在偏倚。
最后强调一个原则:测序质量指标要「随数据走」。每个样本的 Q30、比对率、重复率、覆盖度都应记录在元数据表里,与样本一起流转。这样当分析结果异常时,可以快速定位是不是某个低质量样本拖累了整体。
实践中最省事的做法是用 MultiQC 把所有样本的 QC 报告汇总成一张总表:一次运行就能看出哪个样本的 Q30 偏低、哪个样本的重复率异常、哪个样本的比对率掉队。这张表既是质控依据,也是后续统计模型里「协变量」的来源——把测序质量作为协变量纳入差异分析,能有效降低技术噪声对生物学结论的干扰。
权衡取舍
| 决策点 | 方案 A | 方案 B | 建议 |
|---|---|---|---|
| 读长 | 短读 PE150(准、便宜) | 长读(跨重复、看全长) | 变异检测用短读,组装/SV 用长读 |
| 单端 vs 双端 | SE(省一半数据) | PE(更好定位) | 除小 RNA 等特殊场景外都用 PE |
| 深度 | 30x(胚系) | 100x+(体细胞) | 按检出目标定,不要一刀切 |
| 建库 | PCR 建库(需 UMI) | PCR-free(无偏) | 低输入量用 UMI,常规用 PCR-free |
| 平台 | Illumina(主流) | MGI/BGI(成本) | 兼容性优先 Illumina,成本敏感考虑 MGI |
| 质量过滤 | 严格(Q30+) | 宽松(保留更多) | 低覆盖数据放宽阈值,保留可用信息 |
常见坑清单
- index 写错导致样本调包:SampleSheet 里的 index 与实际不符,样本 A 的数据被当成样本 B;用双 index 并在拆分后做样本相关性校验。
- 忽略接头污染:测到接头序列却直接比对,产生大量软剪切或假变异;建库质检 +
fastp自动去接头双保险。 - 把技术重复当生物学重复:同一文库测两次不是重复,无法提供统计自由度;实验设计阶段就要规划独立的生物学样本。
- 深度不足导致漏检:低深度下杂合位点可能只有一条读段支持,被误判为纯合;关键位点用 Sanger 或高深度验证。
- 批次与处理混淆:所有处理组放一批、对照组放另一批,批次效应与处理效应无法分离;做批次平衡的随机化设计。
- 质量值编码误判:Phred+33 与 Phred+64 混用导致质量阈值失效;用
fastqc确认编码再设阈值。 - 忽略插入片段分布:片段过短导致 R1/R2 大量重叠、浪费测序量;建库后检查片段分布是否与读长匹配。
- 重测序用旧参考:新样本仍比对到 hg19,与团队其他数据不一致;统一参考版本并写入元数据。
- 只看总数据量不看覆盖均匀性:总碱基数达标但覆盖度不均,关键区域仍有缺口;用
mosdepth或samtools depth检查实际覆盖。 - 不做样本性别校验:样本调包或污染时,性染色体覆盖度会暴露矛盾;用
samtools idxstats快速核对 X/Y 覆盖比例。
小结
测序技术是生信数据链路的起点,理解它才能理解数据的「脾气」。Illumina 的边合成边测序决定了读长与质量的权衡,文库制备决定了接头与插入片段的特征,Phred 质量值决定了每个碱基的可信度,而实验设计决定了数据能否回答科学问题。这些不是可选的背景知识,而是排查问题的必备坐标系。
从工程视角看,测序环节最该建立的能力是「对账」:实际产出的数据量、质量、覆盖度是否与预期一致?index 是否正确?样本是否有交叉污染?把这些检查固化成流程的第一步(而非事后补查),能拦住大部分灾难性错误。接下来就该进入 FASTQ 质控与预处理 ,把这些检查变成自动化的过滤与剪裁。
需要记住的一句话是:测序数据的所有特征都是化学过程的产物,没有「随机噪声」,只有「尚未理解的系统性偏差」。当你看到异常时,先问「哪个化学或物理环节导致了它」,而不是直接调参重跑。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。