You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python获取给定肽序列列表对应的蛋白质名称及ID

肽序列映射到Uniprot蛋白质名称的实现方法

在线工具快速查询(适合少量序列)

  • Uniprot BLAST:把肽序列粘贴到BLAST搜索框,选择Swiss-Prot数据库(已审核的高质量条目),调整参数:开启短序列比对模式,降低E值阈值(比如设为1000)。搜索结果里会列出匹配的蛋白质,包含全称、Uniprot ID等信息。
  • Uniprot Peptide Search:这个工具专门针对肽序列设计,直接输入序列,可选限定物种(如果知道样本来源),提交后会返回对应的蛋白质条目,还能显示肽在蛋白质中的具体位置。

批量处理的编程方法

如果有大量肽序列,用API或脚本效率更高:

Python + Uniprot REST API

直接调用Uniprot的API构造查询,解析返回的JSON数据提取蛋白质信息,示例代码:

import requests

def get_proteins_from_peptide(peptide):
    api_url = "https://rest.uniprot.org/uniprotkb/search"
    query_params = {
        "query": f"{peptide} AND reviewed:yes",  # 只查已审核条目
        "format": "json",
        "fields": "protein_name,accession,organism_name"  # 指定返回字段
    }
    resp = requests.get(api_url, params=query_params)
    if resp.status_code == 200:
        results = resp.json()["results"]
        return [(res["proteinName"]["fullName"]["value"], res["primaryAccession"], res["organism"]["scientificName"]) for res in results]
    return []

# 批量处理示例
peptides = ["VHLTPEEK", "LVVYPWTQR"]
for pep in peptides:
    matches = get_proteins_from_peptide(pep)
    if matches:
        print(f"肽 {pep} 匹配结果:")
        for name, acc, species in matches:
            print(f"- {name} (ID: {acc}, 物种: {species})")
    else:
        print(f"肽 {pep} 未找到匹配蛋白质")

Biopython 辅助处理

用Biopython的Bio.SwissProt模块可以更便捷地处理批量请求,它会自动处理API请求频率限制,避免被封禁,适合大规模序列查询。

关键注意事项

  • 短肽多匹配问题:短肽可能在多个蛋白质中存在,一定要结合样本的物种信息、实验背景过滤结果,减少冗余。
  • 翻译后修饰:如果肽有磷酸化、甲基化等修饰,搜索时要明确标注修饰位点(比如Y(phos)),否则可能匹配不到正确的蛋白质。
  • 数据库选择:优先用Swiss-Prot(已审核),避免TrEMBL的未审核条目带来的错误匹配。

内容的提问来源于stack exchange,提问作者Mathew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:05:41