2014-01-22 90 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)