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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5601|回复: 9
打印 上一主题 下一主题

(改进)在blast后删除结果文件的冗余

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-3-11 15:44:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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。按照上面的命令输出的结果文件的格式如下图:






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


(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


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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

沙发
发表于 2012-3-11 16:42:00 | 只看该作者
RockRabbit出品,绝属精品。
回复 支持 反对

使用道具 举报

板凳
发表于 2012-3-11 23:48:25 | 只看该作者
两条序列的相似性怎么衡量的?用动态规划?
回复 支持 反对

使用道具 举报

地板
发表于 2012-3-11 23:51:08 | 只看该作者
zouquan 发表于 2012-3-11 23:48
两条序列的相似性怎么衡量的?用动态规划?

他这相似的意思应该是说,两个片段之间重复的长度占总长的比例。
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-3-12 10:41:53 | 只看该作者
zouquan 发表于 2012-3-11 23:48
两条序列的相似性怎么衡量的?用动态规划?

嗯,是这样的。我做了二层过滤。先将文件中完全相同的序列删除,而后再将有重复段(默认的是0.5,即两条序列中有>50%重复认为是相似序列)的序列删除,只保留一条下来。
回复 支持 反对

使用道具 举报

6#
发表于 2012-3-16 10:06:19 | 只看该作者
改进版哦,等我有空试用下。
回复 支持 反对

使用道具 举报

7#
发表于 2012-3-16 15:11:34 | 只看该作者
very gooooooood,谁去试用一下,提出意见,好不断完善~~~
回复 支持 反对

使用道具 举报

8#
发表于 2012-5-2 09:31:23 | 只看该作者
RockRabbit 发表于 2012-3-12 10:41
嗯,是这样的。我做了二层过滤。先将文件中完全相同的序列删除,而后再将有重复段(默认的是0.5,即两条序 ...

你好,我想问一下,这个包可以做蛋白质序列去冗余吗?我把里面Blast命令和formatdb命令 -p N 改成 -p T,blastn 改成blastp,怎么得不到结果呢?
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2012-5-2 22:00:46 | 只看该作者
Beck【hu】 发表于 2012-5-2 09:31
你好,我想问一下,这个包可以做蛋白质序列去冗余吗?我把里面Blast命令和formatdb命令 -p N 改成 -p T, ...

这个目前只适用于核苷酸序列...
回复 支持 反对

使用道具 举报

10#
发表于 2012-11-13 08:37:48 | 只看该作者
请问对blast后的结果处理要怎样操作?谢谢~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 16:29 , Processed in 0.079487 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表