如何在python中找到编码相同氨基酸的密码子?

时间:2012-09-22 19:38:21

标签: python dictionary bioinformatics

我有一个包含所有密码子和氨基酸的txt文件,如下所示:

CTT L
ATG M
ACA T
ACG T
ATC I
AAC N
ATA I
AGG R
CCT P
ACT T
AGC S
AAG K
AGA R
CAT H
AAT N
ATT I
CTG L
CTA L
CTC L
CAC H
AAA K
CCG P
AGT S
CCA P
CAA Q
CCC P
TAT Y
GGT G
TGT C
CGA R
CAG Q
TCT S
GAT D
CGG R
TTT F
TGC C
GGG G
TAG *
GGA G
TAA *
GGC G
TAC Y
TTC F
TCG S
TTA L
TTG L
TCC S
ACC T
TCA S
GCA A
GTA V
GCC A
GTC V
GCG A
GTG V
GAG E
GTT V
GCT A
TGA *
GAC D
CGT R
TGG W
GAA E
CGC R

如何检索这些信息并以这样的方式输出,即对于每种氨基酸,显示其相应的密码子。像:

F [TTT, TTC]
L [TTA, TTG, CTT, CTC, CTA, CTG]

...

任何?

2 个答案:

答案 0 :(得分:2)

主要编辑:结果的价值必须设定,而不是列表!

如果这是在名为codons的字符串中,则执行:

result = {}

for c in codons.strip().split('\n'):
    codon, amino = c.split()
    result.setdefault(amino, set()).add(codon)

for r in result:
    print r, result[r]

编辑:如果你已经在字典中有数据,只需跳过“解析”并直接使用dict.iteritems(),它是dict的项目(键值对)的迭代器:

result = {}

for codon, amino in codonsdict.iteritems():
    result.setdefault(amino, set()).add(codon)

for r in result:
    print r, result[r]

使用setdefault(key, default)非常重要,因为您必须在第一次出现密钥时创建空键值默认对。

希望这有帮助!

答案 1 :(得分:-1)

我会给你你要找的字典。但是将来,请告诉我们这是否是家庭作业。

codon_table = {
    'A': ('GCT', 'GCC', 'GCA', 'GCG'),
    'C': ('TGT', 'TGC'),
    'D': ('GAT', 'GAC'),
    'E': ('GAA', 'GAG'),
    'F': ('TTT', 'TTC'),
    'G': ('GGT', 'GGC', 'GGA', 'GGG'),
    'I': ('ATT', 'ATC', 'ATA'),
    'H': ('CAT', 'CAC'),
    'K': ('AAA', 'AAG'),
    'L': ('TTA', 'TTG', 'CTT', 'CTC', 'CTA', 'CTG'),
    'M': ('ATG',),
    'N': ('AAT', 'AAC'),
    'P': ('CCT', 'CCC', 'CCA', 'CCG'),
    'Q': ('CAA', 'CAG'),
    'R': ('CGT', 'CGC', 'CGA', 'CGG', 'AGA', 'AGG'),
    'S': ('TCT', 'TCC', 'TCA', 'TCG', 'AGT', 'AGC'),
    'T': ('ACT', 'ACC', 'ACA', 'ACG'),
    'V': ('GTT', 'GTC', 'GTA', 'GTG'),
    'W': ('TGG',),
    'Y': ('TAT', 'TAC'),
    '*': ('TAA', 'TAG', 'TGA'),
}