一个强大的命令行工具,用于查询 NCBI(美国国家生物技术信息中心)数据库
- Node.js 18.0 或更高版本
- npm 或 yarn
# 克隆仓库
git clone https://github.com/your-repo/ncbi-database-skill.git
cd ncbi-database-skill
# 安装依赖
npm install
# 运行 CLI
node bin/cli.js --help
# 或全局安装
npm link# 搜索人类 BRCA1 基因
node bin/cli.js search gene "BRCA1[gene] AND Homo sapiens[organism]"# 获取基因 ID 672 的摘要
node bin/cli.js summary gene 672# 获取核酸序列(FASTA 格式)
node bin/cli.js fetch nucleotide NM_001385642 -o json
# 获取蛋白质序列
node bin/cli.js fetch protein NP_000001# 查找基因关联的 PubMed 文献
node bin/cli.js link gene 672 pubmed
# 查找蛋白质关联的基因
node bin/cli.js link protein NP_000001 gene# 查看基因数据库信息
node bin/cli.js info gene
# 查看 PubMed 数据库信息
node bin/cli.js info pubmed在 NCBI 数据库中搜索记录。
ncbi search <database> <search_term> [options]示例:
# 搜索基因
ncbi search gene "BRCA1[gene]"
# 搜索 PubMed(标题中包含 cancer)
ncbi search pubmed "cancer[title]" -d 10
# 搜索蛋白质
ncbi search protein "hemoglobin[protein name]"选项:
-n, --retmax <number>- 返回结果数量(默认:20)-d, --delay <ms>- 请求延迟
通过 ID 获取完整记录。
ncbi fetch <database> <ids> [options]示例:
# 获取基因记录
ncbi fetch gene 672
# 获取多条记录
ncbi fetch gene 672,675,676
# 指定输出格式
ncbi fetch protein NP_000001 -o json
ncbi fetch nucleotide NM_001385642 -o xml选项:
-o, --output <format>- 输出格式:json、xml、text
获取记录的快速摘要信息。
ncbi summary <database> <ids> [options]示例:
# 获取基因摘要
ncbi summary gene 672,675
# 获取 PubMed 文章摘要
ncbi summary pubmed 12345678查找关联记录。
ncbi link <source_db> <ids> <target_db> [options]示例:
# 基因 -> PubMed 文献
ncbi link gene 672 pubmed
# 蛋白质 -> 基因
ncbi link protein NP_000001 gene
# 核酸 -> 蛋白质
ncbi link nucleotide NM_001385642 protein查看 NCBI 数据库的元信息。
ncbi info <database>示例:
# 查看可用数据库
ncbi info gene
ncbi info pubmed将常见组装名称转换为 RefSeq accession。
ncbi assembly <assembly_name>示例:
# 人类参考基因组
ncbi assembly GRCh38
ncbi assembly "GRCh38.p14"
# 小鼠基因组
ncbi assembly mm10
ncbi assembly mm39
# 大鼠基因组
ncbi assembly rn7支持的部分组装名称:
| 输入 | 输出 |
|---|---|
| GRCh38 | GCF_000001405.40 |
| GRCh37 | GCF_000001405.14 |
| mm39 | GCF_000001635.10 |
| mm10 | GCF_000001635.4 |
| rn7 | GCF_016699045.2 |
获取基因信息及关联的 PubMed 文献。
ncbi gene-panorama <gene_id_or_symbol>示例:
# 通过基因符号查询
ncbi gene-panorama BRCA1
ncbi gene-panorama TP53
# 通过基因 ID 查询
ncbi gene-panorama 672返回信息:
- 基因基本信息(ID、符号、描述、染色体位置)
- 关联 PubMed 文章数量
- 最新 PubMed 文章列表(最多 10 篇)
查询 ClinVar/dbsnp 中的临床变异信息。
ncbi variant <variant_id>示例:
# 通过 rs 号查询
ncbi variant rs123456
ncbi variant rs699
# 通过 ClinVar ID 查询
ncbi variant SCV000123456返回信息(ClinVar):
- 临床意义(Benign、Pathogenic 等)
- 审查状态
- 相关疾病
- 变异类型
- 相关基因
进行序列相似性搜索。
ncbi blast <sequence> [options]示例:
# 核酸 BLAST
ncbi blast "ATCG..." -d nucleotide
# 蛋白质 BLAST
ncbi blast "MSEQ1" -d protein
# 指定程序
ncbi blast "ATCG..." --program blastn选项:
-d, --database <db>- 搜索数据库(默认:nt)--program <program>- BLAST 程序(默认:megablast)blastn- 核酸 vs 核酸blastp- 蛋白质 vs 蛋白质blastx- 核酸翻译 vs 蛋白质
获取 SRA(高通量测序存档)实验信息。
ncbi sra <sra_id>示例:
# 通过 SRR ID 查询
ncbi sra SRR123456
# 通过项目 ID 查询
ncbi sra PRJNA123456
# 通过实验 ID 查询
ncbi sra SRX123456检查 PubMed 搜索词的拼写。
ncbi espell <term>示例:
# 检查拼写
ncbi espell "brca1"
ncbi espell "crispr cas9"将文献引用匹配到 PubMed 记录。
ncbi ecitmatch <citation>示例:
# 作者+期刊格式
ncbi ecitmatch "Smith J, Nature 2020"
# PMID 格式
ncbi ecitmatch "PMID:12345678"| 选项 | 说明 | 默认值 |
|---|---|---|
-d, --delay <ms> |
请求间隔毫秒数 | 100ms(有 API key 时 10ms) |
-o, --output <format> |
输出格式 | json |
-k, --apikey <key> |
NCBI API Key | - |
-v, --verbose |
详细输出模式 | false |
-h, --help |
显示帮助信息 | - |
常用数据库速查:
| 数据库 | 命令参数值 | 说明 |
|---|---|---|
| 基因 | gene |
基因信息 |
| 蛋白质 | protein |
蛋白质序列 |
| 核酸 | nucleotide, nuccore |
核酸序列 |
| PubMed | pubmed |
文献摘要 |
| Taxonomy | taxonomy |
分类信息 |
| SNP | snp |
单核苷酸多态性 |
| ClinVar | clinvar |
临床变异 |
| Assembly | assembly |
基因组组装 |
| Structure | structure |
3D 结构 |
| SRA | sra |
测序原始数据 |
# 最适合程序化处理
ncbi summary gene 672 -o json# 适合详细数据结构
ncbi fetch nucleotide NM_001385642 -o xml# 适合序列数据
ncbi fetch nucleotide NM_001385642 -o text# 1. 搜索基因
ncbi search gene "BRCA1[gene] AND Homo sapiens[organism]"
# 2. 提取 ID(假设得到 672)
# 3. 查找关联的核酸序列
ncbi link gene 672 nucleotide
# 4. 获取序列
ncbi fetch nucleotide <sequence_id> -o fasta# 1. 获取基因 ID
ncbi search gene "TP53[gene]"
# 2. 链接到 PubMed
ncbi link gene 7157 pubmed
# 3. 获取文献摘要
ncbi summary pubmed <pubmed_ids># 使用 gene-panorama 一步获取基因+文献
ncbi gene-panorama BRCA1# 查询 rs 号
ncbi variant rs699
ncbi variant rs4899059
# 查询 ClinVar ID
ncbi variant RCV000123456- 无 API Key: 3 请求/秒
- 有 API Key: 10 请求/秒
- 访问 https://www.ncbi.nlm.nih.gov/account/
- 注册/登录
- 在设置中启用 API 访问
# 通过命令行参数
ncbi search gene "BRCA1" -k YOUR_API_KEY
# 或设置环境变量
export NCBI_API_KEY=YOUR_API_KEYA: 申请 NCBI API Key 并使用 -k 参数,或在代码中设置。
A: 检查:
- 网络连接
- API Key 是否有效
- 请求参数是否正确
- 是否超过速率限制
A: 使用 retmax 和 retstart 参数进行分页:
# 获取前 100 条
ncbi search pubmed "cancer" -n 100
# 获取第 101-200 条
ncbi search pubmed "cancer" -n 100 --retstart 100A: JSON、XML、Text(FASTA/GenBank)