评估多序列比对

时间:2014-12-22 20:30:21

标签: python alignment

我正在使用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 是计算序列之间距离的函数

1 个答案:

答案 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)