You need to enable JavaScript to run this app. 如何使用Python从蛋白质序列获取含漏切位点的胰蛋白酶酶切肽段
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从蛋白质序列获取含漏切位点的胰蛋白酶酶切肽段

实现方案

核心逻辑

你已经获取到所有K/R的位点坐标,只需要补全序列首尾的边界,即可通过控制位点间隔实现不同次数的漏切,同时按规则提取肽段:

  1. 在位点列表开头补-1,对应第一个肽段从序列起始位置开始
  2. 在位点列表末尾补序列总长度,对应最后一个肽段到序列末尾结束
  3. 漏切n次等价于间隔n个位点取切割区间,即可包含中间的n个K/R位点

完整代码示例

# 替换为你的实际蛋白序列
seq1 = "MAKELoveRProteinKTestR"

# 1. 获取所有K/R的切割位点(你原有逻辑的简化写法)
cut_sites = [pos for pos, char in enumerate(seq1) if char in ("K", "R")]
# 补全首尾边界
cut_sites = [-1] + cut_sites + [len(seq1)]

# 2. 提取指定漏切次数的肽段
max_miss_cleave = 2  # 可自行调整允许的最大漏切次数,0为完全酶切
all_peptides = []

for miss_num in range(max_miss_cleave + 1):
    # 遍历所有可行的起始切割位点
    for i in range(len(cut_sites) - miss_num - 1):
        # 从当前K/R的下一位开始
        start_idx = cut_sites[i] + 1
        # 到漏切n个后的K/R位点结束,因Python切片左闭右开,故+1以包含末尾的K/R
        end_idx = cut_sites[i + miss_num + 1] + 1
        # 提取肽段
        peptide = seq1[start_idx:end_idx]
        all_peptides.append(peptide)

# 输出所有肽段
print(all_peptides)

# 3. 适配你已有的分子量计算函数,假设你的分子量函数为calc_mw(肽段序列)
for pep in all_peptides:
    # mw = calc_mw(pep)
    # 按需处理分子量、同位素分布即可
    print(f"肽段:{pep}")

注意说明

  • 允许的漏切次数直接修改max_miss_cleave参数即可,比如只需要完全酶切就设为0,最多2次漏切设为2
  • 如果需要去重肽段,可在肽段收集完成后加一行all_peptides = list(set(all_peptides)),注意set会打乱顺序,需要保留顺序可以用遍历去重的方式
  • Python字符串/列表切片为左闭右开规则,所以末尾索引需要+1才能包含目标位置的K/R

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 05:06:04