Example #1
0
 def __test(self, hmm, seq):
     hmm = create_hmm('inputs/' + hmm + '.hmm')
     seq = create_seq('inputs/' + seq + '.seq')
     xseq = ZipSequence.from_sequence(seq, hmm.state_count)
     expect = seq_to_string(seq)
     actual = seq_to_string(xseq.iterate_original_sequence())
     self.assertEqual(expect, actual)
Example #2
0
    def test_from_file(self):
        seq = create_seq('inputs/test2.seq')
        self.assertEqual(20, len(seq))
        self.assertEqual(4, seq.alphabet_size)

        self.assertEqual('0 2 3 1 0 2 0 2 2 1 0 2 3 0 2 1 0 3 2 1',
                         seq_to_string(seq))
Example #3
0
    def test_from_sequence(self):
        hmm = create_hmm("inputs/test0.hmm")
        seq = create_seq("inputs/test0.seq")
        xseq = ZipSequence.from_sequence(seq, hmm.state_count)

        self.assertEqual('0 1 4 4', seq_to_string(xseq))

        self.assertEqual(5, xseq.alphabet_size)
        self.assertEqual(3, xseq.extended_alphabet_size)
        self.assertEqual(2, xseq.original_alphabet_size)
        self.assertEqual(2, xseq.state_count)

        self.assertEqual((3, 3), xseq.get_substitute(4))
        self.assertEqual((2, 2), xseq.get_substitute(3))
        self.assertEqual((0, 1), xseq.get_substitute(2))

        self.assertIsNone(xseq.get_substitute(1))

        self.assertEqual('0 1 2 3 4', seq_to_string(xseq.iterate_alphabet()))

        self.assertEqual('2 3 4',
                         seq_to_string(xseq.iterate_extended_alphabet()))

        self.assertEqual('0 1',
                         seq_to_string(xseq.iterate_original_alphabet()))

        self.assertEqual('0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1',
                         seq_to_string(xseq.iterate_original_sequence()))

        self.assertEqual(
            '2 0 1 ; 3 2 2 ; 4 3 3', ' ; '.join(
                map(lambda (a, (b, c)): ' '.join(map(str, [a, b, c])),
                    xseq.iterate_substitutes())))
Example #4
0
 def __test(self, hmm, seq):
     hmm = create_hmm('inputs/' + hmm + '.hmm')
     seq = create_seq('inputs/' + seq + '.seq')
     xseq = ZipSequence.from_sequence(seq, hmm.state_count)
     expect = seq_to_string(seq)
     actual = seq_to_string(xseq.iterate_original_sequence())
     self.assertEqual(expect, actual)
Example #5
0
    def test_from_file(self):
        seq = create_seq('inputs/test2.seq')
        self.assertEqual(20, len(seq))
        self.assertEqual(4, seq.alphabet_size)

        self.assertEqual(
            '0 2 3 1 0 2 0 2 2 1 0 2 3 0 2 1 0 3 2 1',
            seq_to_string(seq))
Example #6
0
    def __test(self, hmm_name, seq_name, expected_value):
        def fix(n, digits=4):
            if n is None:
                return None
            fmt = '{0:.' + str(digits) + 'f}'
            return fmt.format(round(n, digits))

        hmm = create_hmm('inputs/' + hmm_name + '.hmm')
        seq = create_seq('inputs/' + seq_name + '.seq')
        actual_value = _mann.evaluate(hmm, seq)
        self.assertEqual(fix(expected_value), fix(actual_value))
Example #7
0
    def __test(self, hmm_name, seq_name, expected_value):
        def fix(n, digits=4):
            if n is None:
                return None
            fmt = '{0:.' + str(digits) + 'f}'
            return fmt.format(round(n, digits))

        hmm = create_hmm('inputs/' + hmm_name + '.hmm')
        seq = create_seq('inputs/' + seq_name + '.seq')
        actual_value = _mann.evaluate(hmm, seq)
        self.assertEqual(fix(expected_value), fix(actual_value))
Example #8
0
    def __test(self, hmm_name, seq_name, expected_value):
        def fix(n, digits=4):
            if n is None:
                return None
            fmt = '{0:.' + str(digits) + 'f}'
            return fmt.format(round(n, digits))

        hmm = create_hmm('inputs/' + hmm_name + '.hmm')
        seq = create_seq('inputs/' + seq_name + '.seq')
        xseq = ZipSequence.from_sequence(seq, hmm.state_count)
        actual_value = compute_lle(hmm, xseq)
        self.assertEqual(fix(expected_value), fix(actual_value))
Example #9
0
    def __test(self, hmm_name, seq_name, expected_value):
        def fix(n, digits=4):
            if n is None:
                return None
            fmt = '{0:.' + str(digits) + 'f}'
            return fmt.format(round(n, digits))

        hmm = create_hmm('inputs/' + hmm_name + '.hmm')
        seq = create_seq('inputs/' + seq_name + '.seq')
        xseq = ZipSequence.from_sequence(seq, hmm.state_count)
        actual_value = compute_lle(hmm, xseq)
        self.assertEqual(fix(expected_value), fix(actual_value))
Example #10
0
    def __test(self, hmm_name, seq_name, expected_value):
        def compute_lle(hmm, seq):
            le = _rabiner.evaluate(hmm, seq)
            return None if le == 0.0 else math.log(le)

        def fix(n, digits=4):
            if n is None:
                return None
            fmt = '{0:.' + str(digits) + 'f}'
            return fmt.format(round(n, digits))

        hmm = create_hmm('inputs/' + hmm_name + '.hmm')
        seq = create_seq('inputs/' + seq_name + '.seq')
        actual_value = compute_lle(hmm, seq)
        self.assertEqual(fix(expected_value), fix(actual_value))
Example #11
0
    def __test(self, hmm_name, seq_name, expected_value):
        def compute_lle(hmm, seq):
            le = _rabiner.evaluate(hmm, seq)
            return None if le == 0.0 else math.log(le)

        def fix(n, digits=4):
            if n is None:
                return None
            fmt = '{0:.' + str(digits) + 'f}'
            return fmt.format(round(n, digits))

        hmm = create_hmm('inputs/' + hmm_name + '.hmm')
        seq = create_seq('inputs/' + seq_name + '.seq')
        actual_value = compute_lle(hmm, seq)
        self.assertEqual(fix(expected_value), fix(actual_value))
Example #12
0
    def test_from_sequence(self):
        hmm = create_hmm("inputs/test0.hmm")
        seq = create_seq("inputs/test0.seq")
        xseq = ZipSequence.from_sequence(seq, hmm.state_count)

        self.assertEqual('0 1 4 4', seq_to_string(xseq))

        self.assertEqual(5, xseq.alphabet_size)
        self.assertEqual(3, xseq.extended_alphabet_size)
        self.assertEqual(2, xseq.original_alphabet_size)
        self.assertEqual(2, xseq.state_count)

        self.assertEqual((3, 3), xseq.get_substitute(4))
        self.assertEqual((2, 2), xseq.get_substitute(3))
        self.assertEqual((0, 1), xseq.get_substitute(2))

        self.assertIsNone(xseq.get_substitute(1))

        self.assertEqual(
            '0 1 2 3 4',
            seq_to_string(xseq.iterate_alphabet()))

        self.assertEqual(
            '2 3 4',
            seq_to_string(xseq.iterate_extended_alphabet()))

        self.assertEqual(
            '0 1',
            seq_to_string(xseq.iterate_original_alphabet()))

        self.assertEqual(
            '0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1',
            seq_to_string(xseq.iterate_original_sequence()))

        self.assertEqual(
            '2 0 1 ; 3 2 2 ; 4 3 3',
            ' ; '.join(map(lambda (a, (b, c)): ' '.join(
                map(str, [a, b, c])), xseq.iterate_substitutes())))