java - 序列比对中的动态规划填充矩阵

标签 java matrix dynamic-programming multidimensional-array sequence-alignment

大家好,我有 2d 字符数组 opt[][],我的数组中有 2 个序列,如示例所示

我的

 `opt[0][0]=A        
  opt[0][1]=T
  opt[0][2]=G
  opt[0][3]=A`   

 opt[1][0]=A
 opt[2][0]=G
 opt[3][0]=C
 opt[4][0]=T

我目前有这个输出

   x/y|  A  T  G  A  -
_______________________
  0 A |  0  0  0  0
  1 G |  0  0  0  0
  2 C |  0  0  0  0
  3 T |  0  0  0  0
  4 - |  0  0  0  0

我的问题是如何使用动态编程

将此数组创建到此

/image/ViHc9.png

如果是一场比赛 0 罚分 如果不匹配 1 罚分 如果有差距,则罚 2 分

我可以像这样比较我的数组的字符

for(int i=0;i<4;i++){

                if(opt[0][i]==opt[i+1][0]){

                    result[0][i] =1;

                }

但这只是我所做的一个简单测试,看看我是否可以进行比较,结果证明我可以。

我怎样才能从这里到那里(到图片数组

最佳答案

我建议您阅读这些文章。

http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm
http://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm

任何语言的实现都非常简单。

如果您需要有关动态规划的一般信息,
要么自己 Google 一下,要么检查这两个链接。

http://en.wikipedia.org/wiki/Dynamic_programming
https://www.topcoder.com/tc?d1=tutorials&d2=dynProg&module=Static

关于java - 序列比对中的动态规划填充矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634226/

相关文章:

java - javafx 8 中的自定义 3D 立方体蒙皮

swift - 在类声明 Swift 中从其他矩阵变量创建矩阵实例变量

arrays - 复制 2 维矩阵以创建 3 维数组(在 R 中)

c++ - 最长公共(public)递增子序列动态规划

java - ADAGAME4 Spoj 错误答案

java - Memozied Fibonacci 不运行与常规 Fibonacci 解决方案

java - 动态添加元素到arraylist

java - spring boot 配置属性错误

regex - php preg_match_all 等效

java.io.IOException : An existing connection was forcibly closed by the remote host