生物数据批量获取:NCBI Datasets 的安装与使用
一、引言:为何选择 NCBI Datasets?
在生物信息学研究中,高效获取 NCBI 数据库(如 GenBank、RefSeq、BioSample)的数据是关键环节。NCBI Datasets 作为官方推出的命令行工具,提供一站式数据检索、下载与处理能力,支持基因、蛋白、基因组等多类型数据的批量操作,兼容多种格式转换,尤其适合大规模数据处理场景。本文将结合科研实操需求,详细介绍其安装及核心功能,助你快速构建标准化数据获取流程。
二、安装
1. 创建并激活独立环境
conda create -n ncbi_ds_env
conda activate ncbi_ds_env
2. 安装官方 conda 包(自动包含 datasets 和 dataformat)
conda install -c conda-forge ncbi-datasets-cli
3. 验证安装
datasets version
dataformat --help
三、基因下载
3.1 获取基因元数据
使用基因 ID 检索(精准匹配)
场景:已知基因 ID(如人类 TP53 基因 ID=7157),快速获取详细元数据。
# 单基因检索
datasets summary gene gene-id 7157
# 批量检索(ID列表每行一个,--inputfile指定文件)
datasets summary gene --inputfile gene_ids.txt
使用基因符号检索(模糊匹配 + 物种限定)
场景:通过基因符号(如 “BRCA1”)检索,并限定物种为人类。
datasets summary gene symbol BRCA1 --taxon human
参数解析:
--taxon:避免同名基因干扰(如小鼠也有 BRCA1 基因),支持物种名或 Taxon ID(人类 = 9606)
使用 RefSeq 登录号检索(定位特定转录本 / 蛋白)
场景:获取特定转录本(如 NM_020107.5)或蛋白(如 NP_001334352.2)的元数据。
datasets summary gene accession NM_020107.5 NP_001334352.2
按物种批量检索(获取类群基因集合)
场景:获取所有人类基因或特定分类群的基因列表。
# 人类基因全集
datasets summary gene taxon human
# 细菌基因(Taxon ID=2)
datasets summary gene taxon 2
3.2 基因数据包下载:序列与元数据一站式获取
基础下载(含序列和元数据)
场景:下载基因的 FASTA 序列及配套元数据,用于本地分析。
# 通过基因ID下载(人类BRCA1基因ID=672)
datasets download gene gene-id 672 -o brca1_data
# 通过符号下载(限定人类)
datasets download gene symbol BRCA1 --taxon human
自定义数据内容(按需包含 / 排除文件)
# 仅下载基因序列和元数据(排除转录本/蛋白)
datasets download gene gene-id 672 --include gene
# 仅获取元数据(无序列文件)
datasets download gene gene-id 672 --include none
3.3 直系同源数据下载(跨物种比较)
场景:获取基因在特定类群中的直系同源序列(如哺乳动物中的 ACE2 基因)。
# 哺乳动物直系同源集(基因ID=59272为人类ACE2)
datasets download gene gene-id 59272 --ortholog mammals
# 完整直系同源集(所有可用物种)
datasets download gene symbol CFTR --ortholog all
四、基因组下载
4.1 获取基因组元数据
使用分类名称检索
场景:获取特定物种或类群的所有基因组元数据(如人类、小鼠或鲨鱼)。
# 人类所有基因组(JSON格式)
datasets summary genome taxon human
# 含空格的物种名需用引号包裹(如小家鼠)
datasets summary genome taxon 'mus musculus'
# 鲨鱼基因组元数据(筛选RefSeq注释源)
datasets summary genome taxon 'sharks' --assembly-source refseq --as-json-lines | \
dataformat tsv genome --fields accession,organism-name,annotinfo-release-date
使用 BioProject/Assembly accession 检索
场景:获取特定项目或组装的基因组元数据(如 Sanger 25 基因组计划、人类参考基因组 GRCh38)。
# BioProject项目PRJEB33226的基因组元数据
datasets summary genome accession PRJEB33226
# 人类参考基因组GRCh38的元数据(JSON格式)
datasets summary genome accession GCF_000001405.40
通过组装属性过滤,可快速缩小检索范围,获取符合特定条件的基因组数据
按参考状态与注释状态过滤
# 人类参考基因组(仅含参考序列)
datasets summary genome taxon human --reference
# 带注释的人类基因组(排除未注释数据)
datasets summary genome taxon human --annotated
按组装级别与发布时间过滤
# 完整基因组(无间隙染色体)
datasets summary genome taxon human --assembly-level complete
# 2020年后发布的基因组
datasets summary genome taxon human --released-after 01/01/2020
按提交者或项目过滤
# T2T Consortium提交的人类基因组
datasets summary genome taxon human --search 'T2T Consortium'
4.2 下载基因组数据包
使用分类名称下载(物种级检索)
场景:获取特定物种或类群的所有基因组数据(如人类、大肠杆菌)。
# 人类全基因组数据包(默认含序列和元数据)
datasets download genome taxon human --filename human_genomes.zip
# 小家鼠(Mus musculus)基因组(含空格物种名需用引号)
datasets download genome taxon 'mus musculus' --output-dir mouse_genomes
使用 Assembly accession 下载(精准定位单个组装)
场景:下载已知 Assembly accession 的基因组(如人类参考基因组 GRCh38)。
datasets download genome accession GCF_000001405.40 \
--filename GRCh38_dataset.zip \ # 自定义压缩包名称
--include genome,protein # 包含基因组和蛋白序列
使用 BioProject accession 下载(项目级批量获取)
场景:获取同一生物项目下的所有基因组(如 Sanger 25 基因组计划)。
datasets download genome accession PRJEB33226 \
--filename sanger_25_genomes.zip \
--assembly-level complete # 仅下载完整基因组
数据内容定制:按需包含组件
通过--include参数灵活选择数据包内容(默认包含genome和元数据)。
常见数据类型参数
参数值含义genome基因组核苷酸序列(FASTA)protein蛋白质序列(FASTA)rna转录本序列(FASTA)cdsCDS 序列(FASTA)none仅元数据(无序列文件)示例命令
# 人类参考基因组:基因组+转录本+CDS+蛋白
datasets download genome taxon human --reference \
--include genome,rna,cds,protein \
--output-dir human_refseq
# 仅下载元数据(用于快速筛选)
datasets download genome accession GCF_000001405.40 \
--include none \
--filename GRCh38_metadata.zip
精准筛选:按组装属性过滤数据
通过过滤参数缩小检索范围,避免下载冗余数据。
参考状态与注释状态
# 仅参考基因组(排除候选参考和其他类型)
datasets download genome taxon human --reference
# 仅带注释的基因组(排除未注释组装)
datasets download genome taxon bacteria --annotated
组装级别与发布时间
# 完整基因组(无间隙,适用于高质量分析)
datasets download genome taxon human --assembly-level complete
# 2022年后发布的基因组(获取最新数据)
datasets download genome taxon primates --released-after 01/01/2022
提交者或项目过滤
# T2T Consortium提交的人类基因组(如端粒到端粒组装)
datasets download genome taxon human --search 'T2T Consortium'
4.3 下载大型基因组数据包
脱水模式(Dehydrated Mode)
适用场景:下载超 15GB 或 1000 + 基因组的大规模数据集。
# 第一步:下载索引文件(仅含元数据,约几MB)
datasets download genome taxon 2[Bacteria] \
--dehydrated \
--filename bacteria_refseq.zip
# 第二步:解压索引文件
unzip bacteria_refseq.zip -d bacteria_dataset
# 第三步:按需补全数据(如补全基因组序列)
datasets rehydrate \
--directory bacteria_dataset/ \
--include genome,protein \ # 可多次补全不同数据类型
五、获取分类元数据
5.1 使用学名检索(Scientific Name)
场景:获取特定物种的分类报告(如褐家鼠 Rattus norvegicus)。
datasets summary taxonomy taxon "rattus norvegicus"
5.2 使用分类 ID 检索(Taxon ID)
场景:通过已知分类 ID(如人类 = 9606)获取详细名称报告或子分类数据。
# 获取名称报告(含 synonyms、common name 等)
datasets summary taxonomy taxon 9606 --report names
# 下载包含所有子项的分类数据包(如哺乳动物纲=40674的所有子类)
datasets download taxonomy taxon 40674 --children --output-dir mammalia_taxonomy
5.3 通用名检索(Common Name)
场景:通过通用名(如 “human”)检索分类数据(需结合物种上下文)。
datasets summary taxonomy taxon "human" --report names
六、检索病毒基因组序列和注释
datasets还可以用来检索和下载病毒相关的数据