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

如何用Python/Biopython生成指定肽链最多3个AA替换的独特突变体

肽突变序列生成Python实现

以下代码为纯Python实现,无需安装额外依赖,可直接运行,也可快速对接Biopython的序列处理工具:

基础参数说明

  • 原始肽骨架:CKASGFTFS(长度9个氨基酸)
  • 允许替换的氨基酸池:20种标准氨基酸 A,R,N,D,E,G,C,Q,H,I,L,K,M,F,P,S,T,W,Y,V
  • 突变规则:仅替换1/2/3个位点,其余位点保持原序列,最终输出去重后的突变序列列表

完整可运行代码

import itertools

# 定义基础参数
original_seq = "CKASGFTFS"
aa_pool = ["A","R","N","D","E","G","C","Q","H","I","L","K","M","F","P","S","T","W","Y","V"]
max_mut = 3  # 最多替换3个位点

# 用set存储自动去重
unique_mutants = set()

# 遍历突变数目:1个、2个、3个位点
for mut_count in range(1, max_mut+1):
    # 选出所有可能的mut_count个不同的突变位点组合
    for positions in itertools.combinations(range(len(original_seq)), mut_count):
        # 每个突变位点对应的可选氨基酸(排除和原位点相同的氨基酸,避免无效突变)
        possible_aas = [ [aa for aa in aa_pool if aa != original_seq[pos]] for pos in positions ]
        # 遍历所有氨基酸组合的笛卡尔积
        for aa_sub in itertools.product(*possible_aas):
            # 把字符串转成列表方便修改
            seq_list = list(original_seq)
            for idx, pos in enumerate(positions):
                seq_list[pos] = aa_sub[idx]
            # 转成字符串加入去重集合
            unique_mutants.add("".join(seq_list))

# 转成列表格式输出
mutant_list = list(unique_mutants)

# 测试输出:打印前10条序列和总数量
print(f"总突变序列数:{len(mutant_list)}")
print("前10条序列示例:", mutant_list[:10])

补充说明

  • 代码运行后总生成约59万条有效去重序列,普通消费级电脑可在3秒内完成计算
  • 若需要使用Biopython处理生成的序列,仅需在生成序列后调用Bio.Seq.Seq()方法包裹字符串即可,核心生成逻辑无需修改
  • 若允许保留和原氨基酸相同的替换(即包含无效突变),直接把possible_aas的过滤条件删除即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:36:04