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

如何用Python字典翻译ORF列表为氨基酸序列?代码返回空串求助

解决ORF列表翻译为氨基酸序列的问题

你的代码返回空字符串的核心问题有两个:

  1. 函数接收的是ORF字符串列表,但当前代码直接对整个列表操作,而非遍历列表中的每个ORF字符串。len(long_ORFs)获取的是列表的元素个数,不是单个ORF的长度——如果列表元素数不是3的倍数,就会跳过翻译逻辑,直接返回空。
  2. 未处理单个ORF长度不是3的倍数的情况(比如示例中的'AGAGAAGTCT'长度为10),这类ORF会被直接忽略。

修正后的代码

def translate(long_ORFs):
    aa_dict = {
        'AAA': 'K', 'AAC': 'N', 'AAG': 'K', 'AAT': 'N', 'ACA': 'T', 'ACC': 'T',
        'ACG': 'T', 'ACT': 'T', 'AGA': 'R', 'AGC': 'S', 'AGG': 'R', 'AGT': 'S',
        'ATA': 'I', 'ATC': 'I', 'ATG': 'M', 'ATT': 'I', 'CAA': 'Q', 'CAC': 'H',
        'CAG': 'Q', 'CAT': 'H', 'CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCT': 'P',
        'CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGT': 'R', 'CTA': 'L', 'CTC': 'L',
        'CTG': 'L', 'CTT': 'L', 'GAA': 'E', 'GAC': 'D', 'GAG': 'E', 'GAT': 'D',
        'GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCT': 'A', 'GGA': 'G', 'GGC': 'G',
        'GGG': 'G', 'GGT': 'G', 'GTA': 'V', 'GTC': 'V', 'GTG': 'V', 'GTT': 'V',
        'TAA': '*', 'TAC': 'Y', 'TAG': '*', 'TAT': 'Y', 'TCA': 'S', 'TCC': 'S',
        'TCG': 'S', 'TCT': 'S', 'TGA': '*', 'TGC': 'C', 'TGG': 'W', 'TGT': 'C',
        'TTA': 'L', 'TTC': 'F', 'TTG': 'L', 'TTT': 'F'
    }
    translated_orfs = []
    # 遍历列表中的每个ORF字符串
    for orf in long_ORFs:
        aa_list = []
        # 按3个碱基的步长遍历当前ORF
        for i in range(0, len(orf), 3):
            codon = orf[i:i+3]
            # 仅翻译完整的3碱基密码子,忽略末尾不足3个的部分
            if len(codon) == 3:
                aa_list.append(aa_dict[codon])
        translated_orfs.append(''.join(aa_list))
    return translated_orfs

# 测试调用
long_ORFs = ['ATGAGAGAG', 'AGAGAAGTCT', 'ACACTAGAGAGAGA']
print(translate(long_ORFs))

关键修正说明

  • 遍历ORF列表:新增外层循环逐个处理每个开放阅读框,确保每个ORF都被翻译。
  • 兼容非3倍数长度:判断提取的密码子是否为完整的3个字符,避免因长度不足引发的键错误,同时保留有效翻译结果。
  • 结果结构匹配:返回与输入列表一一对应的氨基酸序列列表,方便后续处理。

测试示例输入会得到结果:['MEE', 'REVS', 'TLERE'],符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:45:16