Linux下BLAST的使用---转载
2、制作软链接,将解压后的文件中bin目录链接至/home/username下,eg:ln
-s /home/username/blast/bin;
3、在当前用户目录下,编辑bashrc文件,在文件中加入export
PATH=/home/username/bin/=$PATH;
4、在当前目录下,将数据文件格式化,$formatdb -i
filename.后缀 -p F -o T
blastn -d filename.后缀 -i test.txt -o test.out
formatdb -i
/home/liuguiyou/Landsberg_Arabidopsis/ncbi_arab2.fna -o T -p
F
[liuguiyou@localhost ~]$ blastall -p blastn -i
/home/liuguiyou/Landsberg_Arabidopsis/Cereon_Ath_Ler.fasta -d
/home/liuguiyou/Landsberg_Arabidopsis/ncbi_arab2.fna -e 1e-10 -o
/home/liuguiyou/Landsberg_Arabidopsis/result
假设:
你安装的blast路径为
/opt/blast/
1、把BLAST的压缩文件解压,然后将bin目录下的文件拷贝至/usr/local/bin下;
---
目的:所有用户,不管其当前路径是什么,均可以在命令行下直接调用blast包中的程序,而无需指定该程序的路径
解释:系统的PATH环境变量中包含/usr/local/bin,在命令行下调用blast包中的程序时,系统会去/usr/local/bin路径下寻找相应的命令程序
建议:简单起见,你可以略过这一步,除非你希望当使用其他用户登录后,也可以直接输入程序名来使用你安装的blast
2、制作软链接,将解压后的文件中bin目录链接至/home/username下,eg:ln
-s
/home/username/blast/bin;
---
目的:为第3步所做的准备工作
建议:简单起见,你可以略过这一步
3、在当前用户目录下,编辑bashrc文件,在文件中加入export
PATH=/home/username/bin/=$PATH;
---
纠正:这里有一些笔误,应当是编辑.bashrc文件,并在文件中加入export
PATH=/home/username/bin/:$PATH;
目的:当前用户登录后,可以直接输入程序名来使用blast
建议:简单起见,你可以略过这一步
4、在当前目录下,将数据文件格式化,$formatdb
-i filename.后缀 -p F -o T
---
执行:
T
5、将待进行blast的文件转化为test.txt文件,拷贝文件内容如下:
>test....
ACGTCAGTCGATCGAT.....
---
这个没什么好说的,改个文件名
6、进行比对
$blastall
-p blastn -d filename.后缀 -i test.txt -o test.out
---
执行:
test.out
补充说明:
1.运行建库程序formatdb:
建库的过程是建立目标序列的索引文件,所用程序是formatdb。程序允许的输入格式FASTA或者ASN.1格式,通常我们使用FASTA格式的序列作为输入。用于建库的FASTA序列是db.seq,formatdb的基本命令是:
formatdb -i db.seq [-options]
常用的参数有以下几个:
-p (T/F):-p参数的意义是选择建库的类型,"T"表示蛋白库,"F"表示核酸库。缺省值为"T"。
-o (T/F):-o参数的意义是判断是否分析序列名并建立序列名索引。"T"表示建立序列名索引,"F"表示不建立序列名索引。缺省值为"F"。
程序输出:
如果建立的是核酸库,输出为db.seq.nhr、db.seq.nin、db.seq.nsq,如果选择了参数"-o
T",还会同时输出db.seq.nsd、db.seq.nsi、db.seq.nni、db.seq.nnd。
蛋白库和核酸库的输出类似,相应的输出文件为:db.seq.phr、db.seq.pin、db.seq.psq和db.seq.psd、db.seq.psi、db.seq.pni、db.seq.pnd。
除了这些结果,程序还会输出LOG文件(默认为formatdb.log),里面记录了运行时间、版本号、序列数量等信息。
2.运行比对程序blastall:
Blast的主程序是blastall。程序的输入文件是query序列(-i 参数)和库文件(-d 参数),比对类型的选择(-p 参数)和输出文件(-o
参数)由用户指定。其中“-p”参数有5种取值:
-p blastp:蛋白序列与蛋白库做比对。
-p blastx:核酸序列对蛋白库的比对。
-p blastn:核酸序列对核酸库的比对。
-p tblastn:蛋白序列对核酸库的比对。
-p tblastx:核酸序列对核酸库在蛋白级别的比对
blastall是最常用的blast程序之一,其功能非常强大,其下面有非常多的参数,但是一般使用的参数如:-p、-i、-d、-o、-e等几个。
3.运行参数说明:
- -p: 执行的程序名称
- -d: 搜索的数据库名称
- -i : 要查询的序列文件名(Query File)
- -e:(数学)期望值(Expectation value),E值是个统计阈值,缺省值10,
意指比对结果中由于随机偶然性产生的匹配结果不大于10,E值越小结果越可靠。 - -o :查询结果输出文件名
- -m: 比对结果显示格式选项,缺省值为0 ,即pairwise格式。另外还可以根据不同的需要选择1~6等不同的格式。
- -I :在描述行中显示gi号[T/F],缺省值F
- -v :单行描述(one-line description)的最大数目,缺省值500
- -b :显示的比对结果的最大数目,缺省值250
- -F :对于要查询的序列做低复杂度区域(low complexity regions,
LCR)的过滤[T/F],缺省值T。对blastn用的是DUST程序,其他比对用的是SEG程序。 - 所谓“低复杂度区域”是指某些或一些残基过多表现,短周期重复等。对于高等哺乳动物的基因组序列,可以先用RepeatMask程序遮蔽重复元件。在输出结果中,对LCR区的序列核酸用“N”代替,蛋白质序列用“X”代替。
- -a:运行BLAST程序所使用的处理器的数目,缺省值1
- -S:在数据库中搜索时所使用的核酸链(strand),只对blastn、blastx和tblastx有效;1表示top,2表示bottom,3表示both;缺省值3
- -T: 产生HTML格式的输出[T/F],缺省值F
- -n: 使用MegaBlast搜索[T/F],缺省值F
- -G: 打开一个gap的罚分(0表示使用缺省设置值),默认0
- -E: 扩展一个gap的罚分(0表示使用缺省设置值),默认0
- -q: 一个核酸碱基的错配(mismatch)的罚分(只对blastn有效),缺省值-3
- -r : 一个核酸碱基的正确匹配(match)的奖分(只对blastn有效),缺省值1
- -M: 所使用的打分矩阵,缺省值BLOSUM62
4.输出结果参数说明:
-m: 比对结果显示格式选项
0 = pairwise,1 = query-anchored showing
identities,2 = query-anchored no identities,
3 = flat query-anchored, show identities,
4 = flat 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
-m
8:列表格式的比对结果。从左到右各列的意义依次是:query名、subject名、identity、比对长度、错配数、空位数、query比对起始坐标、query比对终止坐标、subject比对起始坐标、subject比对终止坐标、期望值、比对得分。
query1 sub24 91.11
45 3
1 198
241 502208 502252 2.7e-06 50.05
query1 sub21 98.68
151 2
0 532
682 1360665 1360515 1.0e-76 284.0
query1 sub21 86.17
94 12
1 198
290 479232 479139 4.8e-14 75.82
query1 sub21 87.04
54 7
0 238
291 1297867 1297920 6.9e-07 52.03
query2 sub21 99.44
892 3
2 28
918 1351055 1350165
0.0 1713.2
query2 sub21 87.58
153 17 1
343 495 1358110 1357960 2.1e-35
147.2
query2 sub21 84.11
107 16 1
699 805 1305723 1305618 4.0e-12
69.88
query2 sub21 89.58
48 5
0 519
566 1305968 1305921 6.0e-08 56.00
query2 sub14 88.24
153 16 1
343 495 145402
145252 8.7e-38 155.1
query2 sub24 88.08
151 16 1
345 495 567561
567709 1.4e-36 151.2
query2 sub24 87.80
123 14 1
686 808 563341
563220 1.9e-26 117.5
在m8格式中通过subject的比对起止位置可以判断出序列的比对方向。比如上述结果中第1行,subject的起始坐标小于终止坐标,则两条序列是同方向比对上的;第2行中subject起始坐标大于终止坐标,则query序列是和subject的互补链比上的。
-m 9:带注释行的列表格式。格式和-m 8一样,只是在每个query的比对结果前面加了注释行用以说明列表中各列的意义。
# BLASTN 2.2.8 [Jan-05-2004]
# Query: query1 out.ace.1
# Database: database.seq
# Fields: Query id, Subject id, % identity, alignment length, mismatches, gap
openings, q. start, q. end, s. start, s. end, e-value, bit score
query1 sub24 91.11
45 3
1 198
241 502208 502252 2.7e-06 50.05
query1 sub21 98.68
151 2 0
532
682 1360665 1360515 1.0e-76 284.0
query1 sub21 86.17
94 12
1 198
290 479232 479139 4.8e-14 75.82
query1 sub21 87.04
54 7
0 238
291 1297867 1297920 6.9e-07 52.03
# BLASTN 2.2.8 [Jan-05-2004]
# Query: query1 out.ace.1
# Database: database.seq
# Fields: Query id, Subject id, % identity, alignment length, mismatches, gap
openings, q. start, q. end, s. start, s. end, e-value, bit score
query2 sub21 99.44
892 3
2 28
918 1351055 1350165
0.0 1713.2
query2 sub21 87.58
153 17 1
343 495 1358110 1357960 2.1e-35
147.2
query2 sub21 84.11
107 16 1
699 805 1305723 1305618 4.0e-12
69.88
query2 sub21 89.58
48 5
0 519
566 1305968 1305921 6.0e-08 56.00
query2 sub14 88.24
153 16 1
343 495 145402
145252 8.7e-38 155.1
query2 sub24 88.08
151 16 1
345 495 567561
567709 1.4e-36 151.2
query2 sub24 87.80
123 14 1
686 808 563341
563220 1.9e-26 117.5
-m 10和11:分别是ASN格式的文本文件和二进制文件,这里就不做介绍了。
“-m”参数的值从1到6都是为了便于在subjects之间做比较而设立的功能;8和9保留了所有比对结果的原貌,只是统计成了列表的格式,从而大幅度降低了存储空间的消耗,并使结果更加清晰易读。但是m8/m9格式也有相应的缺点,就是损失了一部分比对信息,除了序列长度信息和比对条形图以外,还会在
blastx、tblastn和tblastx的比对中损失关键的相位信息,这是要尽量避免的。因此在大规模的blastn比对任务中,往往要采用m8格式的输出结果来节省空间;而在小规模高精度比对中,通常用默认的输出格式,再用其他程序来提取结果中的有用信息。
转自:http://blog.sina.com.cn/s/blog_4af3f0d20100ene9.html
Linux下BLAST的使用---转载的更多相关文章
- Linux下Setuid命令! 转载
Linux下Setuid命令! 转载 在Linux系统中每个普通用户都可以更改自己的密码,这是合理的设置. 问题是:用户的信息保存在文件/etc/passwd中,用户的密码保存在文件/etc/sha ...
- Linux下BLAST+的本地化(BLAST 2.2.29+)
链接:http://blog.sciencenet.cn/home.php?mod=space&uid=830496&do=blog&quickforward=1&id ...
- linux下快速查找文件(转载)
权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xxmonstor/article/deta ...
- linux下安装jdk(转载)
http://blog.csdn.net/hzqnju/article/details/6779556 http://blog.csdn.net/gxy3509394/article/details/ ...
- linux下sh语法(转载)
介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序. 在这个例子中我们使用/bin/sh来执行程序. 当编写 ...
- linux下文件权限更改(转载)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_33571752/article/d ...
- Linux下Awk详解(转载)
什么是Awk Awk是一种小巧的编程语言及命令行工具.(其名称得自于它的创始人Alfred Aho.Peter Weinberger 和 Brian Kernighan姓氏的首个字母).它非常适合服务 ...
- Linux 下的 fork()【转载】
[原文地址]http://blog.csdn.net/hikaliv/article/details/4276758 [cpp] view plaincopy for( i = 0; i < ...
- linux 下的信号量参数
linux 下的信号量参数 转载自:http://blog.itpub.net/26110315/viewspace-718306/ 信号量是一种锁机制用于协调进程之间互斥的访问临界资源.以确保某种共 ...
随机推荐
- Unity3D项目之 Survival Shooter 记录
1.导入资源 2.把预设文件的环境拖到场景中, 3.位置归0 4.保存场景 5.删除默认灯光,把预设灯光拖到场景中,位置归0 6.新建一个 Quad 7.旋转90度,设置缩放100,100,1 重命名 ...
- linux -- ubuntuserver 安装图形界面
安装Gnome桌面 1.安装全部桌面环境,其实Ubuntu系列桌面实际上有几种桌面应用程序,包括Ubuntu-desktop.Kubunut-desktop和Xubuntu- desktop. 我们就 ...
- 【BZOJ】1691: [Usaco2007 Dec]挑剔的美食家(set+贪心)
http://www.lydsy.com/JudgeOnline/problem.php?id=1691 懒得打平衡树了.... 而且multiset是很快的... 排到了rank1 T_T 贪心就是 ...
- Spark源代码阅读笔记之MetadataCleaner
MetadataCleaner执行定时任务周期性的清理元数据(metadata),有6种类型的元数据:MAP_OUTPUT_TRACKER.executor跟踪各个map任务输出的存储位置的数据,依据 ...
- ios开发之--UIWebView全属性
最近的项目当中需要用到html和ios的交互,所以就凑空整理一下,所有webView相关的方法和属性,如有不对的地方,请大家不吝指教! 代码如下: 1,创建webview并设置代理 UIWebView ...
- Spring源码从开始到放弃(一)
参考<Spring技术内幕>分析. github上面有spring的源码(https://github.com/spring-projects/spring-framework) spri ...
- Mybatis整理系列(01)————传入参数方式以及#{}与${}的区别
一.在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和 ...
- std::condition_variable
/* std::condition_variable 提供了两种 wait() 函数.当前线程调用 wait() 后将被阻塞(此时当前线程应该获得了锁(mutex),不妨设获得锁 lck),直到另外某 ...
- U盘插入拔出提示
Unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants, classes, Graphics, Controls, Forms ...
- hdu4525
可以发现天的操作相当于*(k1+k2) 然后就很好判断了. 威威猫系列故事——吃鸡腿 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 6 ...