SuperAPI AI 工具集

gene-database

数据与分析

查看项目

更新于 10-15 09:01

技能介绍

概述

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 - 常见基因查询与用例示例