# 第1章 测序技术基础:二代测序原理、FASTQ格式、Phred质量分数 ## 1.1 从DNA到数字信号:我眼中的二代测序 说实话,我刚开始接触测序数据时,对这些原理也是一头雾水。但后来真正动手处理过几批全基因组数据后,才明白理解底层逻辑有多重要。 **二代测序(NGS)** 的核心思想,说白了就是“边合成边测序”。这个想法挺聪明的——在DNA合成过程中,通过检测每个碱基的发光信号,把ATCG读出来。 我记得第一次在实验室看测序仪跑数据,机器屏幕上一排排荧光信号闪过。测序仪每秒拍几十张照片,记录每个cluster的碱基类型。那时候我就想:这么多信号,怎么变成我们能读的序列文件呢? ### NGS的主要工作流程 - **文库制备**:把基因组DNA打碎成几百bp的片段,加上接头(adapter) - **桥式PCR扩增**:在flow cell上扩增出数以百万计的DNA簇 - **边合成边测序**:每加一个碱基就拍一次荧光,循环往复 - **碱基识别**:根据荧光信号推测出碱基类型 - **质量打分**:给每个碱基分配一个质量值 你想想看,Illumina的测序仪每轮能产生几十亿条reads。每条read都对应一个DNA片段的序列,外加一个质量分。这就是FASTQ文件的由来。

个人经验:我刚用NGS数据时,总以为reads越长越好。但其实不同平台各有优势。Illumina的短读长(2×150bp)最成熟,建库成本低;PacBio长读长能跨重复区域,但错误率高。大多数实战项目,我会先用Illumina做主测序,再用长读长做gap filling。两套数据一起用,效果比单用任何一套都稳。

### 一个完整的测序流程 下面这张图展示了我总结的二代测序核心逻辑: 二代测序核心流程概览 二代测序核心流程概览 基因组DNA 打碎成300-500bp片段 文库制备 加接头 + PCR扩增 桥式PCR 在flow cell上形成DNA簇 边合成边测序 荧光标记 + 信号捕获 碱基识别 荧光信号 → ATCG 质量打分 Phred质量分数计算 FASTQ文件 序列 + 质量分,每4行为1条read 关键指标 • 读长:2×150 bp(双端) • 通量:单次数百Gbp 常见平台对比 • Illumina:短读高准确率 • PacBio / ONT:长读高错误率 ## 1.2 FASTQ格式:测序结果的标准方言 我经常跟团队里的人说:**FASTQ是生信人的通用语**。不管你是做RNA-seq还是全基因组测序,数据交付几乎全是FASTQ。 比起FASTA只存序列,FASTQ多了一个质量线——这才是真正的宝藏。 ### FASTQ的四行结构 每条read用4行表示:
@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:ATCACG
CTACGTAGATTCAGCGTTGTCGGAATACTCGGAATACTCG
+
IIIIIIIIIIIIIII:IIII:IIIII8IIII6IIIIIII
- **第一行**:以`@`开头,是read的标识符。包含仪器ID、flow cell位置、lane编号、tile坐标、cluster XY坐标。这部分信息在做质量控制时特别有用——你能通过tile坐标看有没有局部污染。 - **第二行**:测出来的碱基序列,用ATCGN表示。N代表这个碱基没确定下来。 - **第三行**:以`+`开头,一般重复第一行的内容,但很多工具直接写个`+`完事。 - **第四行**:质量分字符串。每个字符对应一个Q值,字符数和第二行的碱基数必须一致。

关键提醒:四行必须完整!少一行或者多一个换行,解析器就会报错。我见过太多新手把FASTQ格式搞乱,然后问“为什么samtools报错”。先检查文件结构,这是排查问题的第一原则。

## 1.3 Phred质量分数:计算每个碱基的可信度 做测序的时候,每个碱基的识别都有不确定性。Phred质量分就是用来量化这个不确定性的。 ### Phred公式 质量分Q的计算公式很简单:
Q = -10 × log₁₀(P_error)
其中P_error是碱基识别错误的概率。举个例子: - Q30:P_error = 0.001,也就是说每1000个碱基里有1个可能出错 - Q20:P_error = 0.01,每100个碱基里有1个可能出错 - Q10:P_error = 0.1,每10个碱基里有1个可能出错 ### 质量分与碱基准确率的关系 下表是我做质量控制时常用的参考: | Phred质量分Q | 错误概率P_error | 碱基准确率 | 常用阈值 | |:---:|:---:|:---:|:---:| | Q10 | 0.10 (1/10) | 90% | 最低可接受 | | Q20 | 0.01 (1/100) | 99% | 一般质控标准 | | Q30 | 0.001 (1/1000) | 99.9% | 高质量标准 | | Q40 | 0.0001 (1/10000) | 99.99% | 极致高精度 | ### ASCII编码映射 质量分在FASTQ文件里用ASCII字符表示。最常见的是**Phred+33**编码方式:
ASCII值 = Q + 33

Q=0 → ASCII 33 → '!'
Q=10 → ASCII 43 → '+'
Q=20 → ASCII 53 → '5'
Q=30 → ASCII 63 → '?'
Q=40 → ASCII 73 → 'I'

常见的坑:我曾经从公共数据库下载一批数据,解压后跑FastQC,发现质量分全乱套了。排查了半天才发现,原来是Phred+33和Phred+64混在一起了。旧版Solexa(Illumina前身)用的是Phred+64编码,现在基本都用Phred+33。如果你看到质量分曲线在Q40以上突然变成问号等诡异形状,八成是编码搞混了。

### 区分Phred+33和Phred+64 判断编码方式的技巧: | 特征 | Phred+33 | Phred+64 | |:---:|:---:|:---:| | ASCII范围 | 33-126 | 64-126 | | 最低字符 | `!` | `@` | | 最高字符 | `~` | `~` | | 常用场景 | 主流Illumina | 旧版Solexa | ### Q值分布怎么看 我拿到一份FASTQ文件后,第一件事就是跑FastQC看Q值分布。重点关注: - **Q30占比**:如果低于80%,说明这批数据质量不太行 - **read尾部质量下降**:这是正常的测序衰减现象,一般后50bp需要考虑切除 - **异常N出现**:如果中间出现连续N,可能是指标问题 ## 1.4 FASTQ文件的命名规范 这块儿很多人不在意,但实际项目中文件命名乱了会很要命。 典型的双端测序FASTQ文件命名:
Sample1_S1_L001_R1_001.fastq.gz
Sample1_S1_L001_R2_001.fastq.gz
各部分含义: - **Sample1**:样本名称 - **S1**:样本编号(由测序仪自动生成) - **L001**:lane编号 - **R1/R2**:Read 1(正向)或Read 2(反向) - **001**:分卷编号

个人习惯:拿到数据后,我第一步会用zcat检查默认的read数量。匹配的R1和R2文件行数必须一样,否则说明数据不完整。顺便看一下第一行的@标识符,确认仪器型号是否与预期一致。这一步能发现很多低级错误。

--- 以上就是测序技术基础的核心内容。从测序原理到FASTQ格式,再到质量分系统,每一步都决定了后续分析的质量。理解透这些,后面处理特征矩阵时才不会出大问题。