name: 基因数据库 description: “通过E-utilities/Datasets API查询NCBI基因。通过符号/ID搜索,检索基因信息(RefSeqs、GO、位置、表型),批量查询,用于基因注释和功能分析。”
基因数据库
概述
NCBI基因是一个综合数据库,整合了来自不同物种的基因信息。它提供命名法、参考序列(RefSeqs)、染色体图谱、生物通路、遗传变异、表型以及全球基因组资源的交叉引用。
何时使用此技能
此技能应在处理基因数据时使用,包括通过基因符号或ID搜索、检索基因序列和元数据、分析基因功能和通路,或执行批量基因查询。
快速入门
NCBI提供两种主要的基因数据访问API:
- E-utilities(传统):功能齐全的API,适用于所有Entrez数据库,支持灵活查询
- NCBI Datasets API(较新):针对基因数据检索优化,工作流简化
选择E-utilities用于复杂查询和跨数据库搜索。选择Datasets API用于直接获取包含元数据和序列的基因数据。
常见工作流
通过符号或名称搜索基因
跨生物体搜索基因符号或名称:
- 使用
scripts/query_gene.py脚本与E-utilities ESearch - 指定基因符号和生物体(例如,“BRCA1 in human”)
- 脚本返回匹配的基因ID
示例查询模式:
- 基因符号:
insulin[gene name] AND human[organism] - 基因与疾病:
dystrophin[gene name] AND muscular dystrophy[disease] - 染色体位置:
human[organism] AND 17q21[chromosome]
通过ID检索基因信息
为已知基因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键时为10请求/秒)
此工作流适用于:
- 验证基因列表
- 检索基因面板的元数据
- 交叉引用基因标识符
- 构建基因注释表
通过生物上下文搜索
查找与特定生物功能或表型相关的基因:
- 使用E-utilities与基因本体(GO)术语或表型关键词
- 通过通路名称或疾病关联查询
- 按生物体、染色体或其他属性过滤
示例搜索:
- 通过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。
最佳实践
- 始终指定生物体当通过基因符号搜索时,以避免歧义
- 使用基因ID当可用时,用于精确查找
- 批量请求当处理多个基因时,以最小化API调用
- 本地缓存结果以减少冗余查询
- 在脚本中包含API键以获得更高的速率限制
- 优雅处理错误使用重试逻辑处理暂时性故障
- 在批量处理前验证基因符号以捕获拼写错误
资源
此技能包括:
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- 常见基因查询和使用案例的示例