关于 uniprot-database
uniprot-database 是面向蛋白质分析的 UniProt 数据查询技能,适用于检索蛋白序列、功能注释及跨数据库标识符映射。它涵盖批量获取和大结果流式检索,并支持多种数据格式。
主要功能
- 01按名称、基因或登录号搜索蛋白
- 02获取 FASTA 序列和蛋白注释
- 03跨数据库映射标识符
- 04批量检索与流式获取结果
- 05自定义查询字段和输出格式
适用场景
- 01查找特定生物或基因的蛋白质
- 02下载蛋白序列用于分析
- 03转换 Ensembl、RefSeq 或 PDB 标识符
- 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 映射工作流:
- 向以下地址提交映射任务:
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 术语
- 以及更多(参见
/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)- 使用任意查询搜索 UniProtget_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,了解完整的语法文档。
最佳实践
- 尽可能使用经过审核的条目:使用
reviewed:true筛选 Swiss-Prot(人工整理)条目 - 明确指定格式:选择最合适的格式(序列使用 FASTA,表格数据使用 TSV,程序化解析使用 JSON)
- 选择字段:只请求所需字段,以减少带宽占用和处理时间
- 处理分页:对于大型结果集,请实现适当的分页,或使用流式端点
- 缓存结果:在本地存储经常访问的数据,以尽量减少 API 调用
- 注意速率限制:请合理使用 API 资源;对于大型批量操作,请加入延迟
- 检查数据质量: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)的代码示例