2016-07-27 10 views
0

マルチファイアファイル内の個々の配列の長さを求めたい。以前の配列の長さを加算した後の配列の長さを計算する

>Protein1 
MNT 
>Protein2 
TSMN 
>Protein3 
TTQRT 

とコード利回り:

from Bio import SeqIO 
import sys 
cmdargs = str(sys.argv) 
for seq_record in SeqIO.parse(str(sys.argv[1]), "fasta"): 
output_line = '%s\t%i' % \ 
(seq_record.id, len(seq_record)) 
print(output_line) 

私の入力ファイルが似ている:私は、バイオマニュアルからこのbiopythonコードを持っ

Protein1  3 
Protein2  4 
Protein3  5 

しかし、私は長さを計算したいです以前の配列の長さを加えた後の配列の長さ。それは次のようになります:

Protein1  1-3 
Protein2  4-7 
Protein3  8-12 

私はその出力を得るために変更する必要があるコードの上記の行のどれを知りません。私はこの問題について、助けてくれてありがとう、ありがとう!!!!

答えて

0

それだけで全体の長さを取得することは簡単です:

from Bio import SeqIO 
import sys 
cmdargs = str(sys.argv) 
total_len = 0 
for seq_record in SeqIO.parse(str(sys.argv[1]), "fasta"): 
    total_len += len(seq_record) 
    output_line = '%s\t%i' % (seq_record.id, total_len)) 
    print(output_line) 

範囲を取得するには:

from Bio import SeqIO 
import sys 
cmdargs = str(sys.argv) 
total_len = 0 
for seq_record in SeqIO.parse(str(sys.argv[1]), "fasta"): 
    previous_total_len = total_len 
    total_len += len(seq_record) 
    output_line = '%s\t%i - %i' % (seq_record.id, previous_total_len + 1, total_len) 
    print(output_line) 
+0

エクセレントを...単に「&過去」にタイプミスを言及する。..大変ありがとう余分な ')' ..ありがとう – user2300042

関連する問題