Author: bugman Date: Wed Jan 21 11:39:24 2015 New Revision: 27253 URL: http://svn.gna.org/viewcvs/relax?rev=27253&view=rev Log: Created a unit test for checking the Needleman-Wunsch sequence alignment algorithm.
This uses the DNA data from the example in the Wikipedia article at https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm. The test shows that the implementation of the lib.sequence_alignment.needleman_wunsch.needleman_wunsch_align() function is correct. Added: trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_needleman_wunsch.py Added: trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_needleman_wunsch.py URL: http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_needleman_wunsch.py?rev=27253&view=auto ============================================================================== --- trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_needleman_wunsch.py (added) +++ trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_needleman_wunsch.py Wed Jan 21 11:39:24 2015 @@ -0,0 +1,58 @@ +############################################################################### +# # +# Copyright (C) 2015 Edward d'Auvergne # +# # +# This file is part of the program relax (http://www.nmr-relax.com). # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <http://www.gnu.org/licenses/>. # +# # +############################################################################### + +# Python module imports. +from unittest import TestCase + +# relax module imports. +from lib.sequence_alignment.needleman_wunsch import needleman_wunsch_align + + +class Test_needleman_wunsch(TestCase): + """Unit tests for the lib.sequence_alignment.needleman_wunsch relax module.""" + + def test_needleman_wunsch_align_DNA(self): + """Test the Needleman-Wunsch sequence alignment for two DNA sequences.""" + + # The sequences. + seq1 = 'GCATGCU' + seq2 = 'GATTACA' + print(seq1) + print(seq2) + + # Perform the alignment. + align1, align2, gaps = needleman_wunsch_align(seq1, seq2) + print(align1) + print(align2) + print(gaps) + + # Check the alignment. + self.assertEqual(align1, 'GCA-TGCU') + self.assertEqual(align2, 'G-ATTACA') + + # The gap matrix. + real_gaps = [ + [0, 0, 0, 1, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 0, 0, 0] + ] + for i in range(2): + for j in range(8): + self.assertEqual(gaps[i, j], real_gaps[i][j]) _______________________________________________ relax (http://www.nmr-relax.com) This is the relax-commits mailing list relax-commits@gna.org 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