mcpField
U
uniprot-database

uniprot-database

github.com/jackspace数据与数据库1636 次安装12 周前更新
代码仓库

关于 uniprot-database

uniprot-database 是面向蛋白质分析的 UniProt 数据查询技能,适用于检索蛋白序列、功能注释及跨数据库标识符映射。它涵盖批量获取和大结果流式检索,并支持多种数据格式。

主要功能

  1. 01按名称、基因或登录号搜索蛋白
  2. 02获取 FASTA 序列和蛋白注释
  3. 03跨数据库映射标识符
  4. 04批量检索与流式获取结果
  5. 05自定义查询字段和输出格式

适用场景

  1. 01查找特定生物或基因的蛋白质
  2. 02下载蛋白序列用于分析
  3. 03转换 Ensembl、RefSeq 或 PDB 标识符
  4. 04批量获取 Swiss-Prot 或 TrEMBL 数据

安装

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

$npx skills add https://github.com/jackspace/claudeskillz --skill uniprot-database

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

附带文件SKILL.json

详细介绍

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