Exemplo n.º 1
0
    def test_include_gaps(self):
        from multicov.alignment import Alignment, ReferenceMapping
        from multicov.alphabet import rna_alphabet, NumericAlphabet
        from multicov.binary import BinaryAlignment
        align1 = Alignment(['ACA', 'GUA', '-A-'], alphabet=rna_alphabet)
        align2 = Alignment([[2, 3], [0, 4], [1, 3]],
                           alphabet=NumericAlphabet(5, has_gap=False))

        align = Alignment(align1).add(align2)
        align.reference = ReferenceMapping((list(range(1, 4)), list(range(2))))
        align.annotations['seqw'] = [0.5, 1.5, 0.2]

        bin_align = BinaryAlignment.from_alignment(align)
        bin_align.add_gap_positions()

        expected1 = np.asmatrix([[0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
                                 [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0],
                                 [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
                                  0]])
        #                         0  1  2  3  4
        expected2 = np.asmatrix([[0, 0, 1, 0, 0, 0, 0, 0, 1, 0],
                                 [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
                                 [0, 1, 0, 0, 0, 0, 0, 0, 1, 0]])

        self.assertTrue(bin_align.include_gaps)
        self.assertSequenceEqual(bin_align.alphabets,
                                 [(rna_alphabet, 3),
                                  (NumericAlphabet(5, has_gap=False), 2)])
        self.assertTrue(
            np.array_equal(bin_align.data.todense(),
                           np.hstack((expected1, expected2))))
        self.assertIs(bin_align.reference, align.reference)
        self.assertIs(bin_align.annotations, align.annotations)
Exemplo n.º 2
0
 def test_set_default_reference(self):
     from multicov.binary import BinaryAlignment
     from multicov.alignment import ReferenceMapping
     from multicov.alphabet import NumericAlphabet
     bin_align = BinaryAlignment(
         [[0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
          [0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]],
         NumericAlphabet(5))
     self.assertEqual(bin_align.reference, ReferenceMapping(list(range(4))))
Exemplo n.º 3
0
 def test_deep_copy_data(self):
     from multicov.binary import BinaryAlignment
     from multicov.alphabet import NumericAlphabet
     bin_align1 = BinaryAlignment(
         [[0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
          [0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]],
         NumericAlphabet(5))
     bin_align2 = BinaryAlignment(bin_align1)
     self.assertIsNot(bin_align1.data, bin_align2.data)
Exemplo n.º 4
0
 def test_numeric_nonzero_base_len(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(len(NumericAlphabet(11, 17)), 6)
Exemplo n.º 5
0
 def test_numeric_gapless_nonzero_base_size_nogap(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(NumericAlphabet(10, 16, has_gap=True).size(no_gap=True), 5)
Exemplo n.º 6
0
 def test_numeric_base0_len(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(len(NumericAlphabet(8)), 8)
Exemplo n.º 7
0
 def test_numeric_base0_force_nogap(self):
     from multicov.alphabet import NumericAlphabet
     self.assertFalse(NumericAlphabet(8, has_gap=False).has_gap)
Exemplo n.º 8
0
 def test_numeric_base0_default_gap(self):
     from multicov.alphabet import NumericAlphabet
     self.assertTrue(NumericAlphabet(6).has_gap)
Exemplo n.º 9
0
 def test_numeric_sequence_example_base0(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(10)
     self.assertTrue(np.array_equal(alpha.from_int([8, 0, 4, 2]), [8, 0, 4, 2]))
Exemplo n.º 10
0
 def test_numeric_name_base_0(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(7)
     self.assertEqual(alpha.name, 'numeric[0:7]')
Exemplo n.º 11
0
 def test_numeric_nonzero_base_smaller_end(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(len(NumericAlphabet(7, 5).letters()), 0)
Exemplo n.º 12
0
 def test_numeric_base0_nonpositive_end(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(len(NumericAlphabet(0).letters()), 0)
     self.assertEqual(len(NumericAlphabet(-5).letters()), 0)
Exemplo n.º 13
0
 def test_numeric_letters_nogap_nonzero_base_gapful(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(5, 11, has_gap=True)
     self.assertTrue(np.array_equal(alpha.letters(no_gap=True), list(range(6, 11))))
Exemplo n.º 14
0
 def test_numeric_letters_nonzero_base(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(2, 7)
     self.assertTrue(np.array_equal(alpha.letters(), list(range(2, 7))))
Exemplo n.º 15
0
 def test_numeric_letters_nogap_base0_gapless(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(4, has_gap=False)
     self.assertTrue(np.array_equal(alpha.letters(no_gap=True), list(range(4))))
Exemplo n.º 16
0
 def test_numeric_sequence_example_base0(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(7)
     result = alpha.to_int([0, 2, 3])
     self.assertTrue(np.array_equal(result, [0, 2, 3]))
Exemplo n.º 17
0
 def test_numeric_sequence_example_nonzero_base(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(3, 8)
     self.assertTrue(np.array_equal(alpha.to_int([3, 7, 5]), [0, 4, 2]))
Exemplo n.º 18
0
 def test_index_numeric(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(4, 8)
     for i, n in enumerate(alpha.letters()):
         self.assertEqual(alpha[i], n)
Exemplo n.º 19
0
 def test_numeric_sequence_example_nonzero_base(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(5, 10)
     self.assertTrue(np.array_equal(alpha.from_int([3, 0, 2, 4]), [8, 5, 7, 9]))
Exemplo n.º 20
0
 def test_numeric_name_nonzero_base(self):
     from multicov.alphabet import NumericAlphabet
     alpha = NumericAlphabet(3, 7)
     self.assertEqual(alpha.name, 'numeric[3:7]')
Exemplo n.º 21
0
 def test_numeric_nonzero_base_default_nogap(self):
     from multicov.alphabet import NumericAlphabet
     self.assertFalse(NumericAlphabet(3, 6).has_gap)
Exemplo n.º 22
0
 def test_numeric_base0_size(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(NumericAlphabet(8).size(), 8)
Exemplo n.º 23
0
 def test_numeric_nonzero_base_force_gap(self):
     from multicov.alphabet import NumericAlphabet
     self.assertTrue(NumericAlphabet(3, 9, has_gap=True).has_gap)
Exemplo n.º 24
0
 def test_numeric_base0_size_nogap(self):
     from multicov.alphabet import NumericAlphabet
     self.assertEqual(NumericAlphabet(8).size(no_gap=True), 7)