生物数据批量获取:NCBI Datasets 的安装与使用

生物数据批量获取:NCBI Datasets 的安装与使用

生物数据批量获取: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还可以用来检索和下载病毒相关的数据

相关推荐