我正在使用python进行多序列比对。为了评估比对,我使用三个序列seq1,seq2和seq3的加权得分(WSP)的加权和,我们知道得分计算如下: 首先计算得分(seq1,seq2),得分(seq1,seq3)和得分(seq2,seq3)
WSP=score(seq1,seq2)+score(seq1,seq3)+score(seq2,seq3)
python代码:
def wsp():
w=1
dis=sum_distance(seq1,seq2,seq3)
wsp=w*dis
return wsp
现在,我想使用一个包含许多序列的fasta文件。我可以计算一个fasta文件中所有序列的WSP分数。
其中 sum_distance 是计算序列之间距离的函数
答案 0 :(得分:1)
最简单的方法是在文件中的每对序列上运行sum_distance函数:
total_distance = 0
with open('yourfile.fa', 'r') as sequences_list_1:
for key_1, seq_1 in enumerate(sequences_list_1):
with open('yourfile.fa', 'r') as sequences_list_2:
for key_2, seq_2 in enumerate(sequences_list_2):
if key_1 < key_2:
total_distance += sum_distance(seq_1, seq_2)