我需要将DNA序列翻译成其相应的氨基酸序列。我编写了整个程序,但是我对输出的生成方式有困难。
总之,我有这段代码:
for x in f1:
x = x.strip()
if x.count("seq"):
f2.write((x)+("_1_+\n"))
f2.write((x)+("_2_+\n"))
f2.write((x)+("_3_+\n"))
f2.write((x)+("_1_-\n"))
f2.write((x)+("_2_-\n"))
f2.write((x)+("_3_-\n"))
else:
f2.write((translate1(x))+("\n"))
f2.write((translate2(x))+("\n"))
f2.write((translate3(x))+("\n"))
f2.write((translate1neg(x))+("\n"))
f2.write((translate2neg(x))+("\n"))
f2.write((translate3neg(x))+("\n"))
给出了这个输出:
>seq1_1_+
>seq1_2_+
>seq1_3_+
>seq1_1_-
>seq1_2_-
>seq1_3_-
iyyslrs-las-smrlssiv-m
fiirydrs-ladrcgshrssk
llfativas-lidaalidrl
frrsmraasis-lativannkm
lddr-ephrsas-lrs-riin
-tidesridqlasydrse--m
但我需要的是这样的事情:
>seq1_1_+
iyyslrs-las-smrlssiv-m
>seq1_2_+
fiirydrs-ladrcgshrssk
>seq1_3_+
llfativas-lidaalidrl
>seq1_1_-
frrsmraasis-lativannkm
>seq1_2_-
lddr-ephrsas-lrs-riin
>seq1_3_-
-tidesridqlasydrse--m
所以,我的问题是,我该如何解决这个问题?
答案 0 :(得分:1)
# First store data.
sequence = []
translated = []
for x in f1:
x = x.strip()
if x.count("sequence"):
sequence.append((x)+("_1_+\n"))
sequence.append((x)+("_2_+\n"))
sequence.append((x)+("_3_+\n"))
sequence.append((x)+("_1_-\n"))
sequence.append((x)+("_2_-\n"))
sequence.append((x)+("_3_-\n"))
else:
translated.append((translate1(x))+("\n"))
translated.append((translate2(x))+("\n"))
translated.append((translate3(x))+("\n"))
translated.append((translate1neg(x))+("\n"))
translated.append((translate2neg(x))+("\n"))
translated.append((translate3neg(x))+("\n"))
# and then write it to file.
for s, t in zip(sequence, translated):
f2.write(s)
f2.write(t)