Prologue
BLAST: Basic Local Alignment Search Tool
BLASTn:核酸序列比对核酸数据库
BLASTx:核酸序列比对蛋白数据库
BLASTp:蛋白序列比对蛋白数据库
建库并比对
1.一对一(一条序列比对一个库)
建库:
$ makeblastdb -in yourdbseq.fasta -dbtype nucl/prot -title yourdbname -parse_seqids -out dbname -logfile
[此命令输入完成后,获得6个文件,其扩展名分别是.nhr/ .nin/ .nog/ .nsd/ .nsi/ nsq和两个日志文件,其中一个扩展名为.perf,0kb]
比对:
blastn -query seq.fasta -db dbname -out align.txt -outfmt 6 -evalue 1e-5 -perc_identity 80(1-100) -num_threads 2(线程数,笔记本设了2)
[此命令完成后,输出一个指定格式的比对后的文件]
2.一对多,多对一,多对多
命令都是一样的,只是前期需要把多条序列整合到一个fasta文件中。
Windows:type *.txt/fasta >> new.txt/fasta
Linux: cat *.fasta > merge.fasta
3.合并已建好的库
已经构建好两个单独的库,db1和db3,分别由一条序列建的库和三条序列建的库。
$ blastdb_aliastool -dblist "db1 db3" -dbtype nucl -out db4 -title "4_seq"
生成新文件为 db4.nal
再进行比对看一下:
[此处图片上传失败。。]
可以看到,db1和db3合并在了一起,并且,每个库所构建时用了什么序列都可以清楚看到,还注意到的一点是,虽然两个库里有相同的序列,但是在合并库文件时并不会将相同序列合并。