示例#1
0
 def test_recode_dense_alignment_to_orig(self):
     """recode_dense_alignment: recode aln to orig returns original aln"""
     # provided with alphabet_id
     self.assertEqual(recode_dense_alignment(self.aln, alphabet_id="orig"),
                      self.aln)
     # provided with alphabet_def
     self.assertEqual(
         recode_dense_alignment(self.aln, alphabet_def=self.orig), self.aln)
示例#2
0
 def test_recode_dense_alignment_leaves_original_alignment_intact(self):
     """recode_dense_alignment: leaves input alignment intact"""
     # provided with alphabet_id
     actual = recode_dense_alignment(self.aln, alphabet_id="charge_2")
     self.assertNotEqual(actual, self.aln)
     # provided with alphabet_def
     actual = recode_dense_alignment(self.aln, alphabet_def=self.charge_2)
     self.assertNotEqual(actual, self.aln)
示例#3
0
 def test_recode_dense_alignment_handles_all_ids_and_defs_wo_error(self):
     """recode_dense_alignment: handles pre-defined alphabets w/o error"""
     for alphabet_id, alphabet_def in list(alphabets.items()):
         try:
             recode_dense_alignment(self.aln, alphabet_id=alphabet_id)
         except ValueError:
             raise AssertionError("Failed on id: %s" % alphabet_id)
         try:
             recode_dense_alignment(self.aln, alphabet_def=alphabet_def)
         except ValueError:
             raise AssertionError("Failed on def: %s" % str(alphabet_def))
示例#4
0
    def test_recode_dense_alignment(self):
        """recode_dense_alignment: recode alignment to charge_2 alpha works
        """
        expected_c2 = ArrayAlignment(data={
            "1": "AKKAKAK",
            "2": "AKK-KAK",
            "3": "AAAAAA-"
        })
        expected_h3 = ArrayAlignment(data={
            "1": "PRRPRPR",
            "2": "PRR-RPR",
            "3": "PPPPYY-"
        })
        expected_aa = ArrayAlignment(data={
            "1": "AAAAAAA",
            "2": "AAA-AAA",
            "3": "AAAAAA-"
        })

        # provided with alphabet_id
        actual = recode_dense_alignment(self.aln, alphabet_id="charge_2")
        self.assertEqual(actual, expected_c2)
        # provided with alphabet_def
        actual = recode_dense_alignment(self.aln, alphabet_def=self.charge_2)
        self.assertEqual(actual, expected_c2)

        # different alphabet
        actual = recode_dense_alignment(self.aln, alphabet_id="hydropathy_3")
        self.assertEqual(actual, expected_h3)
        actual = recode_dense_alignment(self.aln,
                                        alphabet_def=self.hydropathy_3)
        self.assertEqual(actual, expected_h3)

        # different alphabet
        actual = recode_dense_alignment(self.aln, alphabet_def=self.all_to_a)
        self.assertEqual(actual, expected_aa)

        # original charactars which aren't remapped are let in original state
        actual = recode_dense_alignment(self.aln, alphabet_def=[("a", "b")])
        self.assertEqual(actual, self.aln)

        # non-alphabetic character mapped same as alphabetic characters
        actual = recode_dense_alignment(self.aln, alphabet_def=[(".", "-")])
        expected = ArrayAlignment(data={
            "1": "CDDFBXZ",
            "2": "CDD.BXZ",
            "3": "AAAASS."
        })
        self.assertEqual(actual, expected)