从fasta文件中提取序列

时间:2014-01-19 18:41:09

标签: python file sequences fasta

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

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)

从文件中的3个序列如何将第一个序列分配给seq1,将第二个序列分配给seq2,将第三个序列分配给seq3

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

然后我计算distance(seq1,seq2,seq3) 然后,对文件

中的其余序列执行相同的操作

1 个答案:

答案 0 :(得分: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])