2016-03-29 37 views
0

を与える私はこのPythonコードを使用して、私はのFastaに変換したいPHYLIP形式で複数のデータセットを(以下に指定)(以下に指定)はinput_sequences)のようになります。反復処理が異なるOPに

8 1500\n 
\n 
sequence1 CTGTCCTTG...\n 
\n 
sequence2 CTGTCGTTG...\n 
\n 
sequence3 CTGCGTATG...\n 
\n 
sequence4 CTATGCCTG...\n 
\n 
sequence5 AGGTGTAAG...\n 
\n 
sequence6 AGGTGTAAG...\n 
\n 
sequence7 AAATTCAAA...\n 
\n 
sequence8 AAGTCCAAA...\n 
\n 

そして、これは私が見えるようにFASTAフォーマットでの私のoutput_sequencesを()たいものです。

>sequence1 \n 
CTGTCCTTGG...\n 
>sequence2 \n 
CTGTCGTTGG...\n 
>sequence3 \n 
CTGCGTATGG...\n 
>sequence4 \n 
CTATGCCTGG...\n 
>sequence5 \n 
AGGTGTAAGG...\n 
>sequence6 \n 
AGGTGTAAGA...\n 
>sequence7 \n 
AAATTCAAAG...\n 
>sequence8 \n 
AAGTCCAAAA...\n 

私は上記のコードを実行すると、私はJ = 1の正しい出力が、次のJさん(2:9)を取得私は、この出力

\n 
>sequence1 *red inverted question mark*CTGTCCTTGG...\n 
>sequence2 *red inverted question mark*CTGTCGTTGG...\n 
>sequence3 *red inverted question mark*CTGCGTATGG...\n 
>sequence4 *red inverted question mark*CTATGCCTGG...\n 
>sequence5 *red inverted question mark*AGGTGTAAGG...\n 
>sequence6 *red inverted question mark*AGGTGTAAGA...\n 
>sequence7 *red inverted question mark*AAATTCAAAG...\n 
>sequence8 *red inverted question mark*AAGTCCAAAA...\n 

を(取得を...を継続シーケンスと反転赤です疑問符は、テキストラングラーに見えないものを表示するときに表示されるものです)。

一般的な質問と、なぜ私が混乱しているのは、なぜコードがj = 1では正常に動作するのか、それ以外の数字ではうまくいかないのでしょうか?そしてこの問題を解決するには?

ありがとうございます!

+0

あなたは、空行が '')(line.strip場合を使用検索したい場合は、またグロブhttps://docs.python.org/2/library/glob .htmlとBioPythonが役に立つかもしれないhttp://stackoverflow.com/questions/31265282/how-to-randomly-extract-fasta-sequences-using-python/31265485#31265485 –

答えて

0

使用strip()とブールフィルタ:

with open('filename') as f: 
    lines = filter(bool, map(lambda x: x.strip(), f.readlines())) 

new_list = [] 

for values in lines: 
    for value in values.split(' '): 
     if value[0].isupper(): 
      new_list.append(value + '\n') 
     else: 
      new_list.append('>' + value + '\n') 
関連する問題