def test_implied_terminal_state(self): training_data = [('CTTCATGTGAAAGCAGACGTAAGTCA', 'EEEEEEEEEEEEEEEEEE5IIIIIII'), ('CTTCATGTGAAAGCAGACATAAGTCA', 'EEEEEEEEEEEEEEEEEE5IIIIIII')] model = hmm.train_hmm(training_data, True) self.assertIn('A', model.alphabet) self.assertIn('C', model.alphabet) self.assertIn('G', model.alphabet) self.assertIn('T', model.alphabet) self.assertNotIn('B', model.alphabet) self.assertIn('E', model.states.keys()) self.assertIn('5', model.states.keys()) self.assertIn('I', model.states.keys()) self.assertEqual(model.states['5'].p_emission['A'], 0.5) self.assertEqual(model.states['5'].p_transition['I'], 1.0) self.assertEqual(model.initial_states, ['E']) self.assertTrue(model.terminal_state) self.assertEqual(model.terminating_states, ['I'])
def main(): tab = table.load_seq_data() h = hmm.train_hmm(tab, 10)