Linux中Java程序调用Blast进行序列匹配
来源:互联网 发布:mac 图片浏览 编辑:程序博客网 时间:2024/05/29 07:35
这几天在进行一个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” 表示不建立序列名索引。默认值为F。
-p [T/F]:选择建库的类型,“T”表示建立的是蛋白质数据库,“F”表示建立的是核酸数据库,缺省值为T。
通过Java调用formatdb代码段为:
Process process = Runtime.getRuntime.eexec("formatdb -i DBFile -p T -o T");
process.waitFor(); //等待命令执行结束,获取执行结果
程序运行结束后,如果建立的是核酸库,-o为F时,会输出**.nhr,**.nin,**.nsp文件,-o为T时,还会多输出**.hsd,**.nsi,**.nni和**.nnd文件。类似的,当建立的是蛋白质也会输出相应的文件:[-o F]--**.phr,**.pin,**.psq;[-o T]--**.psd,**.psi,**.pni,**.pnd。
最后,序列比对并返回结果
Blast的主程序是blastall,序列比对命令:“blastall -p 比对程序 -i querySequence -d Database -o result -b [0-N] -T [T/F]”,下面介绍一下具体参数:
-p--确定使用哪个程序进行比对,一共有下面5种取值:
blastp--蛋白质序列与蛋白质库做比对;
blastx--核酸序列与蛋白质库做比对;
blastn--核酸序列与核酸库作比对;
tblastn--蛋白质序列与核酸库作比对;
tblastx--核酸序列与核酸库在蛋白质级别作比对。
-d -- 搜索的数据库名称,该数据库为formatdb格式化后的结果;
-i -- 需要查询的序列文件对应的绝对路径;
-o -- 比对结果输出文件;
-b [0-N] -- 显示比对结果的最大数目,缺省值为250;
-T [T/F] -- 产生HTML格式的输出,缺省值为F。
通过Java调用formatdb代码段为:
Process process = Runtime.getRuntime.eexec("blastall -p 比对程序 -i querySequence -d Database -o resultFile -b [0-N] -T [T/F]");
process.waitFor(); //等待命令执行结束,获取执行结果
此外,还有许多其他的参数可以选择,下面简要介绍几个重要的参数:
-G -- 打开一个gap的罚分,默认为0;
-e -- 期望值,缺省值为10,表示比对结果中由于随机偶然性产生的匹配结果不大于10,其值越小表示比对结果越可信。
-m -- 比对结果输出格式,缺省值为0,即pairwise格式,此外用户还可以需求在1~11选择。
0 = pairwise
1 = query-anchored showing identities
2 = query-anchored no identities
3 = flag query-anchored, show identities
4 = flag query-anchored, no identities
5 = query-anchored no identities and blunt ends
6 = flat query-anchored, no identities and blunt ends
7 = XML Blast output
8 = tabular
9 = tabular with comment lines
10 = ASN, text
11 = ASN, binary
- Linux中Java程序调用Blast进行序列匹配
- blast linux
- Linux系统中NCBI BLAST+本地化教程
- 在linux中定时调用Java程序
- java程序中调用linux命令
- java程序中调用linux命令
- java程序中调用linux命令
- java程序中调用linux命令
- java程序中调用linux命令
- Linux下BLAST安装及BLAST使用
- GO 和 KEGG 注释之前,为什么要先进行序列比对(BLAST)?
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- 题目【2004】
- 《unix高级环境编程》高级 I/O—— I/O 多路复用
- 基于 Django 框架的敏捷 Web 开发
- CImage类显示图片
- Trie树实现
- Linux中Java程序调用Blast进行序列匹配
- Intellij IDEA调试功能使用总结
- Molar mass
- linux系统中scp命令的用法
- Codeforces Round #277 (Div. 2)
- servlet基本概念
- !
- leetcode:Palindrome Number 回文整数
- 题目【2005】