BLAST采用了一种局部序列比对的算法分析两个序列中的相似区域,并计算统计显著性。主要包括四大类:
1. Nucleotide BLAST
blastn: 将待查询的核酸序列及其互补序列放到核酸库中的一种查询,库中存在的每条已知序列都将同所查序列作一对一的核酸序列比对
2. Protein BLAST
blastp: 蛋白序列到蛋白库中进行查询,库中存在的每条已知序列将逐一地同每条所查序列作一对一的序列比对
3. BLASTX
核酸序列到蛋白库中进行查询:先将待查询的核酸序列按六种可读框架(逐个向前三个碱基和逐个向后三个碱基读码)翻译成蛋白质序列,再去蛋白库对翻译成的每一条序列作一对一的蛋白序列比对
4. TBLASTN
蛋白序列到核酸库查询:先将核酸序列数据库中的核酸序列按六种可读框架翻译成蛋白质序列,然后将待测蛋白序列再与翻译后的核算数据库比对
在线比对
本地比对
一、下载blast+软件
ftp://ftp.ncbi.nlm.nih.gov/blast/executables/LATEST/ncbi-blast-2.7.1+-x64-linux.tar.gz
二、下载nt、nr库(300G+)
使用blast+ 自带的update_blastdb.pl 直接运行【优点:简单、日后升级数据库方便;缺点:速度慢,容易卡死】;
wget手动下载,地址ftp://ftp.ncbi.nih.gov/blast/db 【优点:速度快,可断点续传;缺点:日后更新的话需要再次下载】
三、配置本地.ncbirc文件
# 意思就是指引blast程序去哪里寻找你的数据库
; Start the section for BLAST configuration
[BLAST]
; Specifies the path where BLAST databases are installed
BLASTDB=/home/ncbi/blast/db_nt
; Specifies the data sources to use for automatic resolution
; for sequence identifiers
DATA_LOADERS=blastdb
; Specifies the BLAST database to use resolve protein sequences
BLASTDB_PROT_DATA_LOADER=/home/ncbi/blast/db_nr/nr
; Specifies the BLAST database to use resolve protein sequences
BLASTDB_NUCL_DATA_LOADER=/home/ncbi/blast/db_nt/nt
; Specifies the BLAST database to use resolve protein sequences
BLASTDB_NUCL_DATA_LOADER=/home/ncbi/blast/mydb
BATCH_SIZE=10G
; Windowmasker settings
[WINDOW_MASKER]
WINDOW_MASKER_PATH=//home/ncbi/blast
; end of file
四、转换数据格式
cat *.fasta > all_std.fasta
五、运行
blast+提供了5个程序
blastn | 进行完全匹配的传统blast |
---|---|
blastn-short | 查询短于50个碱基的 |
megablast | :查询十分相似序列(如物种内或者有关物种): |
dc-megeblast | :查询关系较远的序列(如物种间): |
rmblastn | :兼容RepeatMasker: |
blastn -query all_std.fasta -db nt -outfmt 11 -out "all_std_fm11.blastn@nt.asn" -evalue 1e-5 -perc_identity 99 -num_alignments 10 -num_threads 10
-query: 要比对的序列
-db:比对的数据库
-outfmt:输出格式(共11种)
# 建议先使用-outfmt 11格式,之后可以任意转换成1-10格式【具体格式信息命令行输入blastn -h outfmt】
# 默认是格式0,比较常用的是5、6、7,其中7是带有注释的表格形式
-out: 输出文件名(可以自定义)
-evalue:输出结果的e-value值,一般1e-5
-perc_identity:比对的最低相似度
-num_alignments:输出比对上的数目(默认200),不过一般几百条序列,每一条比对结果有200个,那也看不完,所以这里可以设置前10条
-num_threads:线程数
设置输出格式为11后的格式转换:
blast_formatter -archive "all_std_fm11.blastn@nt.asn" -outfmt "7" > "new_all_std_fm7.blastn@nt.asn"
六、查看结果
来源:刘小泽