2014-01-19 45 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]」。 –

相關問題