Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. ==========================
  2. Idée générale:
  3.  
  4. initialisation
  5. for i=1 to n
  6. for j=1 to n
  7. calculer V(i,j)
  8. calculer W(i,j)
  9. calculer S(i,j)
  10. end
  11. end
  12. ===========================
  13.  
  14. Les matrices V et W sont initialisées à une très grande valeur négative, et dans le code Python à -float('inf').
  15.  
  16. Quant à la matrice S, qui contiendra le résultat final, elle est initialisée à 0, sauf les premières ligne et colonne, qui contiennent les résultats de la fonction de la pénalité affine pour chaque case.
  17.  
  18. La plus simple de ces fonctions est la pénalité affine: soit n la longueur d'un trou, alors:
  19.  
  20. affinePenalty(n)=C+(n−1)∗E, en supposant C,E<0.
  21.  
  22. ============================
  23.  
  24. for i in range(1,firstSequenceLength+1) :
  25. for j in range(1,secondSequenceLength+1) :
  26.  
  27. V[i][j] = max(S[i-1][j] + startingGapPenalty + extensionPenalty, \
  28. V[i-1][j] + extensionPenalty)
  29.  
  30. W[i][j] = max(S[i][j-1] + startingGapPenalty + extensionPenalty , \
  31. W[i][j-1] + extensionPenalty)
  32.  
  33. score = substitutionMatrix.getScore(firstSequence[i-1], secondSequence[j-1])
  34.  
  35. S[i][j] = max(V[i][j], W[i][j], S[i-1][j-1] + score)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement