概述
NCBI Gene 是一个整合多物种基因信息的综合数据库,提供命名法、参考序列(RefSeqs)、染色体图谱、生物通路、遗传变异、表型,以及与全球基因组资源的交叉引用。本技能用于在 Claude Code 中访问和查询 NCBI Gene 数据。
何时使用
当涉及以下基因数据处理时使用本技能:按基因符号或 ID 搜索、获取基因序列与元数据、分析基因功能与通路,或执行批量基因查询。
快速开始
NCBI 提供两个主要的基因数据访问 API:
- E-utilities(传统):功能完整的 API,适用于所有 Entrez 数据库,支持灵活查询。
- NCBI Datasets API(较新):针对基因数据检索优化,工作流更简化。
如需复杂查询和跨数据库搜索,请选择 E-utilities;如需在单个请求中直接获取基因数据、元数据和序列,请选择 Datasets API。
常见工作流
按符号或名称搜索基因
使用 scripts/query_gene.py 脚本结合 E-utilities 的 ESearch 进行跨物种基因搜索。指定基因符号和物种(如 "BRCA1 in human"),脚本返回匹配的 Gene ID。
示例查询模式:
- 基因符号:insulin[gene name] AND human[organism]
- 基因与疾病:dystrophin[gene name] AND muscular dystrophy[disease]
- 染色体位置:human[organism] AND 17q21[chromosome]
按 ID 获取基因信息
获取已知 Gene ID 的详细信息:使用 scripts/fetch_gene_data.py 配合 Datasets API 获取综合数据;或使用 scripts/query_gene.py 配合 E-utilities 的 EFetch 获取特定格式。可指定输出格式(JSON、XML 或文本)。
Datasets API 返回内容包括:基因命名法与别名、转录本与蛋白质的参考序列(RefSeqs)、染色体位置与定位、基因本体(GO)注释、相关出版物。
批量基因查询
同时处理多个基因:使用 scripts/batch_gene_lookup.py 进行高效批处理。提供基因符号或 ID 列表,为基于符号的查询指定物种。脚本自动处理速率限制(带 API key 时 10 请求/秒)。
该工作流适用于:验证基因列表、获取基因面板的元数据、交叉引用基因标识符、构建基因注释表。
按生物学背景搜索
查找与特定生物学功能或表型相关的基因:使用 E-utilities 配合基因本体(GO)术语或表型关键词,按通路名称或疾病关联查询,按物种、染色体或其他属性过滤。
示例搜索:
- 按 GO 术语:GO:0006915[biological process](凋亡)
- 按表型:diabetes[phenotype] AND mouse[organism]
- 按通路:insulin signaling pathway[pathway]
API 访问模式
速率限制:
- 无 API key:E-utilities 为 3 请求/秒,Datasets API 为 5 请求/秒
- 带 API key:两个 API 均为 10 请求/秒
身份验证:在 https://www.ncbi.nlm.nih.gov/account/ 注册免费 NCBI API key 以提高速率限制。
错误处理:两个 API 均返回标准 HTTP 状态码。常见错误包括:400(查询格式错误或参数无效)、429(超出速率限制)、404(Gene ID 未找到)。对失败请求使用指数退避重试。
脚本用法
query_gene.py:使用 E-utilities(ESearch、ESummary、EFetch)查询 NCBI Gene。
python scripts/query_gene.py --search "BRCA1" --organism "human"
python scripts/query_gene.py --id 672 --format json
python scripts/query_gene.py --search "insulin[gene] AND diabetes[disease]"
fetch_gene_data.py:使用 NCBI Datasets API 获取综合基因数据。
python scripts/fetch_gene_data.py --gene-id 672
python scripts/fetch_gene_data.py --symbol BRCA1 --taxon human
python scripts/fetch_gene_data.py --symbol TP53 --taxon "Homo sapiens" --output json
batch_gene_lookup.py:高效处理多个基因查询。
python scripts/batch_gene_lookup.py --file gene_list.txt --organism human
python scripts/batch_gene_lookup.py --ids 672,7157,5594 --output results.json
API 参考
详细的 API 文档(包括端点、参数、响应格式和示例)请参阅:
- references/api_reference.md - E-utilities 与 Datasets API 的完整 API 文档
- references/common_workflows.md - 其他示例与用例模式
需要具体 API 端点细节、参数选项或响应结构信息时,请查阅这些参考文件。
数据格式
NCBI Gene 数据可获取为多种格式:
- JSON:结构化数据,适合程序化处理
- XML:带完整元数据的详细层级格式
- GenBank:带注释的序列数据
- FASTA:仅序列数据
- 文本:人类可读摘要
现代应用选择 JSON,需要详细元数据的遗留系统选择 XML,序列分析工作流选择 FASTA。
最佳实践
- 按基因符号搜索时始终指定物种,以避免歧义
- 在可用时使用 Gene ID 进行精确查找
- 处理多个基因时使用批量请求以减少 API 调用
- 在本地缓存结果以减少重复查询
- 在脚本中包含 API key 以提高速率限制
- 优雅地处理错误,对瞬时失败使用重试逻辑
- 在批处理前验证基因符号以捕获拼写错误
资源
本技能包含:
scripts/
- query_gene.py - 使用 E-utilities(ESearch、ESummary、EFetch)查询基因
- fetch_gene_data.py - 使用 NCBI Datasets API 获取基因数据
- batch_gene_lookup.py - 高效处理多个基因查询
references/
- api_reference.md - E-utilities 与 Datasets API 的详细 API 文档
- common_workflows.md - 常见基因查询与用例示例