这将会很长,但我不知道如何有效解释这一点。Python:从字典中追加到列表
所以,我有2个文件,我在正在读,第一个具有characters.The第二文件的列表是3个字符的列表,然后它的匹配标识符字符(由制表符分隔)。
在第二文件I制成的字典的3个字符作为项目与所述一个字符作为对应的按键。 我需要做的是从第一个列表中每次取3个字符并将其与字典进行比较。如果有匹配,我需要采取相应的键并将其附加到我将打印出的新列表中。如果匹配是'*'字符,我需要停止不继续比较列表和字典。
我在与比较,然后通过附加功能使得新名单的麻烦。
这是第一个输入文件的一部分:
Seq0
ATGGAAGCGAGGATGtGa
下面是部分第二:
AUU I
AUC I
AUA I
CUU L
GUU V
UGA *
这是到目前为止我的代码:
input = open("input.fasta", "r")
codons = open("codons.txt", "r")
counts = 1
amino_acids = {}
for lines in codons:
lines = lines.strip()
codon, acid = lines.split("\t")
amino_acids[codon] = acid
counts += 1
count = 1
for line in input:
if count%2 == 0:
line = line.upper()
line = line.strip()
line = line.replace(" ", "")
line = line.replace("T", "U")
import re
if not re.match("^[AUCG]*$", line):
print "Error!"
if re.match("^[AUCG]*$", line):
mrna = len(line)/3
first = 0
last = 3
while mrna != 0:
codon = line[first:last]
first += 3
last += 3
mrna -= 1
list = []
if codon == amino_acids[codon]:
list.append(acid)
if acid == "*":
mrna = 0
for acid in list:
print acid
所以我想我的输出看起来像这样:
M L I V *
但我还没有接近这一点。 请帮忙!
对于其中一个,你似乎不会增加“计数”。你有没有得到任何输出? – kufudo 2013-04-05 02:14:06