返回Skills库

UniProt数据库

MIT
📊 数据知识
K-Dense-AIAPIPython数据库蛋白质

直接REST API访问UniProt。蛋白质搜索、FASTA检索、ID映射、Swiss-Prot/TrEMBL。对于使用多个数据库的Python工作流,推荐使用bioservices(统一接口到40+服务)。将此用于直接HTTP/REST工作或UniProt特定控制。

UniProt数据库

概述

UniProt是世界领先的综合性蛋白质序列和功能信息资源。通过名称、基因或登录号搜索蛋白质,以FASTA格式检索序列,在数据库之间执行ID映射,通过REST API访问Swiss-Prot/TrEMBL注释进行蛋白质分析。

何时使用此技能

应在以下情况使用此技能:

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

核心功能

1. 搜索蛋白质

使用自然语言查询或结构化搜索语法搜索UniProt。

常见搜索模式:

# 按蛋白质名称搜索
query = "insulin AND organism_name:\"Homo sapiens\""

# 按基因名称搜索
query = "gene:BRCA1 AND reviewed:true"

# 按登录号搜索
query = "accession:P12345"

# 按序列长度搜索
query = "length:[100 TO 500]"

# 按分类学搜索
query = "taxonomy_id:9606"  # 人类蛋白质

# 按GO术语搜索
query = "go:0005515"  # 蛋白质结合

使用API搜索端点:https://rest.uniprot.org/uniprotkb/search?query={query}&format={format}

支持的格式: JSON, TSV, Excel, XML, FASTA, RDF, TXT

2. 检索单个蛋白质条目

通过登录号检索特定的蛋白质条目。

登录号格式:

  • 经典:P12345, Q1AAA9, O15530(6个字符:字母+5个字母数字)
  • 扩展:A0A022YWF9(较新条目的10个字符)

检索端点: https://rest.uniprot.org/uniprotkb/{accession}.{format}

示例:https://rest.uniprot.org/uniprotkb/P12345.fasta

3. 批量检索和ID映射

在不同数据库系统之间映射蛋白质标识符并高效检索多个条目。

ID映射工作流程:

  1. 提交映射作业至:https://rest.uniprot.org/idmapping/run
  2. 检查作业状态:https://rest.uniprot.org/idmapping/status/{jobId}
  3. 检索结果:https://rest.uniprot.org/idmapping/results/{jobId}

支持映射的数据库:

  • UniProtKB AC/ID
  • 基因名称
  • Ensembl, RefSeq, EMBL
  • PDB, AlphaFoldDB
  • KEGG, GO术语
  • 以及更多(见/references/id_mapping_databases.md

限制:

  • 每个作业最多100,000个ID
  • 结果存储7天

4. 流式处理大型结果集

对于超出分页限制的大型查询,使用流端点:

https://rest.uniprot.org/uniprotkb/stream?query={query}&format={format}

流端点返回所有结果而不分页,适合下载完整数据集。

5. 自定义检索字段

指定要检索的确切字段以实现高效数据传输。

常见字段:

  • accession - UniProt登录号
  • id - 条目名称
  • gene_names - 基因名称
  • organism_name - 生物体
  • protein_name - 蛋白质名称
  • sequence - 氨基酸序列
  • length - 序列长度
  • go_* - 基因本体论注释
  • cc_* - 注释字段(功能、相互作用等)
  • ft_* - 特征注释(结构域、位点等)

示例: https://rest.uniprot.org/uniprotkb/search?query=insulin&fields=accession,gene_names,organism_name,length,sequence&format=tsv

完整字段列表见/references/api_fields.md

Python实现

对于编程访问,使用提供的辅助脚本scripts/uniprot_client.py,实现:

  • search_proteins(query, format) - 使用任何查询搜索UniProt
  • get_protein(accession, format) - 检索单个蛋白质条目
  • map_ids(ids, from_db, to_db) - 在标识符类型之间映射
  • batch_retrieve(accessions, format) - 检索多个条目
  • stream_results(query, format) - 流式处理大型结果集

替代Python包:

  • Unipressed:现代、类型化的UniProt REST API Python客户端
  • bioservices:全面的生物信息学网络服务客户端

查询语法示例

布尔运算符:

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*

详细语法文档见/references/query_syntax.md

最佳实践

  1. 尽可能使用已审核条目:使用reviewed:true过滤Swiss-Prot(人工 curated)条目
  2. 明确指定格式:选择最合适的格式(序列使用FASTA,表格数据使用TSV,程序解析使用JSON)
  3. 使用字段选择:仅请求您需要的字段以减少带宽和处理时间
  4. 处理分页:对于大型结果集,实现适当的分页或使用流端点
  5. 缓存结果:在本地存储频繁访问的数据以最小化API调用
  6. 速率限制:尊重API资源;为大型批处理操作实现延迟
  7. 检查数据质量:TrEMBL条目是计算预测;Swiss-Prot条目是人工审核

资源

scripts/

uniprot_client.py - 带有辅助函数的Python客户端,用于常见的UniProt操作,包括搜索、检索、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/(用于高级图形查询)

兼容工具

Claude CodeOpenClawHermes Agent

数据来源:claude-scientific-skillsMIT 许可) | 查看上游来源

上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18

本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明