Bio.HMM.DynamicProgramming模块¶
适用于一般用途的动态规划算法。
此模块包含实现可通用的动态规划算法的类。
- class Bio.HMM.DynamicProgramming.AbstractDPAlgorithms(markov_model, sequence)¶
基类:
object
用于计算向前和向后概率的抽象类。
此类不应直接实例化,而应通过实现变量适当缩放的派生类使用。
此类仅用于封装基本的向前和向后算法,并允许派生类处理概率乘法问题。
此的派生类必须实现:
_FORWARD_RECURSION--使用某种防止下溢错误的技术计算递归中的前进值。
_BACKUP_RECURSION--使用某些技术计算递归步骤中的后退值,以防止下溢错误。
- __init__(markov_model, sequence)¶
初始化以计算向前和向后概率。
- 参数:
马尔可夫模型--我们正在使用的当前马尔可夫模型。
序列--包含一组排放的训练序列。
- forward_algorithm()¶
使用前向算法计算序列概率。
这实现了前向算法,如在Durbin等人的P57-58中所描述的。
- 退货:
包含正向变量的字典。它具有以下形式的关键字(状态字母、训练序列中的位置)和包含计算出的正向变量的值。
计算出的序列概率。
- backward_algorithm()¶
使用反向算法计算序列概率。
这实现了反向算法,如Durbin等人的P58-59中所描述的。
- 退货:
包含向后变量的字典。它具有以下形式的键(状态字母、训练序列中的位置)和包含计算出的反向变量的值。
- class Bio.HMM.DynamicProgramming.ScaledDPAlgorithms(markov_model, sequence)¶
-
使用重新缩放方法实现向前和向后算法。
这将缩放f和b变量,以便它们在计算期间保持在可管理的数值间隔内。Durbin等人描述了这种方法。在第78页。
这种方法比对数转换稍微简单一些,但是对于某些类型的模型仍然可能会产生下溢错误。在这些情况下,应该使用LogDPAlgorithms类。
- __init__(markov_model, sequence)¶
初始化计算概率的缩放方法。
- 参数:
马尔可夫模型--我们正在使用的当前马尔可夫模型。
Sequence--TrainingSequence对象,它必须具有一组要处理的发射。