简体   繁体   English

使用列表,字典和循环匹配密码子

[英]Matching codons using lists, dictionaries and loops

This is one of the more difficult problems I have faced so far so excuse my for not providing a substantial attempt at doing it. 到目前为止,这是我面临的最困难的问题之一,请原谅我没有为此做任何实质性尝试。

I want a program that prints matching codons in the format: 我想要一个以以下格式打印匹配密码子的程序:

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

Here is what I did: 这是我所做的:

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

What I need to do now is to get rid off 9 codons from B from each row on the right of the colon and leave only the one codon on the right that matches the codon from A on the left. 我现在需要做的是从结肠右侧的每一行清除B的9个密码子,在右侧仅保留一个与左侧A的密码子匹配的密码子。 How do I do that? 我怎么做?

You don't even need that codonsB list. 您甚至不需要那个codonsB列表。 A codon maps onto its anticodon complement 1:1. 密码子以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'

You're free to check if each element in codonsA has an anticodon in codonsB , if you need to make that check. 你可以自由地检查每个元素codonsA有一个反codonsB ,如果你需要做的是检查。

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

And the output I think you were originally looking for: 我认为您最初正在寻找的输出是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM