这几天在进行一个DNA序列管理Web程序,需要使用查询序列与数据库中保存的序列进行匹配,但是由于序列比较长,而且数据库里面存在的序列较多,因此如果自己手动写一个动态规划算法会比较麻烦,因此决定使用现在常用的Blast做序列的比对。
使用Blast进行序列比对,一般有两个步骤:1、格式化数据库,2、在数据库中查询相应序列并返回结果。
下面根据我的编程经历介绍一下如何在Linux中使用Java调用Blast进行序列比对。
首先,下载Blast程序对应的压缩包,然后把blast文件解压,将对应的bin目录下的文件拷贝到系统中相应的位置(例如:/usr/local/bin),在使用过程中用户可以根据具体情况建立软链接。
其次,进行序列数据库的格式化。
Linux中使用formatdb进行序列数据库的格式化,格式化命令:"formatdb -i DBfile1 -p (T/F) -o (T/F)",下面介绍一下具体参数
-i:输入需要格式化序列库的绝对路径,序列库一般一般使用的是fasta文件。
-o [T/F]:判断是否分析序列名并建立序列名索引。“T”表示建立序列名索引,“F” 表