コード例 #1
0
ファイル: test_HMMCasino.py プロジェクト: wenh06/biopython
 def test_baum_welch_training_standard(self):
     """Standard Training with known states."""
     known_training_seq = Trainer.TrainingSequence(self.rolls, self.states)
     standard_mm = self.mm_builder.get_markov_model()
     trainer = Trainer.KnownStateTrainer(standard_mm)
     trained_mm = trainer.train([known_training_seq])
     if VERBOSE:
         print(trained_mm.transition_prob)
         print(trained_mm.emission_prob)
     test_rolls, test_states = generate_rolls(300)
     predicted_states, prob = trained_mm.viterbi(test_rolls, DiceTypeAlphabet())
     if VERBOSE:
         print("Prediction probability: %f" % prob)
         Utilities.pretty_print_prediction(test_rolls, test_states, predicted_states)
コード例 #2
0
ファイル: phmm.py プロジェクト: baskaragilbas/bioinformatics
builder.set_emission_score('O', 'A', (1 / 3))
builder.set_emission_score('O', 'T', (2 / 3))

#building hmm
hmm = builder.get_markov_model()

#list sequence & state utk training
tseq = [Seq('ACSA', DNA()), Seq('AST', DNA()), Seq('ACCST', DNA())]
tstate = [
    MutableSeq('MJNO', State()),
    MutableSeq('MNO', State()),
    MutableSeq('MJJNO', State())
]

#training dengan menggunakan sequence ACSA, AST, ACCST pada tstate dan tseq
trainer = Trainer.KnownStateTrainer(hmm)
#hmm dilatih satupersatu
for i in range(len(tseq)):
    trainseq = Trainer.TrainingSequence(tseq[i], tstate[i])
    trainhmm = trainer.train([trainseq])

#Query yang akan dicocokan beserta dengan perhitungan state awalnya
seq = Seq('ACCCSA', DNA())
state = MutableSeq('MJJJNO', State())

#algoritma viterbi akan mencari state yang terbaik untuk sequence
predicted_states, prob = trainhmm.viterbi(seq, State())

#mengeluarkan hasil probabilitas dari sequence, emission, statenya, dan predicted statenya
print("Prediction probability: %f" % prob)
Utilities.pretty_print_prediction(seq, state, predicted_states)
コード例 #3
0
ファイル: test_HMMCasino.py プロジェクト: znruss/biopython
    """
    if VERBOSE:
        print("ll change: %f" % log_likelihood_change)
    if log_likelihood_change < 0.01:
        return 1
    elif num_iterations >= 10:
        return 1
    else:
        return 0


# -- Standard Training with known states
print("Training with the Standard Trainer...")
known_training_seq = Trainer.TrainingSequence(rolls, states)

trainer = Trainer.KnownStateTrainer(standard_mm)
trained_mm = trainer.train([known_training_seq])

if VERBOSE:
    print(trained_mm.transition_prob)
    print(trained_mm.emission_prob)

test_rolls, test_states = generate_rolls(300)

predicted_states, prob = trained_mm.viterbi(test_rolls, DiceTypeAlphabet())
if VERBOSE:
    print("Prediction probability: %f" % prob)
    Utilities.pretty_print_prediction(test_rolls, test_states, predicted_states)

# -- Baum-Welch training without known state sequences
print("Training with Baum-Welch...")
コード例 #4
0
markovModel = markovBuilder.get_markov_model()

#3 sequence yang akan dialign
seq1 = Seq('ATGA', arrayDNA())
seq2 = Seq('A CCA', arrayDNA())
seq3 = Seq('ACAST', arrayDNA())

#state untuk tiap sequence
seq1State = MutableSeq('MNOP', arrayState())
seq2State = MutableSeq('MDIOP', arrayState())
seq3State = MutableSeq('MNIOP', arrayState())

seq = [seq1, seq2, seq3]
states = [seq1State, seq2State, seq3State]

#training Hidden Markov Model dengan sequence di atas
trainer = Trainer.KnownStateTrainer(markovModel)
for i in range(len(seq)):
    trainingseq = Trainer.TrainingSequence(seq[i], states[i])
    trainedhmm = trainer.train([trainingseq])

#contoh query yang lain
testSeq = Seq('ATSA', arrayDNA())
testState = MutableSeq('MNOP', arrayState())

#mencari state terbaik untuk sequence dengan Viterbi Algorithm
predictedstates, prob = trainedhmm.viterbi(testSeq, arrayState())

#mengeluarkan hasil probabilitas dari sequence, emission, statenya, dan predicted statenya
print("Probabilitas Prediksi: %f" % prob)
Utilities.pretty_print_prediction(testSeq, testState, predictedstates)