예제 #1
0
        x = ["%.2f" % x for x in markov_model.p_emission[i]]
        print "  %s: %s" % (markov_model.states[i], ' '.join(x))



print "TESTING train_visible"
states = ["0", "1", "2", "3"]
alphabet = ["A", "C", "G", "T"]
training_data = [
    ("AACCCGGGTTTTTTT", "001112223333333"),
    ("ACCGTTTTTTT", "01123333333"),
    ("ACGGGTTTTTT", "01222333333"),
    ("ACCGTTTTTTTT", "011233333333"),
    ]
print "Training HMM"
mm = MarkovModel.train_visible(states, alphabet, training_data)
print "Classifying"

#print MarkovModel.find_states(mm, "AACGTT")
#Don't just print this, as the float may have different
#precision on different platforms.  This returns a list
#containing a tuple containing a list (fine), and a float.
states = MarkovModel.find_states(mm, "AACGTT")
for state_list, state_float in states:
    print "State %s, %0.10f" % (repr(state_list), state_float)
print_mm(mm)




print "TESTING baum welch"
예제 #2
0
 def test_train_visible(self):
     states = ["0", "1", "2", "3"]
     alphabet = ["A", "C", "G", "T"]
     training_data = [
         ("AACCCGGGTTTTTTT", "001112223333333"),
         ("ACCGTTTTTTT", "01123333333"),
         ("ACGGGTTTTTT", "01222333333"),
         ("ACCGTTTTTTTT", "011233333333"),
         ]
     markov_model = MarkovModel.train_visible(states, alphabet, training_data)
     states = MarkovModel.find_states(markov_model, "AACGTT")
     self.assertEqual(len(states), 1)
     state_list, state_float = states[0]
     self.assertEqual(state_list, ['0', '0', '1', '2', '3', '3'])
     self.assertAlmostEqual(state_float, 0.0082128906)
     self.assertEqual(markov_model.states, ['0', '1', '2', '3'])
     self.assertEqual(markov_model.alphabet, ['A', 'C', 'G', 'T'])
     self.assertEqual(len(markov_model.p_initial), 4)
     self.assertAlmostEqual(markov_model.p_initial[0], 1.0)
     self.assertAlmostEqual(markov_model.p_initial[1], 0.0)
     self.assertAlmostEqual(markov_model.p_initial[2], 0.0)
     self.assertAlmostEqual(markov_model.p_initial[3], 0.0)
     self.assertEqual(len(markov_model.p_transition), 4)
     self.assertEqual(len(markov_model.p_transition[0]), 4)
     self.assertEqual(len(markov_model.p_transition[1]), 4)
     self.assertEqual(len(markov_model.p_transition[2]), 4)
     self.assertEqual(len(markov_model.p_transition[3]), 4)
     self.assertAlmostEqual(markov_model.p_transition[0][0], 0.2)
     self.assertAlmostEqual(markov_model.p_transition[0][1], 0.8)
     self.assertAlmostEqual(markov_model.p_transition[0][2], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[0][3], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[1][0], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[1][1], 0.5)
     self.assertAlmostEqual(markov_model.p_transition[1][2], 0.5)
     self.assertAlmostEqual(markov_model.p_transition[1][3], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[2][0], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[2][1], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[2][2], 0.5)
     self.assertAlmostEqual(markov_model.p_transition[2][3], 0.5)
     self.assertAlmostEqual(markov_model.p_transition[3][0], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[3][1], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[3][2], 0.0)
     self.assertAlmostEqual(markov_model.p_transition[3][3], 1.0)
     self.assertEqual(len(markov_model.p_emission), 4)
     self.assertEqual(len(markov_model.p_emission[0]), 4)
     self.assertEqual(len(markov_model.p_emission[1]), 4)
     self.assertEqual(len(markov_model.p_emission[2]), 4)
     self.assertEqual(len(markov_model.p_emission[3]), 4)
     self.assertAlmostEqual(markov_model.p_emission[0][0], 0.666667,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[0][1], 0.111111,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[0][2], 0.111111,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[0][3], 0.111111,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[1][0], 0.083333,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[1][1], 0.750000,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[1][2], 0.083333,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[1][3], 0.083333,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[2][0], 0.083333,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[2][1], 0.083333,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[2][2], 0.750000,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[2][3], 0.083333,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[3][0], 0.031250,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[3][1], 0.031250,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[3][2], 0.031250,
                            places=4)
     self.assertAlmostEqual(markov_model.p_emission[3][3], 0.906250,
                            places=4)
예제 #3
0
        x = ["%.2f" % x for x in markov_model.p_emission[i]]
        print "  %s: %s" % (markov_model.states[i], ' '.join(x))



print "TESTING train_visible"
states = ["0", "1", "2", "3"]
alphabet = ["A", "C", "G", "T"]
training_data = [
    ("AACCCGGGTTTTTTT", "001112223333333"),
    ("ACCGTTTTTTT", "01123333333"),
    ("ACGGGTTTTTT", "01222333333"),
    ("ACCGTTTTTTTT", "011233333333"),
    ]
print "Training HMM"
mm = MarkovModel.train_visible(states, alphabet, training_data)
print "Classifying"

#print MarkovModel.find_states(mm, "AACGTT")
#Don't just print this, as the float may have different
#precision on different platforms.  This returns a list
#containing a tuple containing a list (fine), and a float.
states = MarkovModel.find_states(mm, "AACGTT")
for state_list, state_float in states :
    print "State %s, %0.10f" % (repr(state_list), state_float)
print_mm(mm)




print "TESTING baum welch"