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')