机器学习和生物信息学实验室联盟

标题: (改进)在blast后删除结果文件的冗余 [打印本页]

作者: RockRabbit    时间: 2012-3-11 15:44
标题: (改进)在blast后删除结果文件的冗余
本帖最后由 RockRabbit 于 2012-3-15 21:11 编辑

改进后,目前不仅限于对microRNA序列的做的BLAST,还可对其他核苷酸序列做BLAST后的结果进行处理。

(1)准备好需要Blast的两个文件。

例如: 我们要在我们的文件中(CDs.txt)寻找与microRNA前体文件(pre-mciroRNA.txt)匹配的序列。则需将CDs.txt命名为query_file.txt, 将pre-mciroRNA.txt命名为 database_file.txt


注意: 我们把blast程序封装到了我们的程序中,若用户想单独使用blast程序,下载网址:ftp://ftp.ncbi.nlm.nih.gov/blast/executables/release/2.2.20/。我们用的是版本是blast-2.2.20。具体的blast步骤如下:

A.在做blast之前,先格式化数据库文件 :./formatdb –i CDs.txt –p F –o T
(注意:这边用我们的文件CDs.txt,而不是用pre-microRNA.txt作为数据库文件,是因为一般我们的查询文件较大。另外,-p F 代表的是数据库文件为核苷酸序列,若是蛋白质序列应写为 –p T。)

B.进行BLAST,即对查询文件和数据库文件进行BLAST。
运行命令:./blastall -p blastn –i pre-microRNA.txt -d CDs.txt -o blastout.txt  –m 8  -e 1e-10
其中:-m: 比对结果显示格式选项,缺省值为0 ,即pairwise格式。另外还可以根据不同的需要选择1~6等不同的格式。
       -o 是输出结果文件,文件名可根据自己随意命名。
       -e(数学): 期望值(Expectation value),E值是个统计阈值,缺省值10, 意指比对结果中由于随机偶然性产生的匹配结果不大于10,E值越小结果越可靠。
具体的参数详细说明可见:http://blog.163.com/henry_by/blo ... 820091027104419860/

生成的结果文件是blastout.txt。按照上面的命令输出的结果文件的格式如下图:
[attach]549[/attach]





(2)去除blast后的冗余
用我们的delete_BlastAbundent.jar程序。 将第一步准备好的两个文件拷入与这个程序文件所在的当前目录中,目录中应包含以下几个文件。如图:
[attach]550[/attach]

(a)我们接下来重点介绍如何使用delete_BlastAbundent.jar。
首先,当然前提条件是你的机子安装了java。如果没有的话,可以在网址:http://www.oracle.com/technetwor ... ownload-346242.html 下载。
其次,运行命令:java –jar delete_BlastAbundent.jar  n

其中参数设置是:一个变量。
一个变量 n:控制去除我们最后输出的结果文件中相似的序列。数值越高代表我们去除冗余的程度越好,即结果文件中序列间的相似程度越低。其中变量n可控制在 0.0至1.0不等,一般设为0.5。

(b)当然用户也可以根据不同的需求更改参数。
如程序所用到的批处理程序 blast.bat
[attach]551[/attach]

注意:最好不要任意更改文件名,因为程序封装好了。 可以更改的是 –m  或者 –e。


[attach]548[/attach]

作者: xmubingo    时间: 2012-3-11 16:42
RockRabbit出品,绝属精品。
作者: zouquan    时间: 2012-3-11 23:48
两条序列的相似性怎么衡量的?用动态规划?
作者: xmubingo    时间: 2012-3-11 23:51
zouquan 发表于 2012-3-11 23:48
两条序列的相似性怎么衡量的?用动态规划?

他这相似的意思应该是说,两个片段之间重复的长度占总长的比例。
作者: RockRabbit    时间: 2012-3-12 10:41
zouquan 发表于 2012-3-11 23:48
两条序列的相似性怎么衡量的?用动态规划?

嗯,是这样的。我做了二层过滤。先将文件中完全相同的序列删除,而后再将有重复段(默认的是0.5,即两条序列中有>50%重复认为是相似序列)的序列删除,只保留一条下来。
作者: xmubingo    时间: 2012-3-16 10:06
改进版哦,等我有空试用下。
作者: zouquan    时间: 2012-3-16 15:11
very gooooooood,谁去试用一下,提出意见,好不断完善~~~
作者: Beck【hu】    时间: 2012-5-2 09:31
RockRabbit 发表于 2012-3-12 10:41
嗯,是这样的。我做了二层过滤。先将文件中完全相同的序列删除,而后再将有重复段(默认的是0.5,即两条序 ...

你好,我想问一下,这个包可以做蛋白质序列去冗余吗?我把里面Blast命令和formatdb命令 -p N 改成 -p T,blastn 改成blastp,怎么得不到结果呢?
作者: RockRabbit    时间: 2012-5-2 22:00
Beck【hu】 发表于 2012-5-2 09:31
你好,我想问一下,这个包可以做蛋白质序列去冗余吗?我把里面Blast命令和formatdb命令 -p N 改成 -p T, ...

这个目前只适用于核苷酸序列...
作者: lsss    时间: 2012-11-13 08:37
请问对blast后的结果处理要怎样操作?谢谢~~~




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2