EM(Exceptation-maximization algorithm)算法寻找蛋白质motif
这是一道课程作业:给出了2000条蛋白质序列,每条长度为50,要求使用EM算法寻找其中的motif(假设motif长度为7).
Expectation Maximization (EM) Algorithm
EM is a two-stage iterative process. An initial guess is made as to the location and size of a sequence pattern (a motif or domain) in each sequence in a set of related sequences. These regions are aligned to create a “trial” alignment for the set of sequences. Using the trial alignment, the residue composition of each column in the alignment is first calculated and used to create a PSSM.
Step 1. Expectation
Using the values in the PSSM, the probability of finding the pattern at every possible position in each sequence is calculated.
Step 2. Maximization
The probabilities from step 1 are used to weight the values in the PSSM, essentially providing new information about the likely location of the pattern in each sequence. The values in the PSSM are updated using these weights.
Steps 1 and 2 are repeated until the values in the PSSM don’t change with continued iterations.
具体步骤如下:
1.对于每一条蛋白质,选择随机选择其中的长度为7的motif片段,2000条蛋白质中找到2000*7条。
2.2000 * 7条矩阵按照以下步骤生成20*7(氨基酸种类数量为20种)矩阵:
3.20 * 7 权重打分矩阵对于每一条蛋白质顺序的每一种可能的motif进行打分(如本题50个顺序那么motif起点可能在0,43),每一条选取得分最高的7个片段重新组成2000 * 7矩阵。
4.重复2 3步骤直到收敛(我的理解每一条蛋白质的7个片段高度相似),即为可能的motif序列。
问题难点主要在于理解EM算法如何具体应用到本题中,故做此记录。代码实现不难,有空后续补上。
- 点赞
- 收藏
- 分享
- 文章举报
- java实现从迷宫寻找出路算法(广度优先搜索)
- 数据挖掘十大算法---EM 期望最大算法
- 贪心算法——寻找剩余最大数
- 算法--分治法寻找中值
- EM(Expectation-Maximization)算法
- EM 算法
- 【C/C++学院】0907-象棋五子棋代码分析/寻找算法以及排序算法
- 记录一下另外一个,在棋盘上自动寻找最近的坐标节点的算法
- 又看了一次EM 算法,还有高斯混合模型,最大似然估计
- 算法笔记_037:寻找和为定值的两个数(Java)
- EM最大期望算法
- 一步一步写算法(之寻找丢失的数)
- 算法笔记_041:寻找和为定值的多个数(Java)
- 寻找一个二维数组鞍点的算法实现
- codevs 2776 寻找代表——裸的匈牙利算法
- 编程之美上的寻找最大的前k个数的算法实现
- 面试算法——寻找第K大的数(快速排序的应用)
- 1000桶酒中寻找一桶毒酒算法
- 从 GMM 到 EM 算法
- 《AI for Game Developers》第七章 A*路径寻找算法 (一)(skiplow翻译)