1. 课程导论
大家好,欢迎来到这门课。
我第一次接触生物信息学分析时,面对一堆 .fastq 文件,真有点摸不着头脑。这些文件里存的到底是什么信息?又如何把它们变成高深论文里的那张热图或者柱状图?
嗯,这节课我们就把这两个核心概念讲透。说白了,整个 pipeline 要解决的就是一个核心问题:把原始测序数据转化成一张你我能读懂的丰度表。
1.1 什么是 FASTQ 文件?
FASTQ 是测序仪直接吐出来的数据格式,也是所有下游分析的起点。我习惯把它比作「测序的原始底片」——信息最全,但也最粗糙。
每一个测序片段(也叫 read)在 FASTQ 文件里固定占用 4 行:
@EAS139:136:FC706VJ:2:2104:15343:197393
GTGCTGCGGTGTTATGAATCCGACGCGACTCCTCAAATCCAGTCGGGGGACGTGGCTGCTCGCGG
+
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
这四行的含义:
- 第1行:序列标识符,以 @ 开头,包含仪器编号、坐标、barcode 等元信息。
- 第2行:碱基序列(A/T/C/G/N)。
- 第3行:分隔符,通常只是一个 +。
- 第4行:质量分数,每个字符对应一个碱基的测序置信度。
质量分数是最容易被忽略但又极关键的字段。它采用 ASCII 码编码,值越大,测错的概率越低。
质量值的换算公式:
Q = -10 * log10(P)
其中 P 是该碱基测错的概率
比如 Q30,对应的错误率是千分之一。我一般要求自己项目里的样本,平均 Q30 比例不低于 85%,否则下游的比对和定量会非常痛苦。
1.2 什么是丰度表?
丰度表,也叫 OTU/ASV 丰度表或基因表达矩阵,是 Pipeline 的最终交付物之一。
它的结构非常简单——行是特征(物种、OTU、基因),列是样本,交叉点是计数或丰度值:
| Feature / Sample | Sample_A | Sample_B | Sample_C |
|---|---|---|---|
| OTU_1 | 1250 | 0 | 876 |
| OTU_2 | 342 | 1098 | 23 |
| OTU_3 | 0 | 45 | 677 |
你看,一旦拿到这张表,后面的一切分析——Alpha 多样性、Beta 多样性、差异物种筛选——才有了输入数据。说白了,丰度表就是数据分析的「万能钥匙」。
关于计数单位的坑:我曾经帮同事排查一个结果,发现他直接用原始计数(raw count)做差异分析,结果丰度相差几十倍的物种反而不显著。后来才发现,原始计数必须经过归一化(如 TPM、CPM、RLE 等)才能用来跨样本比较。我建议你从一开始就在 Pipeline 中规划好归一化步骤,不然后面返工真的很麻烦。
1.3 从 FASTQ 到丰度表,到底要做什么?
整个 Pipeline 可以抽象为三个阶段:
- 数据预处理:质量评估(FastQC)、去接头、低质量过滤、去重复。
- 比对与定量:将 clean reads 比对到参考基因组/参考数据库,获得 counts。
- 生成丰度表:聚合 counts、归一化、输出标准矩阵。
你想想看,每个阶段都有特定的工具和参数,哪个环节出了问题,最终丰度表都会「失真」。我见过有人在过滤步骤用了过高的 Q 阈值,结果数据量直接被砍掉一半,后续的统计学检验完全失效。
我的经验之谈:很多新手只关注第二步的工具选择(比如用 BWA 还是 Bowtie2),却忽略了第一步的数据质控。其实,项目初期花 30% 的时间做质量评估和参数调优,往往能节省后面 60% 的 debug 成本。
1.4 你需要关注的核心概念
开始动手之前,先把这几个概念理清楚:
- Read:测序仪一次测出的短片段,通常在 100-300 bp 之间。
- Paired-end / Single-end:双端测序的两个文件(_R1.fastq, _R2.fastq)需要配对处理。
- Barcode / Index:用来标记不同样本的短序列,混样测序时靠它拆分开各样本数据。
- OTU vs ASV:操作分类单元 vs 扩增子序列变体。个人建议,目前 ASV 方法(如 DADA2)已经基本取代 OTU,分辨率和准确性高很多。
好了,这一章我们理清了两个核心概念和 Pipeline 的主干脉络。后面的课程,我会带着你一步步搭建每一步的工具链,以及处理我在实际项目中碰到过的各种「坑」。准备好了吗?