2014-01-22 260 views
1

我需要将DNA序列翻译成其相应的氨基酸序列。我编写了整个程序,但是我在输出生成方式方面遇到困难。Python嵌入变量输出

总之,我有这样的代码:

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

您正在将它们一起印刷。这很明显,为什么输出是如此... – gravetii

+0

看起来像你把不适合的东西混合成一个数据结构。请发布您的整个程序,以便我们能够更好地帮助您。 – Michael

回答

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)