Bio. HM.MarkovModel模块

处理马尔科夫模型的表示。

class Bio.HMM.MarkovModel.MarkovModelBuilder(state_alphabet, emission_alphabet)

基类:object

接口来建立马尔可夫模型。

这个类旨在尝试将指定马尔科夫模型的任务与实际模型本身分开。这是希望使实际的马尔科夫模型类别更小。

因此,这个构建器类应该用于创建马尔科夫模型,而不是尝试直接启动马尔科夫模型。

DEFAULT_PSEUDO = 1
__init__(state_alphabet, emission_alphabet)

初始化构建器以创建马尔科夫模型。

论点:
  • State_alphet--可迭代对象(例如,多元组或列表)包含可以出现在州中的所有字母

  • emission_alphet--迭代对象(例如,tuple或列表)包含可以由Markov发出的状态的所有字母。

get_markov_model()

返回当前参数对应的马尔科夫模型。

调用此函数返回的每个马尔可夫模型都是唯一的(即,彼此不影响)。

set_initial_probabilities(initial_prob)

设置初始状态概率。

initial_prob是将状态映射到概率的字典。例如,假设州字母表是(“A”,“B”)。调用set_initial_prob(' A ':1})以保证初始状态为' A '。调用set_initial_prob(' A ':0.5,' B ':0.5})以使每个初始状态的可能性相同。

现在必须调用该方法才能使用马尔科夫模型,因为初始概率的计算发生了不兼容的变化;之前的计算不正确。

如果为所有状态设置了初始概率,那么它们的总和应该为1。否则总和应该<= 1。剩余概率在尚未设置初始概率的所有状态之间均匀分配。例如,对于上面的示例,调用set_initial_prob({})会导致P(' A ')= 0.5和P(' B ')= 0.5。

set_equal_probabilities()

将所有概率重置为平均值。

将所有初始概率、所有允许的转换和所有允许的发射的值重置为等于1除以可能元素的数量。

这是有用的,如果你只是想初始化一个马尔可夫模型的起始值(即。如果你对概率应该是什么没有先验概念--或者如果你只是觉得太懒而不想计算它们:-)。

警告1 --这将重置所有当前设置的概率。

警告2 --这只是将转变和排放的所有概率设置为总计为1,因此它并不能确保每套转变之和等于1。

set_random_initial_probabilities()

将所有初始状态概率设置为随机生成的分布。

返回包含初始概率的字典。

set_random_transition_probabilities()

将所有允许的转移概率设置为随机生成的分布。

返回包含转移概率的字典。

set_random_emission_probabilities()

将所有允许的发射概率设置为随机生成的分布。

返回包含发射概率的字典。

set_random_probabilities()

将所有概率设置为随机生成的数字。

将所有初始状态、转变和发射的概率重置为随机值。

allow_all_transitions()

在所有状态之间创建过渡。

默认情况下,字母表内的所有转换都是不允许的;这是一个方便功能,可以更改此功能以允许所有可能的转换。

allow_transition(from_state, to_state, probability=None, pseudocount=None)

在两个状态之间设置可能的过渡。

概率和伪计数是可选参数,指定转换的概率和伪计数。如果未提供这些,则这些值将设置为默认值。

Raises:KeyHelp--如果两个州已经允许过渡。

destroy_transition(from_state, to_state)

限制两个州之间的过渡。

如果当前不允许转换,则会引发键错误。

set_transition_score(from_state, to_state, probability)

设置两个状态之间转换的概率。

引发:如果不允许转换,则会出现KeyHelp。

set_transition_pseudocount(from_state, to_state, count)

设置过渡的默认伪计数。

为了避免计算问题,能够设置一个“默认”伪计数来开始估计跃迁和发射概率是有帮助的(参见Durbin等人的第62页,了解更多关于这一点的讨论。默认情况下,所有转换的伪计数都为1。

引发:如果不允许转换,则会出现KeyHelp。

set_emission_score(seq_state, emission_state, probability)

设置特定状态发射的概率。

如果不允许从给定状态发射,则引发KeyHelp。

set_emission_pseudocount(seq_state, emission_state, count)

设置发射的默认伪计数。

为了避免计算问题,能够设置一个“默认”伪计数来开始估计跃迁和发射概率是有帮助的(参见Durbin等人的第62页,了解更多关于这一点的讨论。默认情况下,所有排放的伪计数都为1。

如果不允许从给定状态发射,则引发KeyHelp。

__firstlineno__ = 77
__static_attributes__ = ('_emission_alphabet', '_state_alphabet', 'emission_prob', 'emission_pseudo', 'initial_prob', 'transition_prob', 'transition_pseudo')
class Bio.HMM.MarkovModel.HiddenMarkovModel(state_alphabet, emission_alphabet, initial_prob, transition_prob, emission_prob, transition_pseudo, emission_pseudo)

基类:object

代表可用于状态估计的隐藏马尔科夫模型。

__init__(state_alphabet, emission_alphabet, initial_prob, transition_prob, emission_prob, transition_pseudo, emission_pseudo)

初始化马尔科夫模型。

注意:您应该使用MarkovModel Builder类,而不是直接启动此类。

论点:
  • State_alphet--包含州中可能出现的所有字母的二元组。

  • emission_alphabet --一个元组,包含HMM可以发出的状态的所有字母。

  • initial_prob -所有状态的初始概率字典。

  • transition_prob --序列中所有可能转变的转变概率字典。

  • emission_prob --序列状态所有可能发射的发射概率字典。

  • transition_p伪--在为估计转移概率而进行计数时,用于转移的伪计数。

  • emission_poy--在为估计排放概率而进行计数时,用于排放的伪计数。

get_blank_transitions()

获取模型的默认过渡。

返回序列字母表中任何两个字母之间所有默认转换的字典。字典的结构是,键为(letter 1,letter 2),值为过渡的开始数。

get_blank_emissions()

获取每个序列的开始默认排放量。

这将返回每个字母的默认排放量的字典。该字典的结构是,键为(seq_letter,emission_letter),值为发射的开始数。

transitions_from(state_letter)

获取可以从源State_letter转换的所有目标状态。

这会返回给定State_letter可以转换到的所有字母,即从State_letter可到达的所有目标状态。

如果State_letter没有传出转换,则返回空列表。

transitions_to(state_letter)

获取所有可以转换到目标状态_letter的源状态。

这将返回给定state_letter可到达的所有字母,即所有可以到达state_later的源状态

如果无法访问State_letter,则返回空列表。

viterbi(sequence, state_alphabet)

使用维特比算法计算最可能的状态路径。

这实现了维特比算法(参见Durbin等人的第55-57页,以获得完整的解释-这是我的实现思想的来源),以允许在给定发射序列的情况下对状态路径进行解码。

论点:
  • 序列--具有我们想要解码的发射序列的Seq对象。

  • State_alphet--可迭代对象(例如,多元组或列表)包含可以出现在州中的所有字母

__firstlineno__ = 463
__static_attributes__ = ('_emission_pseudo', '_transition_pseudo', '_transitions_from', '_transitions_to', 'emission_alphabet', 'emission_prob', 'initial_prob', 'state_alphabet', 'transition_prob')