写在前面
这一篇教程写于很久之前,那时候才刚开始学着记录下自己的学习过程,今天将其正式贴出来,供自己也供读者参考。
Blast的安装
- 说明:BLAST工具是由NCBI所提供。
以下摘自NCBI官网
BLAST (Basic Local Alignment Search Tool) finds regions of similarity between biological sequences. The program compares nucleotide or protein sequences to sequence databases and calculates the statistical significance.
功能:BLAST 是一套在蛋白质数据库或DNA数据库中进行相似性比较的分析工具。[BLAST]程序能迅速与公开数据库进行相似性序列比较。BLAST结果中的得分是对一种对相似性的统计说明。
下载地址:
ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/
旧地址已失效,新链接为 ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.10.1+-x64-linux.tar.gz
- 具体安装:
wget ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.10.1+-x64-linux.tar.gz
tar -zxvf ncbi-blast-2.7.1+-x64-linux.tar.gz ‘解压’
mv ncbi-blast-2.7.1+-x64-linux.tar.gz blast ‘改名’
可以通过绝对路径来直接使用BLAST的相关命令,但为了使用方便,还需要进一步配置。将BLAST+可执行目录(bin)的绝对路径加入到环境变量PATH中,方便直接通过命令名进行调用。主要有两种方法:
方法一:
执行以下命令
PATH=$PATH:/usr/local/BLAST/blast/bin
或
PATH="PATH":/usr/local/BLAST/blast/bin
或
PATH=${PATH}:/usr/local/BLAST/blast/bin
这种方法只在当前终端生效,退出重新进入终端后就无法使用,要想永久生效,参见方法二。
方法二:
编辑~/.bashrc文件,在最后加上:
export PATH=/usr/local/BLAST/blast/bin:$PATH
如果不会使用vi/vim等编辑器,可直接运行下列一行命令,将上述内容添加到~/.bashrc文件
echo "export PATH=/usr/local/BLAST/blast/bin:\$PATH" >> ~/.bashrc
最后,重启终端或执行以下命令让配置生效:
source ~/.bashrc
需要注意的是如果你只想在普通用户身份下使用BLAST的相关命令,那需在普通用户身份下执行上述命令,因为root和一般用户的PATH变量的内容不一样。
配置本地Blast库
BLAST分为在线和本地两种,你可以直接在NCBI网站上在线使用BLAST进行相关分析,也可以在本地进行分析。当需要进行大量对比的时候,将BLAST数据库本地化能极大提高效率。下面以一个具体例子讲一下配置本地BLAST库的方法。
BLAST数据库分为两类,核酸数据库和氨基酸数据库,可以用makeblastbd创建
执行help参数简单看下说明(help说明中可以看到该命令所支持的文件格式)
从数据库网站上下载长瓜两个品种的核酸数据库
wget ftp://cucurbitgenomics.org/pub/cucurbit/genome/cucumber/Chinese_long/v2/cucumber_ChineseLong_v2_genome.fa.gz
wget ftp://cucurbitgenomics.org/pub/cucurbit/genome/cucumber/Gy14/V2/ Gy14_v2.cds.fa.gz
解压
gzip -d cucumber_ChineseLong_v2_genome.fa.gz
gzip -d Gy14_v2.cds.fa.gz
构建数据库
makeblastdb -in cucumber_ChineseLong_v2_genome.fa -dbtype nucl -out cucumber -parse_seqids
makeblastdb -in Gy14_v2.cds.fa -dbtype nucl -out Gy14 -parse_seqids
需要注意的是设置-parse_seqids
参数时,建库时会对输入fasta文件的序列ID进行检查,注意不要有空格,不然会报错。
到此,本地数据库就已经建好了。下面来尝试进行比对
echo '>test' > query.fa
echo TGAAAGCAAGAAGAGCGTTTGGTGGTTTCTTAACAAATCATTGCAACTCCACAAGGCGCCTGTAATAGACAGCTTGTGCATGGAACTTGGTCCACAGTGCCCTACCACTGATGATGTTGATATCGGAAAGTGGGTTGCAAAAGCTGTTGATTGTTTGGTGATGACGCTAACAATCAAGCTCCTCTGGT >> query.fa
用blastn检索核酸数据库。最简单的方法就是提供数据库所在位置和需要检索的序列文件。
blastn -db cucumber -query querry.fa -out test.blastn@cucumber.nsn -evalue 1e-2
这样,序列比对的结果就会存储在 test.blastn@cucumber.nsn 这个文件中。