3. 测序原理与数据产生

各位好,我是老陈。做生信这些年,经手过不下两百个测序项目,从 MiSeq 到 NovaSeq 都摸过。每次带着新人跑流程,我总要从这章讲起——你连数据怎么来的都不清楚,后面拿什么做变异检测?

Illumina 测序的核心原理

说白了,Illumina 的看家本事就三样:桥式 PCR、可逆终止子、边合成边测序(SBS)。这三个词记住了,整个流程就通了一半。

桥式 PCR 扩增

文库片段两端接上了接头,上机后它们会随机锚定在 Flow Cell 表面。我最初觉得这就像“钓鱼”——接头是鱼钩,Flow Cell 上的互补引物是鱼饵。一旦锚定,就原地开始桥式 PCR,形成一个簇(cluster)。每个簇里是同一文库片段的几千个拷贝。为什么要这么多拷贝?因为信号要够强才能被相机拍到。

我踩过的坑: 桥式 PCR 轮数控制不好,簇密度过高会导致簇间信号重叠,碱基错误率飙升。之前有个项目多跑了两个循环,结果 Q30 直接从 92% 掉到 85%。

边合成边测序

簇准备好后,加入带有四种可逆终止子的 dNTP。每个循环只加一个碱基,然后拍照记录荧光,再洗掉终止基团,进入下一个循环。这个“合成-拍照-去阻断”的循环次数就是你的读长,比如 150 或 300 个循环。

为什么会用到可逆终止子?因为如果一次能加多个碱基,相机根本分辨不出谁是谁。可逆终止子就像每个碱基都带了“刹车”,合成酶只能加一个就停,等我们拍完照再放开刹车。

嗯,说到这里,我把整个流程画成了一张图,方便你理解数据从哪来到哪去。

Illumina 测序数据产生流程 文库制备 桥式PCR扩增 簇生成 边合成边测序 光学成像 碱基识别 (BCL) 生成 FASTQ 产量统计与QC 关键说明: • 每个簇对应一个文库片段,同一簇内所有拷贝保证读取一致。 • 碱基识别:相机捕获每个簇在四个通道的荧光强度,再通过算法确定最可能的碱基。 • BCL 文件是原始二进制,存储所有簇的所有循环的荧光信号;bcl2fastq 负责转换。

碱基识别:从 BCL 到 FASTQ

相机拍完回来的是什么呢?一组荧光图像。每个簇在每个循环会有 4 张图(对应 A、C、G、T 的波长),然后软件根据荧光强度分布判断该簇这个位置到底是哪个碱基。这就是碱基识别(Base Calling),结果写入 .bcl 二进制文件。

我遇到过新人直接拿 .bcl 做分析,以为它是 FASTQ。记住了:bcl 是原始信号,要转成 FASTQ 才能用。转换工具就是 Illumina 官方的 bcl2fastq,现在叫 bcl-convert。命令很简单:

bcl2fastq --runfolder-dir /path/to/run \
          --output-dir /path/to/fastq \
          --sample-sheet SampleSheet.csv \
          --no-lane-splitting

这里 --no-lane-splitting 是我个人习惯,我喜欢每条 lane 合并成一个 FASTQ,后面用样本索引区分。不过有些流程需要按 tile 拆分,那就要去掉这个参数。

Phred 质量分数

碱基识别不光给碱基,还给一个“靠谱程度”——Phred 质量分数 Q。公式很简单:

Q = -10 × log₁₀(P),P 是碱基识别错误的概率。

所以 Q30 对应错误率 0.1%,Q20 对应 1%。如果你的数据 Q30 低于 80%,我会建议你重新测——我以前有个 WGS 项目 Q30 只有 72%,结果 SNP 假阳性率高了整整一倍。

注意: 不同 Illumina 仪器对 Q 的编码方式不同。老机器(GAIIx)用 ASCII 64 偏移,HiSeq/MiSeq 用 64 偏移(直到某个版本),Newer 机器(NovaSeq 6000 以上)默认用 33 偏移。你用 fastq-dump 或者 seqtk 查看头几行,看看 + 行后面的字符范围就能判断。搞错了会影响后续质控。

产量与质量控制

一台 Illumina 跑一板能产出多少数据?取决于三个因素:簇密度、读长、Flow Cell 的有效 lane 数和 tile 数。

参数含义典型值
簇密度 (K/mm²)每 mm² 能承载的簇数800 - 1200 (NovaSeq 1.5)
通过过滤 (PF) 比例满足质量要求的簇占比> 80%
读长每端碱基数150 bp (PE) 或 300 bp (PE)
有效 lane 数Flow Cell 上的 lane 数4 (HiSeq), 8 (NovaSeq S4)
总产量全部有效碱基数NovaSeq S4 PE150 ~ 3000 Gb

举个例子:NovaSeq 6000 用 S4 Flow Cell,簇密度 1000 K/mm²,PF 85%,读长 PE150,有效输出大约 3000 Gb。但实际上很少有跑满的,我见过最好的也就是 95% 的 PF。如果你的 PF 低于 70%,就需要排查:是不是文库有接头二聚体?或者桥式 PCR 过度了?

经验之谈: 看产量不要只看原始总碱基数,要看“Q30 以上的有效碱基”。我手上有个批次,原始产量高达 320 Gb,但 Q30 只有 68%,真正能用的不到 200 Gb。建议在每个项目开始时就用 fastqc 检查,把低质量循环直接切除掉。

如何预估你的项目够不够用?

我自己的速算公式:目标覆盖度 × 基因组大小 = 需要的数据量。比如人类 WGS 要做 30×,基因组 3.2 Gb,那就是 96 Gb。加上数据利用率(通常 80% 左右能比对上的),实际所需总产量 = 96 / 0.8 = 120 Gb。如果你跑的是 NovaSeq S2 PE150,理论产量 500 Gb,那只要跑 1/4 的 lane 就够。但千万别跑太少——我踩过坑,为了省钱只跑了一个 tile,结果 SNPs 位点覆盖率严重不均匀。