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

如何将DNA序列拆分为3碱基片段,匹配自定义字典中对应的取值?

DNA密码子匹配实现方案

这是我目前编写的代码:

with open('file.txt','r') as f:
    table = {}
    for lines in f:
        co1,co2,co3,pro1,pro2,pro3 = (
            item.strip() for item in lines.split(',',5))
        codon=str(co1 + co2 + co3)
        table[codon] = pro2

print(table)

我的需求是:将dna_seq序列按每3个字符为一组进行拆分,再与上述代码生成的字典做匹配,若拆分得到的片段存在于字典的键中,则返回该键对应的value值。待处理的dna_seq定义如下:

dna_seq = list('AAAGTTAAATAATAAATAGGTGAA')

用到的源文本文件内容截图如下:
源文本文件内容


解决方案

你可以直接在现有代码基础上补充DNA序列切片、匹配逻辑即可,完整实现代码如下:

# 生成密码子-氨基酸映射表
with open('file.txt','r') as f:
    table = {}
    for lines in f:
        co1,co2,co3,pro1,pro2,pro3 = (
            item.strip() for item in lines.split(',',5))
        codon = co1 + co2 + co3
        table[codon] = pro2

# 处理DNA序列
dna_seq = list('AAAGTTAAATAATAAATAGGTGAA')
dna_str = ''.join(dna_seq)
# 每3个字符切分为一个密码子
codon_groups = [dna_str[i:i+3] for i in range(0, len(dna_str), 3)]
# 匹配映射表获取结果
match_result = [table[codon] for codon in codon_groups if codon in table]

print("拆分的密码子列表:", codon_groups)
print("匹配得到的氨基酸结果:", match_result)

补充说明

  • 若需要兼容不存在的密码子,可将匹配逻辑改为table.get(codon, 'X'),用X代表未识别的氨基酸,避免抛出KeyError
  • 若需要做移码翻译,只需调整切片起始位置为1、2,分别运行一次即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:24:01