参考基因组选择与索引构建
做变异检测,第一步往往不是跑软件,而是挑基因组。你可能觉得“用hg38不就完了?”嗯,没那么简单。我亲手栽过这个坑——用错版本,结果一整个批次都重跑,浪费了三天。今天咱们就来聊聊参考基因组怎么选、索引怎么建,把这块地基打牢。
参考版本:hg19 vs hg38 vs T2T
目前主流的人类参考基因组有三个版本:
| 版本 | 发布年份 | 大小 | 特点 |
|---|---|---|---|
| hg19 (GRCh37) | 2009 | ~3.1 Gb | 大量经典数据库(dbSNP 150以前)基于此构建 |
| hg38 (GRCh38) | 2013 | ~3.2 Gb | 修正了hg19的组装错误,包含新参考序列(如ALT contigs) |
| T2T-CHM13 | 2022 | ~3.05 Gb | 完整无gap的端粒到端粒组装,补全了所有着丝粒区域 |
我自己的习惯是:
- 做常规WGS/WES分析,优先hg38。为什么?因为hg19在着丝粒、端粒和某些复杂区段存在系统性拼接错误,hg38修复了这些问题;
- 如果项目需要跟已有的大量hg19数据做联合分析(比如千人基因组计划、ClinVar早期版本),那就只能选hg19,但要做好坐标转换的心理准备;
- T2T目前还比较新,很多工具对它的支持不够成熟。我建议只在做结构变异、着丝粒区域变异或者新参考评估时使用。
版本混用是灾难 我曾经接手过一个项目,测序数据是hg19的bam,但后续分析却用了hg38参考质控。结果30%的变异位点坐标对不上,最后不得不全部重新比对。记住:上游比对了哪个版本,下游就必须用同一个版本。
索引构建:bwa index + samtools faidx
选好参考后,索引构建有两个必做步骤。
1. bwa index — 比对用的FM-index
BWA(Burrows-Wheeler Aligner)需要为参考基因组构建FM-index,才能做快速比对。命令很简单:
bwa index -a bwtsw hg38.fa
参数说明:
-a bwtsw:对于大型基因组(比如人类),必须用bwtsw算法,否则index会出错;对细菌等小基因组用is算法更快。- 输出文件:hg38.fa.amb, .ann, .bwt, .pac, .sa 共5个文件,缺一不可。
时间参考:一台16核服务器,hg38大约需要3-4小时。我建议你把这一步放在每天晚上,第二天醒来就建好了。
2. samtools faidx — FASTA索引
很多工具(比如samtools, bcftools, GATK)需要快速随机读取参考序列的某一段,这就需要samtools faidx生成的.fai和.gzi文件:
samtools faidx hg38.fa
输出:hg38.fa.fai(文本格式的行索引)和hg38.fa.gzi(二进制压缩索引)。
注意:如果你同时使用了bwa index和samtools faidx,两个索引完全独立。不要只建其中一个——我在项目中见过有人只跑了bwa index,结果GATK报错说找不到.fai,折腾半天。
索引构建的常见错误
- 参考文件路径含空格或中文:bwa index会失败,而且报错信息很隐晦。
- 内存不足:bwa index对hg38大约需要15-20GB RAM。如果机器不够,可以加
-t多线程,但内存还是会吃紧。 - 硬链接导致索引损坏:如果你在共享文件系统上做了硬链接,bwa index可能写入时产生文件锁冲突。
我的小习惯 每次下载新的参考基因组后,我都会先运行
samtools faidx和bwa index,然后写一个简单的脚本验证索引完整性:比如用samtools提取chr1:1000-2000,看返回的序列是否合理。花两分钟,能省后面的大麻烦。
SVG:参考选择与索引构建流程
索引文件的存放与复用
索引文件创建后可以反复使用,不需要每次分析都重建。我习惯把参考和索引放在一个专用目录:
/ref/
├── hg38.fa
├── hg38.fa.fai
├── hg38.fa.gzi
├── hg38.fa.amb
├── hg38.fa.ann
├── hg38.fa.bwt
├── hg38.fa.pac
├── hg38.fa.sa
├── hg38.dict (可选,由GATK的CreateSequenceDictionary产生)
└── hg38.fa.alt (如果包含ALT contigs)
注意两点:
- 不要把原始FASTA放在网络挂载的NAS上然后直接建索引,网络延迟会导致bwa index不稳定;
- 如果你需要切换参考版本(比如hg19→hg38),不要试图复用索引,必须重新建。
一句话总结: 选对版本,建好双索引,验证一次,以后随便用。这就是让你的变异检测管道站住脚的第一步。