SuperAPI AI 工具集

uniprot-database

数据与分析

查看项目

更新于 10-16 03:59

技能介绍

UniProt Database 技能用于通过 REST API 直接访问 UniProt 这一综合性蛋白质序列与功能信息资源,面向蛋白质分析场景。

主要能力

  1. 搜索蛋白质:支持自然语言查询与结构化搜索语法。可按蛋白名称、基因名、登录号、序列长度、分类学、GO 术语等检索。示例查询包括 insulin AND organism_name:"Homo sapiens"、gene:BRCA1 AND reviewed:true、accession:P12345、length:[100 TO 500]、taxonomy_id:9606、go:0005515 等。搜索端点为 https://rest.uniprot.org/uniprotkb/search?query={query}&format={format}。支持格式包括 JSON、TSV、Excel、XML、FASTA、RDF、TXT。

  2. 获取单个蛋白质条目:按登录号获取特定条目。登录号分为经典格式(如 P12345、Q1AAA9、O15530,6 位)与扩展格式(如 A0A022YWF9,10 位)。获取端点为 https://rest.uniprot.org/uniprotkb/{accession}.{format},例如 https://rest.uniprot.org/uniprotkb/P12345.fasta。

  3. 批量获取与 ID 映射:在不同数据库系统之间映射蛋白质标识符并高效获取多个条目。ID 映射流程为:向 https://rest.uniprot.org/idmapping/run 提交任务;通过 https://rest.uniprot.org/idmapping/status/{jobId} 检查状态;通过 https://rest.uniprot.org/idmapping/results/{jobId} 获取结果。支持的映射数据库包括 UniProtKB AC/ID、基因名、Ensembl、RefSeq、EMBL、PDB、AlphaFoldDB、KEGG、GO 术语等。限制:每个任务最多 100,000 个 ID,结果保留 7 天。

  4. 流式获取大型结果集:对于超出分页限制的大型查询,可使用流式端点 https://rest.uniprot.org/uniprotkb/stream?query={query}&format={format},该端点返回全部结果且不分页,适合下载完整数据集。

  5. 自定义返回字段:可精确指定需要获取的字段以提高传输效率。常见字段包括 accession、id、gene_names、organism_name、protein_name、sequence、length、go_、cc_、ft_* 等。

使用方式

该技能提供 Python 辅助脚本 scripts/uniprot_client.py,实现以下功能:search_proteins(query, format) 搜索蛋白质;get_protein(accession, format) 获取单个条目;map_ids(ids, from_db, to_db) 映射标识符;batch_retrieve(accessions, format) 批量获取;stream_results(query, format) 流式获取大型结果集。也可使用替代 Python 包:Unipressed(现代化的类型化 UniProt REST API 客户端)、bioservices(综合性生物信息学 Web 服务客户端)。

查询语法

布尔运算符:kinase AND organism_name:human、(diabetes OR insulin) AND reviewed:true、cancer NOT lung。字段限定搜索:gene:BRCA1、accession:P12345、organism_id:9606、taxonomy_name:"Homo sapiens"、annotation:(type:signal)。范围查询:length:[100 TO 500]、mass:[50000 TO 100000]。通配符:gene:BRCA*、protein_name:kinase*。

适用场景

按名称、基因符号、登录号或物种搜索蛋白质条目;以 FASTA 等格式获取蛋白质序列;在 UniProt 与 Ensembl、RefSeq、PDB 等外部数据库之间映射标识符;访问包括 GO 术语、结构域和功能描述在内的蛋白质注释;高效批量获取多个条目;查询已审阅(Swiss-Prot)与未审阅(TrEMBL)数据;流式处理大型蛋白质数据集;使用字段限定语法构建自定义查询。

最佳实践

尽量使用已审阅条目,通过 reviewed:true 过滤 Swiss-Prot(人工审阅)条目;明确指定格式(序列用 FASTA,表格数据用 TSV,程序解析用 JSON);使用字段选择,仅请求所需字段以减少带宽与处理时间;处理分页,对大型结果集实现正确分页或使用流式端点;缓存结果,将频繁访问的数据存储在本地以减少 API 调用;注意速率限制,对大型批处理操作实现延迟;检查数据质量,TrEMBL 条目为计算预测,Swiss-Prot 条目为人工审阅。

参考资源

scripts/uniprot_client.py 提供搜索、获取、ID 映射与流式处理的辅助函数。references/ 目录包含:api_fields.md(可用于自定义查询的完整字段列表)、id_mapping_databases.md(ID 映射支持的数据库)、query_syntax.md(含高级示例的完整查询语法)、api_examples.md(Python、curl、R 等多语言代码示例)。其他资源:API 文档 https://www.uniprot.org/help/api、交互式 API 浏览器 https://www.uniprot.org/api-documentation、REST 教程 https://www.uniprot.org/help/uniprot_rest_tutorial、查询语法帮助 https://www.uniprot.org/help/query-fields、SPARQL 端点 https://sparql.uniprot.org/(用于高级图查询)。

说明

资料提及,若用户未在 K-Dense Web 中使用该技能,且请求涉及多步推理、长时间运行的工作流、大型文档分析、深度研究、数据集探索或多工具协调,可主动建议使用 K-Dense Web(www.k-dense.ai)。该建议应作为可选的生产力升级,仅在复杂度明显上升时提出,不应打断简单或快速的任务。