数据来源与格式:从原始测序到数据分析的第一步
做物种丰度分析,第一步不是跑软件,而是搞清楚你手头的数据是什么来头。扩增子测序?宏基因组?FASTA 还是 FASTQ?格式差一个字母,处理流程可能完全不同。
我见过不少新手直接拿 FASTQ 去比对数据库,结果报错卡半天——因为比对软件要求的是 FASTA。说白了,这一步错了后面全白干。
2.1 扩增子测序 vs 宏基因组:选对路子
先搞清楚三兄弟:16S 针对细菌、18S 针对真核微生物、ITS 针对真菌。宏基因组则是整个样本 DNA 全测,不分靶点。
| 类型 | 靶向区域 | 应用场景 | 数据量(参考) | 优点 |
|---|---|---|---|---|
| 16S rRNA(V3-V4 等) | 细菌 16S 基因高变区 | 菌群结构、多样性 | 每样本 10~100K reads | 成本低,数据库完善 |
| 18S rRNA | 真核生物 18S 基因 | 原生动物、微真核 | 约 10~50K reads | 扩展真核覆盖度 |
| ITS(ITS1/ITS2) | 真菌 ITS 区间 | 真菌群落 | 约 10~50K reads | 真菌分辨率高 |
| 宏基因组 | 全基因组 | 功能潜力、新基因、菌株 | 每样本 5~50M reads | 信息量大,但贵 |
我个人习惯,先问用户:你关心物种组成还是功能?关心物种,预算少,上扩增子;想挖新基因或看代谢通路,上宏基因组。记得有一次,项目做肠道菌群,对方非要上宏基因组,我说你几百块样本测宏基因组,光存储就心疼。后来还是老老实实改回 16S。
2.2 文件格式大观:FASTA 与 FASTQ
测序公司给你的数据通常是 FASTQ 格式。里面除了序列还有每个碱基的质量得分,用 ASCII 字符编码。FASTA 则只有序列和注释行。
你想想看,一个 FASTQ 记录长这样:
@M00525:1:000000000-A5LGW:1:1101:15347:1645 1:N:0:8
ATCGATCGATCGATCGATCGATCGATCGATCGATC
+
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
第一行以 @ 开头,后面是 Illumina 的仪器 ID 和坐标。第二行是序列。第三行是 + 分隔符。第四行是质量得分,每个字符对应一个 Phred 值。
| 特性 | FASTA | FASTQ |
|---|---|---|
| 注释行开头 | > | @ |
| 包含质量值 | 无 | 有(第4行) |
| 常见用途 | 数据库比对 | 原始序列+质控 |
| 质量编码 | — | Phred+33 或 +64 |
收到 FASTQ 先确认质量编码体系。老版本 Solexa 用 Phred+64,现在 Illumina 1.8+ 都用 Phred+33。用 ASCII 范围判断:如果质量字符包含 ';'(ASCII 59)以上,可能就是 +64,需要转换。
2.3 实战中常见的坑
我曾经遇到一个项目,样本编号在 FASTQ 文件名和实验设计表里不一致——公司把 B1、B2 重新命名成 S1、S2,但设计表没更新。结果分析出来菌群结构和预想完全相反。自此以后,我每次拿到数据都先跑一个 ls *.fastq.gz > sample_list.txt,跟实验设计逐行比对。
另一个坑:双端测序的 R1 和 R2 文件必须配对。文件名通常是 SampleName_R1_001.fastq.gz 和 SampleName_R2_001.fastq.gz。我建议用脚本检查行数是否一致,否则 merge 时会丢。
质量分布也要看。 用 FastQC 跑一遍,如果末尾平均质量低于 Q20,得考虑裁剪或丢弃。
2.4 数据预处理前的检查清单
- 完整性检查:每个样本是否同时存在 R1/R2(双端)或单端文件;文件是否解压后完整(
gzip -t)。 - 测序质量:跑 FastQC 看每个碱基位置的质量箱线图,关注 GC 含量异常(可能污染)。
- 样本对应关系:FASTQ 文件名中的样本 ID 是否与分析设计表一致。我习惯用
grep提取 @ 行中的 ID。 - 引物/接头残留:用
cutadapt检测并去除。没去除的引物会导致 ASV 聚类时被误认为真实序列。 - Read 数量统计:每个样本的 reads 数差异过大(比如差两个数量级),后续标准化会有麻烦。
数据来源与格式这块,说复杂也不复杂,但稍有疏忽就可能让整个分析跑偏。我建议你每次拿到新数据,先跑一遍检查清单,再动手。宁可多花 10 分钟验证,也别回头重做一个月。