2014-01-19 44 views
2

如何从fasta文件中提取序列 如果我有例如包含9个序列的fasta文件,每次我从文件中取3个序列,然后计算三个序列之间的距离:从fasta文件提取序列

distance(seq1,seq2,seq3) 

然后我采取其他三个序列

sequences=[] 
with open('example.fasta', 'r') as file: 
    for Seq_record in SeqIO.parse(file, 'fasta'): 
     format_string = "%s" % Seq_record.seq 
     sequence.append (format string) 

从我怎样才能分配所述第一序列至SEQ1和第二序列以SEQ2和第三序列的文件中的3个序列来SEQ3

from example.fasta: 
seq1=the first sequence 
seq2=second sequence 
seq3=the third sequence 

然后我计算distance(seq1,seq2,seq3) 然后,做序列的其余部分一样的东西文件

回答

0

在它看起来像你追加每个序列到一个名为sequences列表。您可以在列表访问每个单独的序列简单地使用在方括号中的数字:

sequences=[] 
with open('example.fasta', 'r') as file: 
    for Seq_record in SeqIO.parse(file, 'fasta'): 
     format_string = "%s" % Seq_record.seq 
     sequences.append(format_string) 

seq1 = sequences[0] 
seq2 = sequences[1] 
seq3 = sequences[2] 
distance(seq1, seq2, seq3) 

或者,你可以跳过创建SEQ1,SEQ2,SEQ3,只是通过列表元素直奔距离:

distance(sequences[0], sequences[1], sequences[2]) 

如果您想一般以三个一组的方式查看文件中的所有序列:

for x in range(0, len(sequences), 3): 
    distance(sequences[x], sequences[x+1], sequences[x+2]) 
+0

确定。谢谢你的第四,五十和六个序列(文件中的其余序列)。怎么做? – user3184809

+0

我编辑了任何长度文件的一般情况下的答案。否则,对第四,第五和第六序列使用“序列[3]”,“序列[4]”和“序列[5]”。 –

相关问题