gpt4 book ai didi

python - 使用列表、字典和循环匹配密码子

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:30 24 4
gpt4 key购买 nike

这是我迄今为止遇到的更困难的问题之一,所以请原谅我没有提供实质性的尝试。

我想要一个以以下格式打印匹配密码子的程序:

AAA : TTT
GGG : CCC
TTT : AAA
CCC : GGG
.
.
.

这是我所做的:

pairs = {'A':'T','C':'G','T':'A','G':'C'}
codonsA = ['AAG', 'TAC', 'CGG', 'GAT', 'TTG', 'GTG', 'CAT', 'GGC', 'ATT', 'TCT']
codonsB = ['TAA', 'CTA', 'AAC', 'TTC', 'AGA', 'CAC', 'CCG', 'ATG', 'GCC', 'GTA']
for A in codonsA:
print A + ' :',
for B in codonsB:
print B,
print

#OUTPUT:

AAG : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
TAC : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
CGG : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
GAT : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
TTG : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
GTG : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
CAT : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
GGC : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
ATT : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA
TCT : TAA CTA AAC TTC AGA CAC CCG ATG GCC GTA

我现在需要做的是从冒号右侧的每一行中去掉 B 的 9 个密码子,只留下右侧与左侧 A 的密码子相匹配的一个密码子。我该怎么做?

最佳答案

您甚至不需要那个 codonsB 列表。密码子以 1:1 的比例映射到其反密码子补体。

def anticodon(codon):
"""returns the anticodon complement for a given codon"""
return ''.join(pairs[c] for c in codon)

anticodon('AAG')
Out[5]: 'TTC'

如果需要进行检查,您可以自由检查 codonsA 中的每个元素在 codonsB 中是否有反密码子。

all(anticodon(c) in codonsB for c in codonsA)
Out[6]: True

我认为您最初正在寻找的输出:

for codon in codonsA:
print '{} : {}'.format(codon,anticodon(codon))

AAG : TTC
TAC : ATG
CGG : GCC
GAT : CTA
TTG : AAC
GTG : CAC
CAT : GTA
GGC : CCG
ATT : TAA
TCT : AGA

关于python - 使用列表、字典和循环匹配密码子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com