
关于
直接 REST API 访问 UniProt。蛋白质搜索、FASTA 检索、ID 映射、Swiss-Prot/TrEMBL。适用于直接 HTTP/REST 工作或 UniProt 特定控制。
name: uniprot-database description: 直接通过 REST API 访问 UniProt。蛋白质搜索、FASTA 检索、ID 映射、Swiss-Prot/TrEMBL。对于使用多个数据库的 Python 工作流,建议使用 bioservices(40+ 服务的统一接口)。本技能适用于直接 HTTP/REST 操作或需要 UniProt 特定控制的场景。 license: Unknown metadata: skill-author: K-Dense Inc. risk: safe source: community
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)
范围查询:
len
