2014-01-22 2 views
1

Мне нужно перевести последовательность ДНК в соответствующую аминокислотную последовательность. У меня написана вся программа, но у меня возникают трудности с тем, как производится выпуск.Интеркаляционный переменный выход 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) 
Смежные вопросы