Author: bugman
Date: Thu Jan 29 13:33:32 2015
New Revision: 27348
URL: http://svn.gna.org/viewcvs/relax?rev=27348&view=rev
Log:
Renamed the Test_align_protein.test_align_multiple_from_pairwise unit test.
This is now the Test_msa.test_central_star unit test of the
_lib._sequence_alignment.test_msa unit
test module (it was originally in the
_lib._sequence_alignment.test_align_protein unit test module).
This is in preparation for converting the
lib.sequence_alignment.align_protein.align_multiple_from_pairwise() function
into the
lib.sequence_alignment.msa.central_star() function.
Added:
trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_msa.py
- copied, changed from r27346,
trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py
Modified:
trunk/test_suite/unit_tests/_lib/_sequence_alignment/__init__.py
trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py
Modified: trunk/test_suite/unit_tests/_lib/_sequence_alignment/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_lib/_sequence_alignment/__init__.py?rev=27348&r1=27347&r2=27348&view=diff
==============================================================================
--- trunk/test_suite/unit_tests/_lib/_sequence_alignment/__init__.py
(original)
+++ trunk/test_suite/unit_tests/_lib/_sequence_alignment/__init__.py Thu Jan
29 13:33:32 2015
@@ -21,5 +21,6 @@
__all__ = [
- 'test___init__'
+ 'test___init__',
+ 'test_msa'
]
Modified:
trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py?rev=27348&r1=27347&r2=27348&view=diff
==============================================================================
--- trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py
(original)
+++ trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py
Thu Jan 29 13:33:32 2015
@@ -29,80 +29,6 @@
class Test_align_protein(TestCase):
"""Unit tests for the lib.sequence_alignment.align_protein relax module."""
-
- def test_align_multiple_from_pairwise(self):
- """Test the multiple protein sequence, fusing pairwise alignments via
lib.sequence_alignment.align_protein.align_multiple_from_pairwise().
-
- This uses the sequences:
-
- - 'TEEQVDADGGT',
- - 'ADQLTEEQVDADGNGTIDFPEFLTMMARKM',
- - 'LTEEQMINEVDAGNGTIDFPEFLTMMAR'.
-
- The result should be::
-
- Pairwise protein alignment.
- Substitution matrix: BLOSUM62
- Gap opening penalty: 5.0
- Gap extend penalty: 1.0
-
- Input sequence 1: TEEQVDADGGT
- Input sequence 2: ADQLTEEQVDADGNGTIDFPEFLTMMARKM
-
- Aligned sequence 1: ----TEEQVDADG-GT--------------
- Aligned sequence 2: ADQLTEEQVDADGNGTIDFPEFLTMMARKM
- ********* **
-
-
- Pairwise protein alignment.
- Substitution matrix: BLOSUM62
- Gap opening penalty: 5.0
- Gap extend penalty: 1.0
-
- Input sequence 1: TEEQVDADGGT
- Input sequence 2: LTEEQMINEVDAGNGTIDFPEFLTMMAR
-
- Aligned sequence 1: -TEEQ----VDADGGT------------
- Aligned sequence 2: LTEEQMINEVDAGNGTIDFPEFLTMMAR
- **** *** **
-
- ----TEEQ----VDADG-GT--------------
- ADQLTEEQ----VDADGNGTIDFPEFLTMMARKM
- ---LTEEQMINEVDA-GNGTIDFPEFLTMMAR--
- """
-
- # The sequences.
- seq1 = 'TEEQVDADGGT'
- seq2 = 'ADQLTEEQVDADGNGTIDFPEFLTMMARKM'
- seq3 = 'LTEEQMINEVDAGNGTIDFPEFLTMMAR'
- print(seq1)
- print(seq2)
- print(seq3)
-
- # Perform the alignment.
- strings, gaps = align_multiple_from_pairwise(seq1, [seq2, seq3],
matrix='BLOSUM62', gap_open_penalty=5.0, gap_extend_penalty=1.0)
- print(strings[0])
- print(strings[1])
- print(strings[2])
- print(gaps)
-
- # Check the alignment.
- self.assertEqual(strings[0], '----TEEQ----VDADG-GT--------------')
- self.assertEqual(strings[1], 'ADQLTEEQ----VDADGNGTIDFPEFLTMMARKM')
- self.assertEqual(strings[2], '---LTEEQMINEVDA-GNGTIDFPEFLTMMAR--')
-
- # The gap matrix.
- real_gaps = zeros((3, 34), int16)
- for i in (range(4) + range(8, 12) + [17] + range(20, 34)):
- real_gaps[0, i] = 1
- for i in range(8, 12):
- real_gaps[1, i] = 1
- for i in (range(3) + [15, 33, 34]):
- real_gaps[2, i] = 1
- for i in range(3):
- for j in range(34):
- self.assertEqual(gaps[i, j], real_gaps[i][j])
-
def test_align_pairwise_PAM250(self):
"""Test the Needleman-Wunsch sequence alignment for two protein
sequences using the PAM250 substitution matrix.
Copied: trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_msa.py (from
r27346,
trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py)
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_msa.py?p2=trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_msa.py&p1=trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py&r1=27346&r2=27348&rev=27348&view=diff
==============================================================================
--- trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_align_protein.py
(original)
+++ trunk/test_suite/unit_tests/_lib/_sequence_alignment/test_msa.py Thu Jan
29 13:33:32 2015
@@ -24,14 +24,14 @@
from unittest import TestCase
# relax module imports.
-from lib.sequence_alignment.align_protein import align_multiple_from_pairwise,
align_pairwise
+from lib.sequence_alignment.msa import central_star
-class Test_align_protein(TestCase):
- """Unit tests for the lib.sequence_alignment.align_protein relax module."""
+class Test_msa(TestCase):
+ """Unit tests for the lib.sequence_alignment.msa relax module."""
- def test_align_multiple_from_pairwise(self):
- """Test the multiple protein sequence, fusing pairwise alignments via
lib.sequence_alignment.align_protein.align_multiple_from_pairwise().
+ def test_central_star(self):
+ """Test the central star multiple sequence alignment function
lib.sequence_alignment.msa.central_star().
This uses the sequences:
@@ -80,7 +80,7 @@
print(seq3)
# Perform the alignment.
- strings, gaps = align_multiple_from_pairwise(seq1, [seq2, seq3],
matrix='BLOSUM62', gap_open_penalty=5.0, gap_extend_penalty=1.0)
+ strings, gaps = central_star([seq1, seq2, seq3], matrix='BLOSUM62',
gap_open_penalty=5.0, gap_extend_penalty=1.0)
print(strings[0])
print(strings[1])
print(strings[2])
@@ -102,158 +102,3 @@
for i in range(3):
for j in range(34):
self.assertEqual(gaps[i, j], real_gaps[i][j])
-
-
- def test_align_pairwise_PAM250(self):
- """Test the Needleman-Wunsch sequence alignment for two protein
sequences using the PAM250 substitution matrix.
-
- This uses the sequences:
-
- - 'IHAAEEKDWKTAYSYbgFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgkla',
- -
'LHAADEKDFKTAFSYabiggapFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsakl'.
-
- From online servers, the results with a gap open penalty of 5 and gap
extend of 0.5 should be::
-
- https://www.ebi.ac.uk/Tools/psa/emboss_needle/
- EMBOSS_001
IHAAEEKDWKTAYSYb--g---FYEAFEGYdsidspk--aitslkymllckimlntpedvqalvsgkla
- :|||:|||.|||:||. | ||||||||||:|. |
|:|:||||||||:||:.|::|::|:|:||
- EMBOSS_001
LHAADEKDFKTAFSYabiggapFYEAFEGYdsvde-kvsaltalkymllckvmldlpdevnsllsakl-
-
- http://web.expasy.org/cgi-bin/sim/sim.pl?prot
- UserSeq1
IHAAEEKDWKTAYSYBG-----FYEAFEGYDSIDSPK--AITSLKYMLLCKIMLNTPEDVQALVSGKL
- UserSeq2
LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDE-KVSALTALKYMLLCKVMLDLPDEVNSLLSAKL
- *** *** *** ** ********** * * * *
******** ** * * * * **
- """
-
- # The sequences.
- seq1 = 'IHAAEEKDWKTAYSYbgFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgkla'
- seq2 =
'LHAADEKDFKTAFSYabiggapFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsakl'
- print(seq1)
- print(seq2)
-
- # Perform the alignment.
- align1, align2, gaps = align_pairwise(seq1, seq2, matrix='PAM250',
gap_open_penalty=5.0, gap_extend_penalty=0.5)
- print(align1)
- print(align2)
- print(gaps)
-
- # Check the alignment.
- self.assertEqual(align1,
'IHAAEEKDWKTAYSYB--G---FYEAFEGYDSIDSPK--AITSLKYMLLCKIMLNTPEDVQALVSGKLA')
- self.assertEqual(align2,
'LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDE-KVSALTALKYMLLCKVMLDLPDEVNSLLSAKL-')
-
- # The gap matrix.
- real_gaps = zeros((2, 69), int16)
- real_gaps[0, 16] = 1
- real_gaps[0, 17] = 1
- real_gaps[0, 19] = 1
- real_gaps[0, 20] = 1
- real_gaps[0, 21] = 1
- real_gaps[0, 37] = 1
- real_gaps[0, 38] = 1
- real_gaps[1, 35] = 1
- real_gaps[1, 68] = 1
- for i in range(2):
- for j in range(68):
- self.assertEqual(gaps[i, j], real_gaps[i][j])
- def test_align_pairwise(self):
- """Test the Needleman-Wunsch sequence alignment for two protein
sequences.
-
- This uses the sequences:
-
- - 'IHAAEEKDWKTAYSYbgFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgkla',
- -
'LHAADEKDFKTAFSYabiggapFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsakl'.
-
- From online servers, the results with a gap open penalty of 5 and gap
extend of 1 should be::
-
- https://www.ebi.ac.uk/Tools/psa/emboss_needle/
- EMBOSS_001
IHAAEEKDWKTAYSY-B-G---FYEAFEGYDSIDSP-KAITSLKYMLLCKIMLNTPEDVQALVSGKLA
- :|||:|||:|||:|| | | ||||||||||:|..
.|:|:||||||||:||:.|::|.:|:|.||
- EMBOSS_001
LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDEKVSALTALKYMLLCKVMLDLPDEVNSLLSAKL-
-
- http://web.expasy.org/cgi-bin/sim/sim.pl?prot
- UserSeq1
IHAAEEKDWKTAYSY-B-G---FYEAFEGYDSIDSP-KAITSLKYMLLCKIMLNTPEDVQALVSGKL
- UserSeq2
LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDEKVSALTALKYMLLCKVMLDLPDEVNSLLSAKL
- *** *** *** ** * * ********** * * *
******** ** * * * * **
- """
-
- # The sequences.
- seq1 = 'IHAAEEKDWKTAYSYbgFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgkla'
- seq2 =
'LHAADEKDFKTAFSYabiggapFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsakl'
- print(seq1)
- print(seq2)
-
- # Perform the alignment.
- align1, align2, gaps = align_pairwise(seq1, seq2, matrix='BLOSUM62',
gap_open_penalty=5.0, gap_extend_penalty=1.0)
- print(align1)
- print(align2)
- print(gaps)
-
- # Check the alignment.
- self.assertEqual(align1,
'IHAAEEKDWKTAYSY-B-G---FYEAFEGYDSIDSP-KAITSLKYMLLCKIMLNTPEDVQALVSGKLA')
- self.assertEqual(align2,
'LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDEKVSALTALKYMLLCKVMLDLPDEVNSLLSAKL-')
-
- # The gap matrix.
- real_gaps = zeros((2, 68), int16)
- real_gaps[0, 15] = 1
- real_gaps[0, 17] = 1
- real_gaps[0, 19] = 1
- real_gaps[0, 20] = 1
- real_gaps[0, 21] = 1
- real_gaps[0, 36] = 1
- real_gaps[1, 67] = 1
- for i in range(2):
- for j in range(68):
- self.assertEqual(gaps[i, j], real_gaps[i][j])
-
-
- def test_align_pairwise_PAM250(self):
- """Test the Needleman-Wunsch sequence alignment for two protein
sequences using the PAM250 substitution matrix.
-
- This uses the sequences:
-
- - 'IHAAEEKDWKTAYSYbgFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgkla',
- -
'LHAADEKDFKTAFSYabiggapFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsakl'.
-
- From online servers, the results with a gap open penalty of 5 and gap
extend of 0.5 should be::
-
- https://www.ebi.ac.uk/Tools/psa/emboss_needle/
- EMBOSS_001
IHAAEEKDWKTAYSYb--g---FYEAFEGYdsidspk--aitslkymllckimlntpedvqalvsgkla
- :|||:|||.|||:||. | ||||||||||:|. |
|:|:||||||||:||:.|::|::|:|:||
- EMBOSS_001
LHAADEKDFKTAFSYabiggapFYEAFEGYdsvde-kvsaltalkymllckvmldlpdevnsllsakl-
-
- http://web.expasy.org/cgi-bin/sim/sim.pl?prot
- UserSeq1
IHAAEEKDWKTAYSYBG-----FYEAFEGYDSIDSPK--AITSLKYMLLCKIMLNTPEDVQALVSGKL
- UserSeq2
LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDE-KVSALTALKYMLLCKVMLDLPDEVNSLLSAKL
- *** *** *** ** ********** * * * *
******** ** * * * * **
- """
-
- # The sequences.
- seq1 = 'IHAAEEKDWKTAYSYbgFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgkla'
- seq2 =
'LHAADEKDFKTAFSYabiggapFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsakl'
- print(seq1)
- print(seq2)
-
- # Perform the alignment.
- align1, align2, gaps = align_pairwise(seq1, seq2, matrix='PAM250',
gap_open_penalty=5.0, gap_extend_penalty=0.5)
- print(align1)
- print(align2)
- print(gaps)
-
- # Check the alignment.
- self.assertEqual(align1,
'IHAAEEKDWKTAYSYB--G---FYEAFEGYDSIDSPK--AITSLKYMLLCKIMLNTPEDVQALVSGKLA')
- self.assertEqual(align2,
'LHAADEKDFKTAFSYABIGGAPFYEAFEGYDSVDE-KVSALTALKYMLLCKVMLDLPDEVNSLLSAKL-')
-
- # The gap matrix.
- real_gaps = zeros((2, 69), int16)
- real_gaps[0, 16] = 1
- real_gaps[0, 17] = 1
- real_gaps[0, 19] = 1
- real_gaps[0, 20] = 1
- real_gaps[0, 21] = 1
- real_gaps[0, 37] = 1
- real_gaps[0, 38] = 1
- real_gaps[1, 35] = 1
- real_gaps[1, 68] = 1
- for i in range(2):
- for j in range(68):
- self.assertEqual(gaps[i, j], real_gaps[i][j])
_______________________________________________
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