2、核心数据库资源:NCBI、SRA、MGnify、IMG/M、GTDB 的获取与使用

搞宏基因组,说白了就是跟数据打交道。数据从哪来?怎么拿?怎么选?这要是没搞清楚,后面分析得再花哨也是白搭。我自己刚入行那会,就吃过亏——下载了一大堆数据集,结果发现根本不适用,白白浪费时间和计算资源。

今天我就带你把主流数据库挨个捋一遍。你想想看,知道它们各自擅长什么、怎么用,后面做分析才顺手。

核心思路:宏基因组数据生命周期中,不同数据库扮演不同角色。你不需要记住所有命令,但要理解每个库的定位——NCBI 是家底,SRA 是仓库,MGnify 是分析引擎,IMG/M 是参考集,GTDB 是分类标准。

核心数据库资源:定位与关系 原始测序数据 NCBI SRA 提交/存档 MGnify IMG/M 分析管线上传 NCBI 综合 GTDB 分类修正 使用建议 • 起步阶段:SRA下载 → MGnify预先分析 → 头脑中有底 • 深入阶段:IMG/M做比较基因组 → GTDB校准分类

2.1 NCBI:一切数据的起点

NCBI(美国国家生物技术信息中心),应该是你打交道最多的数据库。它可以算作宏基因组领域的「户籍管理部门」——几乎所有公开的序列数据都会在这里登记。

我个人习惯,做项目前先上 NCBI 的 Nucleotide 数据库搜一圈。看看有没有同类型研究,找找目标基因的参考序列。真别提,有一次我想找某个抗菌肽基因的分布情况,直接在 Nucleotide 里用关键字 + 物种过滤,10 分钟就把参考序列抓齐了。

小技巧:NCBI 的 Entrez Direct(EDirect)工具链很适合批量操作。我一般在服务器上用这个管道来下载基因组数据:

# 搜索沙门氏菌基因组的核苷酸序列
esearch -db nucleotide -query "Salmonella[ORGN] AND complete genome" | \
efetch -format fasta > salmonella_genomes.fasta

除了手动搜索,NCBI 也提供了 FTP 下载。比如你想把 RefSeq 里的所有细菌基因组本地化,直接走 rsync 比 web 快得多:

rsync -avz --delete \
  rsync://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/ \
  /local/refseq/bacteria/

注意:NCBI 下载量大时容易被封 IP。我曾经深夜挂 rsync 拉 10T 数据,结果被限速了。建议加 --bwlimit=5000 限制带宽(单位 KB/s),或者联系 NCBI 申请更高级别访问。

2.2 SRA:原汁原味的测序仓库

SRA(Sequence Read Archive)是 NCBI 里的一个子库,专门存原始未加工的测序读长。说白了,它就是个巨大的硬盘阵列,放着所有人的 raw data。

我最常用的工具是 SRA Toolkit。先装好,然后直接用 prefetch 下载,再用 fasterq-dump 转换成 fastq。

# 下载并提取数据
prefetch SRR12847667
fasterq-dump SRR12847667 --split-files --threads 8

这里说下 --split-files:如果你的数据是双端测序,它会生成两个文件:SRR12847667_1.fastq 和 SRR12847667_2.fastq。单端只出 1 个。

挑数据的时候,我建议你重点看两个字段:

字段 含义 我的参考
Library Layout PAIRED / SINGLE 双端(PAIRED)蕴含的拼接信息更多,我一般优先选
Platform ILLUMINA / PACBIO_SMRT / OXFORD_NANOPORE Illumina 最常见,长读长平台适合组装
Run Statistics (spots / bases) 数据量信息 宏基因组需要 5-10 Gbp 才够看

嗯,这里要注意:SRA 的元数据有时候不准确。有一次我下载了一批深海的宏基因组,标注的是 50x 覆盖度,实际跑完质控才发现有效数据不到 10x。后来我学乖了,下载前先看一眼实验设计(Bioproject 页面)。

2.3 MGnify:分析好的数据拿来就用

MGnify(原 EBI Metagenomics)是个好东西。它不存 raw data,而是把社区提交的宏基因组数据用自己的分析流程跑一遍——组装、基因预测、物种注释、功能注释全帮你搞定了。

你想想看,如果只是想探索一个生态系统里有哪些功能基因,直接用 MGnify 的结果就行,省得自己从头跑流程。我个人很喜欢它的可视化界面,直接点进一个项目,就能看到物种组成饼图、KEGG/COG 功能分布直方图。

如果你想用程序获取数据,它提供了 JSON API:

# 获取 MGnify 中某个研究的分析结果
curl -H "Accept: application/json" \
  "https://www.ebi.ac.uk/metagenomics/api/v1/studies/MGYS00002017/pipelines"

返回的 JSON 里会包含每个样本的 OTU 丰度文件、注释表格等。你可以用 jq 解析。

推荐场景

2.4 IMG/M:高质量的参考基因组集合

IMG/M(Integrated Microbial Genomes & Microbiomes)由 DOE JGI 维护。它最大的特色是:数据太全了。

从 isolate genome(分离培养的基因组)到 metagenome bins(宏基因组组装出来的基因组),再到 single-cell amplified genomes(单细胞扩增基因组),应有尽有。而且 IMG 会把所有基因组做统一的基因预测和功能注释。我写论文时对关键基因做进化树或功能富集分析,都直接用它。

IMG/M 支持两种获取方式:

  1. Web 界面:在 img.jgi.doe.gov 上选择 "Find Genomes",按分类、生态位、数据来源过滤。筛选出的基因组 ID 可以直接导出。
  2. Bulk Download:JGI 提供 portal,批量导出基因组列表,然后用 wget 拉取。
# 示例:使用 JGI 的 Bulk Download API
# 你需要先在 IMG 网站创建 "My Genomes" 列表,然后获取下载 token
wget --post-data="request_type=download&genome_ids=3300000001,3300000002&format=fasta" \
  "https://img.jgi.doe.gov/ext-api/download/genome" -O genomes.fasta

不过我要提醒你:IMG/M 的数据版本更新很快,而且有些基因组是 "incomplete" 状态——完整性低于 50% 的那种,建议筛选时设置 checkm completeness >= 80。

2.5 GTDB:分类学重新洗牌的标准

最后聊 GTDB(Genome Taxonomy Database)。这个东西在近 5 年几乎改写了微生物分类学的规则。

GTDB 的核心思路就一句话:分类应该基于全基因组,而不是 16S。它用 120 个单拷贝标记基因构建了可靠的系统发育树,给几十万个基因组重新划分了门纲目科属种。现在很多人写文章都不再引用旧的 NCBI taxonomy,而是直接用 GTDB 的分类。

我用 GTDB 一般走两个途径:

  • 预下载分类数据:分析前先下载 GTDB 的官方分类信息文件,方便做 OTU/ASV 表的转换。
  • 用 GTDB-Tk 工具:对自选的 MAGs(宏基因组组装基因组)进行自动分类。
# 下载 GTDB Release 214 的分类信息(约 700 MB)
wget https://data.ace.uq.edu.au/public/gtdb/data/releases/release214/214.0/bac120_taxonomy.tsv.gz
wget https://data.ace.uq.edu.au/public/gtdb/data/releases/release214/214.0/ar122_taxonomy.tsv.gz

然后用 Python 或 Shell 脚本做映射:

# 用 awk 快速查询某个 OTU 的分类
awk -F'\t' '$1 == "GCA_000005845.2" {print $2}' bac120_taxonomy.tsv.gz | zcat

避坑指南:我曾经在分类注释上吃过亏——把一个 unclassified 的基因组硬套到 NCBI taxonomy 里,结果组里师兄一看就说不对。后来换 GTDB 重新注释,才发现这个基因组其实是一个新科级别的分支。所以如果你处理的是未培养微生物,务必优先用 GTDB。

2.6 推荐工作流:如何整合这些数据库?

实际项目里,你不太可能只用其中一个数据库。我给你总结一个我常用的流程:

  1. 数据获取:从 SRA 下载 raw reads,用 SRA Toolkit 转成 fastq。
  2. 预分析:直接去 MGnify 搜一下,看同类型研究里常用哪些分析参数和数据库版本。
  3. 分类与功能:对组装出来的 MAGs,先用 GTDB-Tk 确定分类,再用 IMG/M 做功能富集分析,最后和 NCBI 已有的参考基因组做比较。
  4. 数据共享:分析完成后,把关键的基因组上传到 NCBI 的 Assembly 数据库,元数据提交到 BioProject。

你按照这个顺序来,基本不会漏掉核心信息。数据库没有好与不好,只有合不合适。关键是理解每个库的定位,然后按需取用。