BLAST是Basic Local Alignment Search Tool的缩写,它是生物信息学中最常用的工具,工作中每天都会用到。今天闲来无事,自己用java写了一段代码来实现这一功能。
算法思想很简单,利用动态规划,全局的最优解即所有局部的最优解的集合。代码里两个碱基若匹配得1分,不匹配和空位(对应碱基的插入或缺失)都会罚1分,这是最简单的打分函数,实际的要远比这复杂,这里不做讨论。
//@author:Jiuyu
public class Blast {
public static String reverse(String s)
{
String r_s= "";
char [] a = s.toCharArray();
for(int i =a.length-1;i>=0;i--)
{
r_s += a[i];
}
return r_s;
}
public static String