Python嵌入变量输出

时间:2014-01-22 14:11:05

标签: python bioinformatics

我需要将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 

所以,我的问题是,我该如何解决这个问题?

1 个答案:

答案 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)