利用Blast比对基因

#建库
#全称Basic Local Alignment Search Tool,即"基于局部比对算法的搜索工具"
#Blast的运行方式是先用目标序列建数据库(这种数据库称为database,里面的每一条序列称为subject),然后用待查的序列(称为query)在database中搜索,每一条query与database中的每一条subject都要进行双序列比对,从而得出全部比对结果。
#Blast是一个集成的程序包,通过调用不同的比对模块,blast实现了五种可能的序列比对方式:
#blastp:蛋白序列与蛋白库做比对,直接比对蛋白序列的同源性。
#blastx:核酸序列对蛋白库的比对,先将核酸序列翻译成蛋白序列(根据相位可以翻译为6种可能的蛋白序列),然后再与蛋白库做比对。
#blastn:核酸序列对核酸库的比对,直接比较核酸序列的同源性。
#tblastn:蛋白序列对核酸库的比对,将库中的核酸翻译成蛋白序列,然后进行比对。
#tblastx:核酸序列对核酸库在蛋白级别的比对,将库和待查序列都翻译成蛋白序列,然后对蛋白序列进行比对。
老版本的blast

#mkdir blastwork
#makeblastdb -in genome.fa -dbtype nucl -out dbname

#makeblastdb -in Arabidopsis_thaliana.TAIR10.dna.toplevel.fa -dbtype nucl -out TAIR10

#blastn -query Ara_SRPK4.fasta -dbname TAIR10 -outfmt 0 -out test.txt -num_threads 8

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),里面记录了运行时间、版本号、序列数量等信息。

#位置在 /home/yinglu/hanshuang/blastwork/Takifugu/2_takifugu_ensembl/blastwork
核酸库:

nohup formatdb -i …/Takifugu_rubripes.FUGU5.dna.toplevel.fa -p F -o T &

蛋白库:
nohup formatdb -i Takifugu_rubripes.FUGU5.pep.all.fa -p T -o T &

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

#核酸序列对核酸库的比对 test.txt为gene:dusp1核算序列
nohup blastall -p blastn -d Takifugu_rubripes.FUGU5.dna.toplevel.fa -i test.txt -o test.out &

#蛋白序列与蛋白库做比对test2.txt为gene:dusp1蛋白序列
nohup blastall -p blastp -d Takifugu_rubripes.FUGU5.pep.all.fa -i test2.txt -o test2.out &

#核酸序列对蛋白库的比对
nohup blastall -p blastx -d Takifugu_rubripes.FUGU5.pep.all.fa -i test.txt -o test3.out &

#蛋白序列对核酸库的比对。
nohup blastall -p tblastn -d Takifugu_rubripes.FUGU5.dna.toplevel.fa -i test2.txt -o test4.out &

#-p tblastx:核酸序列对核酸库在蛋白级别的比对
nohup blastall -p tblastx -d Takifugu_rubripes.FUGU5.dna.toplevel.fa -i test.txt -o test5.out &

NR库就是蛋白库,blastx就是用来将核酸序列比对到蛋白库上的。
NT就是核酸库

你可能感兴趣的:(blast)