Bio. HM.DynamicProgramming模块
一般用途的动态编程算法。
该模块包含实现可普遍使用的动态编程算法的类。
- class Bio.HMM.DynamicProgramming.AbstractDPAlgorithms(markov_model, sequence)
基类:
object
计算向前和向后概率的抽象类。
此类不应直接实例化,而应通过实现适当变量缩放的派生类使用。
这个类只是为了封装基本的向前和向后算法,并允许派生类处理概率相乘的问题。
它的派生类必须实现:
_forward_recursion --使用某种防止下溢错误的技术计算迭代中的前向值。
_backward_recursion --使用某种技术计算迭代步骤中的向后值以防止下溢错误。
- __init__(markov_model, sequence)
初始化以计算向前和向后概率。
- 论点:
markov_mode--我们正在使用的当前马尔科夫模型。
序列--包含一组发射的训练序列。
- forward_algorithm()
使用前向算法计算序列概率。
这实现了向前算法,如Durbin等人的第57 -58页所述。
- 退货:
包含正向变量的字典。它具有形式的键(状态字母、训练序列中的位置)和包含计算出的向前变量的值。
序列的计算概率。
- backward_algorithm()
使用向后算法计算序列概率。
这实现了向后算法,如Durbin等人的第58 -59页所述。
- 退货:
包含向后变量的字典。它具有形式的键(状态字母、训练序列中的位置)和包含计算出的向后变量的值。
- __firstlineno__ = 26
- __static_attributes__ = ('_mm', '_seq')
- class Bio.HMM.DynamicProgramming.ScaledDPAlgorithms(markov_model, sequence)
-
使用重新缩放方法实现前向和后向算法。
这会缩放f和b变量,以便它们在计算期间保持在可管理的数字区间内。Durbin等人在第78页描述了这种方法。
这种方法比日志转换更简单,但仍然可能会对某些类型的模型产生下溢错误。在这些情况下,应使用LogDCPAlomics类。
- __init__(markov_model, sequence)
初始化计算概率的缩放方法。
- 论点:
markov_mode--我们正在使用的当前马尔科夫模型。
sequence --一个TrainingSequence对象,它必须有一组要使用的发射。
- __annotations__ = {}
- __firstlineno__ = 171
- __static_attributes__ = ('_s_values',)