Author: bugman
Date: Thu Jan 22 17:07:58 2015
New Revision: 27274
URL: http://svn.gna.org/viewcvs/relax?rev=27274&view=rev
Log:
Fix for the Needleman-Wunsch sequence alignment algorithm.
The start of the sequences are no longer truncated when starting gaps are
encountered.
Modified:
trunk/lib/sequence_alignment/needleman_wunsch.py
Modified: trunk/lib/sequence_alignment/needleman_wunsch.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/sequence_alignment/needleman_wunsch.py?rev=27274&r1=27273&r2=27274&view=diff
==============================================================================
--- trunk/lib/sequence_alignment/needleman_wunsch.py (original)
+++ trunk/lib/sequence_alignment/needleman_wunsch.py Thu Jan 22 17:07:58 2015
@@ -26,7 +26,7 @@
from numpy import float32, int16, zeros
# relax module imports.
-from lib.errors import RelaxError
+from lib.errors import RelaxError, RelaxFault
# Default scores.
@@ -84,28 +84,32 @@
alignment1 = ""
alignment2 = ""
while 1:
- # Termination.
- if i < 0 or j < 0:
- break
+ # Top.
+ if j < 0 or traceback_matrix[i, j] == TRACEBACK_TOP:
+ alignment1 += sequence1[i]
+ alignment2 += '-'
+ i -= 1
+
+ # Left.
+ elif i < 0 or traceback_matrix[i, j] == TRACEBACK_LEFT:
+ alignment1 += '-'
+ alignment2 += sequence2[j]
+ j -= 1
# Diagonal.
- if traceback_matrix[i, j] == TRACEBACK_DIAG:
+ elif traceback_matrix[i, j] == TRACEBACK_DIAG:
alignment1 += sequence1[i]
alignment2 += sequence2[j]
i -= 1
j -= 1
- # Top.
- elif traceback_matrix[i, j] == TRACEBACK_TOP:
- alignment1 += sequence1[i]
- alignment2 += '-'
- i -= 1
-
- # Left.
- elif traceback_matrix[i, j] == TRACEBACK_LEFT:
- alignment1 += '-'
- alignment2 += sequence2[j]
- j -= 1
+ # Unknown behaviour.
+ else:
+ raise RelaxFault
+
+ # Termination.
+ if i < 0 and j < 0:
+ break
# Reverse the alignments.
align1 = alignment1[::-1]
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits