2014-12-22 6 views
1

Я использую python для выполнения нескольких выравниваний последовательностей. Для оценки выравнивания я использую взвешенную сумму парных пар (WSP) для трех последовательностей seq1, seq2 и seq3, так как мы знаем, что оценка вычисляется следующим образом : сначала вычислить оценку (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, который продолжается ains много последовательностей. Как я могу вычислить оценку WSP для всех последовательностей в файле fasta.

где sum_distance функция для вычисления расстояния между последовательностями

+0

Что такое ожидаемый результат? 3d-матрица? –

+2

Вы хотите получить все возможные тройки последовательностей и вычислить WSP каждой тройки? – inspectorG4dget

+0

Вы изучали использование [Biopython] (http://www.biopython.org)? Я не проверял, включает ли он WSP или сумму расстояний, но я не удивлюсь, если это произойдет. Он включает в себя всевозможные инструменты для работы и выравнивания последовательностей и ** намного проще, чем кодировать все самостоятельно. – MattDMo

ответ

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) 
+0

этот код дает мне оценку, отличную от реальной оценки, например, у меня есть три последовательности, которые код должен вычислять sum_distance (seq1, seq2), чем sum_distance (seq1, seq3) и sum_distance (seq2, seq3), чем вычислять ** общее расстояние ** sum_distance (seq2, seq3) + sum_distance (seq1, seq3) + sum_distance (seq2, seq3). и как я могу сделать это для файла, содержащего n последовательностей? – user3216969

Смежные вопросы