计算生物学第二次作业
一、实验分析:
本次实验使用了 Python 语言编写了隐马尔可夫模型 Viterbi 算法,实现了
在已知初始概率、输出概率、转移概率的情况下,通过测序数据推断序列真实的
基因型。该算法的原理如下:
首先定义了以下参数:
# 状态的样本空间,0 表示 ZZ、1 表示 MM、2 表示 MZ
states = ['0','1','2']
# 初始概率,取对数是为了将后面乘算变为加算,从而简化计算。
S = [log(0.4), log(0.4), log(0.2)]
# 状态转移概率
T = [
[log(0.99*0.99), log(0.01*0.01), log(2*0.99*0.01)],
[log(0.01*0.01), log(0.99*0.99), log(2*0.99*0.01)],
[log(0.01*0.99), log(0.01*0.99), log(0.01*0.01+0.99*0.99)]
]
# 输出概率
E = [
[log(0.97), log(0.03)],
[log(0.03), log(0.97)],
[log(0.25), log(0.25)]
评论0