<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Bio.HMM.MarkovModel.HiddenMarkovModel</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="Bio-module.html">Package Bio</a> :: <a href="Bio.HMM-module.html">Package HMM</a> :: <a href="Bio.HMM.MarkovModel-module.html">Module MarkovModel</a> :: Class HiddenMarkovModel </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== CLASS DESCRIPTION ==================== --> <h1 class="epydoc">Class HiddenMarkovModel</h1><p class="nomargin-top"><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel">source code</a></span></p> <p>Represent a hidden markov model that can be used for state estimation.</p> <!-- ==================== INSTANCE METHODS ==================== --> <a name="section-InstanceMethods"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Instance Methods</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-InstanceMethods" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">transition_prob</span>, <span class="summary-sig-arg">emission_prob</span>, <span class="summary-sig-arg">transition_pseudo</span>, <span class="summary-sig-arg">emission_pseudo</span>)</span><br /> Initialize a Markov Model.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.__init__">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#_calculate_from_transitions" class="summary-sig-name" onclick="show_private();">_calculate_from_transitions</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">trans_probs</span>)</span><br /> Calculate which 'from transitions' are allowed for each letter.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel._calculate_from_transitions">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#get_blank_transitions" class="summary-sig-name">get_blank_transitions</a>(<span class="summary-sig-arg">self</span>)</span><br /> Get the default transitions for the model.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.get_blank_transitions">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#get_blank_emissions" class="summary-sig-name">get_blank_emissions</a>(<span class="summary-sig-arg">self</span>)</span><br /> Get the starting default emmissions for each sequence.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.get_blank_emissions">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#transitions_from" class="summary-sig-name">transitions_from</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">state_letter</span>)</span><br /> Get all transitions which can happen from the given state.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.transitions_from">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#viterbi" class="summary-sig-name">viterbi</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">sequence</span>, <span class="summary-sig-arg">state_alphabet</span>)</span><br /> Calculate the most probable state path using the Viterbi algorithm.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.viterbi">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="Bio.HMM.MarkovModel.HiddenMarkovModel-class.html#_log_transform" class="summary-sig-name" onclick="show_private();">_log_transform</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">probability</span>)</span><br /> Return log transform of the given probability dictionary.</td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel._log_transform">source code</a></span> </td> </tr> </table> </td> </tr> </table> <!-- ==================== METHOD DETAILS ==================== --> <a name="section-MethodDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Method Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-MethodDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="__init__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>, <span class="sig-arg">transition_prob</span>, <span class="sig-arg">emission_prob</span>, <span class="sig-arg">transition_pseudo</span>, <span class="sig-arg">emission_pseudo</span>)</span> <br /><em class="fname">(Constructor)</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.__init__">source code</a></span> </td> </tr></table> <p>Initialize a Markov Model.</p> <p>Note: You should use the MarkovModelBuilder class instead of initiating this class directly.</p> <p>Arguments:</p> <p>o transition_prob -- A dictionary of transition probabilities for all possible transitions in the sequence.</p> <p>o emission_prob -- A dictionary of emissions probabilities for all possible emissions from the sequence states.</p> <p>o transition_pseudo -- Pseudo-counts to be used for the transitions, when counting for purposes of estimating transition probabilities.</p> <p>o emission_pseduo -- Pseudo-counts fo tbe used for the emissions, when counting for purposes of estimating emission probabilities.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="_calculate_from_transitions"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_calculate_from_transitions</span>(<span class="sig-arg">self</span>, <span class="sig-arg">trans_probs</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel._calculate_from_transitions">source code</a></span> </td> </tr></table> <p>Calculate which 'from transitions' are allowed for each letter.</p> <p>This looks through all of the trans_probs, and uses this dictionary to determine allowed transitions. It converts this information into a dictionary, whose keys are the transition letters and whose values are a list of allowed letters to transition to.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="get_blank_transitions"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">get_blank_transitions</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.get_blank_transitions">source code</a></span> </td> </tr></table> <p>Get the default transitions for the model.</p> <p>Returns a dictionary of all of the default transitions between any two letters in the sequence alphabet. The dictionary is structured with keys as (letter1, letter2) and values as the starting number of transitions.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="get_blank_emissions"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">get_blank_emissions</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.get_blank_emissions">source code</a></span> </td> </tr></table> <p>Get the starting default emmissions for each sequence.</p> <p>This returns a dictionary of the default emmissions for each letter. The dictionary is structured with keys as (seq_letter, emmission_letter) and values as the starting number of emmissions.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="transitions_from"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">transitions_from</span>(<span class="sig-arg">self</span>, <span class="sig-arg">state_letter</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.transitions_from">source code</a></span> </td> </tr></table> <p>Get all transitions which can happen from the given state.</p> <p>This returns all letters which the given state_letter is allowed to transition to. An empty list is returned if no letters are possible.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="viterbi"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">viterbi</span>(<span class="sig-arg">self</span>, <span class="sig-arg">sequence</span>, <span class="sig-arg">state_alphabet</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel.viterbi">source code</a></span> </td> </tr></table> <p>Calculate the most probable state path using the Viterbi algorithm.</p> <p>This implements the Viterbi algorithm (see pgs 55-57 in Durbin et al for a full explanation -- this is where I took my implementation ideas from), to allow decoding of the state path, given a sequence of emissions.</p> <p>Arguments:</p> <p>o sequence -- A Seq object with the emission sequence that we want to decode.</p> <p>o state_alphabet -- The alphabet of the possible state sequences that can be generated.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="_log_transform"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_log_transform</span>(<span class="sig-arg">self</span>, <span class="sig-arg">probability</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="Bio.HMM.MarkovModel-pysrc.html#HiddenMarkovModel._log_transform">source code</a></span> </td> </tr></table> <p>Return log transform of the given probability dictionary.</p> <p>When calculating the Viterbi equation, we need to deal with things as sums of logs instead of products of probabilities, so that we don't get underflow errors.. This copies the given probability dictionary and returns the same dictionary with everything transformed with a log.</p> <dl class="fields"> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Mon Sep 15 09:26:35 2008 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>