基因数据库查询技能Skill gene-database

NCBI基因数据库查询技能,用于通过E-utilities和Datasets API搜索基因信息,包括基因符号、ID、序列、功能注释、通路分析等,支持批量查询和基因注释,适用于生物信息学研究和功能分析。关键词:基因数据库,NCBI,API查询,基因信息,功能分析,生物信息学。

基因工程 0 次安装 0 次浏览 更新于 3/16/2026

name: 基因数据库 description: “通过E-utilities/Datasets API查询NCBI基因。通过符号/ID搜索,检索基因信息(RefSeqs、GO、位置、表型),批量查询,用于基因注释和功能分析。”

基因数据库

概述

NCBI基因是一个综合数据库,整合了来自不同物种的基因信息。它提供命名法、参考序列(RefSeqs)、染色体图谱、生物通路、遗传变异、表型以及全球基因组资源的交叉引用。

何时使用此技能

此技能应在处理基因数据时使用,包括通过基因符号或ID搜索、检索基因序列和元数据、分析基因功能和通路,或执行批量基因查询。

快速入门

NCBI提供两种主要的基因数据访问API:

  1. E-utilities(传统):功能齐全的API,适用于所有Entrez数据库,支持灵活查询
  2. NCBI Datasets API(较新):针对基因数据检索优化,工作流简化

选择E-utilities用于复杂查询和跨数据库搜索。选择Datasets API用于直接获取包含元数据和序列的基因数据。

常见工作流

通过符号或名称搜索基因

跨生物体搜索基因符号或名称:

  1. 使用scripts/query_gene.py脚本与E-utilities ESearch
  2. 指定基因符号和生物体(例如,“BRCA1 in human”)
  3. 脚本返回匹配的基因ID

示例查询模式:

  • 基因符号:insulin[gene name] AND human[organism]
  • 基因与疾病:dystrophin[gene name] AND muscular dystrophy[disease]
  • 染色体位置:human[organism] AND 17q21[chromosome]

通过ID检索基因信息

为已知基因ID获取详细信息:

  1. 使用scripts/fetch_gene_data.py与Datasets API获取全面数据
  2. 或者,使用scripts/query_gene.py与E-utilities EFetch获取特定格式
  3. 指定所需的输出格式(JSON、XML或文本)

Datasets API返回:

  • 基因命名法和别名
  • 转录本和蛋白质的参考序列(RefSeqs)
  • 染色体位置和映射
  • 基因本体(GO)注释
  • 相关出版物

批量基因查询

同时处理多个基因:

  1. 使用scripts/batch_gene_lookup.py进行高效批量处理
  2. 提供基因符号或ID列表
  3. 为基于符号的查询指定生物体
  4. 脚本自动处理速率限制(使用API键时为10请求/秒)

此工作流适用于:

  • 验证基因列表
  • 检索基因面板的元数据
  • 交叉引用基因标识符
  • 构建基因注释表

通过生物上下文搜索

查找与特定生物功能或表型相关的基因:

  1. 使用E-utilities与基因本体(GO)术语或表型关键词
  2. 通过通路名称或疾病关联查询
  3. 按生物体、染色体或其他属性过滤

示例搜索:

  • 通过GO术语:GO:0006915[biological process](凋亡)
  • 通过表型:diabetes[phenotype] AND mouse[organism]
  • 通过通路:insulin signaling pathway[pathway]

API访问模式

速率限制:

  • 无API键:E-utilities为3请求/秒,Datasets API为5请求/秒
  • 有API键:两个API均为10请求/秒

认证:

https://www.ncbi.nlm.nih.gov/account/注册免费NCBI API键以提高速率限制。

错误处理:

两个API均返回标准HTTP状态码。常见错误包括:

  • 400:查询格式错误或参数无效
  • 429:速率限制超出
  • 404:基因ID未找到

使用指数退避重试失败请求。

脚本使用

query_gene.py

使用E-utilities(ESearch、ESummary、EFetch)查询NCBI基因。

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基因数据可以以多种格式检索:

  • JSON:结构化数据,适合程序化处理
  • XML:详细的分层格式,包含完整元数据
  • GenBank:带有注释的序列数据
  • FASTA:仅序列数据
  • Text:人类可读的摘要

为现代应用选择JSON,为需要详细元数据的遗留系统选择XML,为序列分析工作流选择FASTA。

最佳实践

  1. 始终指定生物体当通过基因符号搜索时,以避免歧义
  2. 使用基因ID当可用时,用于精确查找
  3. 批量请求当处理多个基因时,以最小化API调用
  4. 本地缓存结果以减少冗余查询
  5. 在脚本中包含API键以获得更高的速率限制
  6. 优雅处理错误使用重试逻辑处理暂时性故障
  7. 在批量处理前验证基因符号以捕获拼写错误

资源

此技能包括:

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 - 常见基因查询和使用案例的示例