mcpField
U
uniprot-database

uniprot-database

github.com/leonchaox数据与数据库99471 次安装15 周前更新
代码仓库

关于 uniprot-database

uniprot-database 是通过 UniProt REST API 查询蛋白质序列与功能注释的技能,面向生物信息学分析。它涵盖条目检索、批量获取、跨数据库 ID 映射及大型结果流式读取。

主要功能

  1. 01按名称、基因或编号搜索
  2. 02获取序列与功能注释
  3. 03批量检索蛋白质条目
  4. 04跨数据库映射 ID
  5. 05流式读取大型结果集

适用场景

  1. 01查找特定生物或基因的蛋白质
  2. 02下载 FASTA 序列
  3. 03关联 UniProt 与外部数据库编号
  4. 04获取大型蛋白质查询结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leonchaox/qinyan-academic-skills --skill uniprot-database

安装后在 Claude Code 中输入/uniprot-database确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api_examples.md
api_fields.md
id_mapping_databases.md
query_syntax.md
scripts/
uniprot_client.py

详细介绍

UniProt 数据库

概述

UniProt 是全球领先的综合性蛋白质序列和功能信息资源。可按名称、基因或登录号搜索蛋白质,以 FASTA 格式检索序列,跨数据库进行 ID 映射,并通过 REST API 获取 Swiss-Prot/TrEMBL 注释以进行蛋白质分析。

适用场景

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

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

核心功能

1. 搜索蛋白质

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

常见搜索模式:

# Search by protein name
query = "insulin AND organism_name:\"Homo sapiens\""

# Search by gene name
query = "gene:BRCA1 AND reviewed:true"

# Search by accession
query = "accession:P12345"

# Search by sequence length
query = "length:[100 TO 500]"

# Search by taxonomy
query = "taxonomy_id:9606"  # Human proteins

# Search by GO term
query = "go:0005515"  # Protein binding

使用 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:功能全面的生物信息学 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*

请参阅 /references/query_syntax.md,了解完整的语法文档。

最佳实践

  1. 尽可能使用经过审核的条目:使用 reviewed:true 筛选 Swiss-Prot(人工整理)条目
  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)的代码示例

其他资源

评论

支持 Markdown