![0f60ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/0f60ad9e-920a-eb11-8da9-e4434bdf6706.png)
实操|Linux系统中使用NCBI BLAST+mp.weixin.qq.com![1060ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/1060ad9e-920a-eb11-8da9-e4434bdf6706.png)
全基因组基因家族成员鉴定与分析中,第一步就需要通过数据库检索进而鉴定成员,基于此方可进行诸如构建进化树、保守domain和motif分析、基因结构分析等一系列生物信息学预测分析以及转录组或荧光定量表达分析;微生物测序数据分析中,也常常需要对未知的核酸或蛋白质序列与标准数据库进行相似性检索,从而进行物种注释;以上这两个过程均属于序列同源性比对的应用。序列比对应该是评估序列相似性的最简单方法,而序列间的相似度越高,它们是同源序列的可能性就越高。在序列比对检测中,优先使用的分析工具无疑是BLAST(Basic Local Alignment Search Tool),自1990年走上舞台以来,因其从各大数据库获取信息的能力迅速走红,根据序列大小可以进行web BLAST,也可在服务器进行较大数据的比对。
这个教程本文面向初学者(最好还是懂得基本的linux使用,Linux中BLAST效率更高),其目标是在了解应用BLAST分析的同时,引导大家完成命令行的演示。下面的所有命令都可以Ctrl+c/v进linux终端。
BLAST+下载安装
提供两种方法
#下载&解压预编译版本,若不能联网可用win下载后传输进服务器
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.10.0/ncbi-blast-2.9.0+-x64-linux.tar.gz
tar -zxvf ncbi-blast-2.10.0+-x64-linux.tar.gz
压缩后就可以通过绝对路径直接使用,这是一个很好的习惯。当然也可以为了今后的方便,将BLAST+可执行程序所在目录(bin)的绝对路径加入到环境变量$PATH中,通过程序名直接调用。
#查看软件当前位置,建议有一个专门存放软件的文件夹
#获取当前目录的绝对路径$# 查看当前目录的内容#进入bin文件 如图
#bin的绝对路径加入到环境变量$PATH中
echo "export PATH=/home/zukunft/biosoft/blast+/ncbi-blast-2.2.31+/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
第二种
sudo apt-get update && sudo apt-get -y install python3 ncbi-blast+
#这将更新软件列表并安装Python3和NCBI BLAST+。
数据下载
我们从NCBI中获取老鼠和斑马鱼蛋白参考序列(RefSeq),并将它们放在我们的工作目录中。 现在,我们将使用curl下载以下几个文件:
(查看NCBI的源文件,非使用下载所用)
![1160ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/1160ad9e-920a-eb11-8da9-e4434bdf6706.png)
![1360ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/1360ad9e-920a-eb11-8da9-e4434bdf6706.png)
curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.1.protein.faa.gz
curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.2.protein.faa.gz
curl -O ftp://ftp.ncbi.nih.gov/refseq/D_rerio/mRNA_Prot/zebrafish.1.protein.faa.gz
#解压
gunzip mouse.1.protein.faa.gz
gunzip mouse.2.protein.faa.gz
gunzip zebrafish.1.protein.faa.gz
ls -l
#如果查看当前目录中的文件,应该会看到6个文件
![1460ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/1460ad9e-920a-eb11-8da9-e4434bdf6706.png)
使用head命令,让我们看看文件中的前几个序列:
head mouse.1.protein.faa
![1660ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/1660ad9e-920a-eb11-8da9-e4434bdf6706.png)
老鼠文件前2个序列
![1960ad9e-920a-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/1960ad9e-920a-eb11-8da9-e4434bdf6706.png)
斑马鱼:文件前2个序列
NP表示蛋白产物;主要是全长转录氨基酸序列,但也有一些只有部分蛋白质的部分氨基酸序列。
这些是FASTA格式的蛋白质序列。FASTA格式是很多人都见过的一种格式,它非常普遍。这是一个文本文件,其中包含记录;每条记录均以“>”开头,然后包含一行或多行序列文本。
让我们将前两个序列(YP_220550.1 & YP_220551.1)保存到一个文件中。我们将使用”>“实现输出重定向,它表示将所有输出都放到这个文件中。
head -11 mouse.1.protein.faa > mm-first.fa
现在,你可以使用以下两个命令行来查看这个文件的内容:
cat mm-first.fa
#或
less mm-first.fa
准备好了数据,接下来让我们将这两个序列与整个斑马鱼蛋白序列做对比
#格式化数据库 建库
#首先,我们需要告诉BLAST,斑马鱼的序列是一个数据库,其次是一个蛋白质数据库。这是通过调用“makeblastdb”完成的:
makeblastdb -in zebrafish.1.protein.faa -dbtype prot -parse_seqids
ls -l
#参数说明:
#-in:待格式化的序列文件
#-dbtype:数据库类型,prot或nucl
#-parse_seqids:解析序列标识(建议加上)
#blast+比对
blastp -query mm-first.fa -db zebrafish.1.protein.faa -out mm-first.x.zebrafish.txt
#参数说明:
#-query:输入文件路径及文件名
#-out:输出文件路径及文件名
#-db:格式化了的数据库路径及数据库名
less mm-first.x.zebrafish.txt
让我们做更长的序列(这个需要更长的运行时间)
head -500 mouse.1.protein.faa > mm-second.fa
blastp -query mm-second.fa -db zebrafish.1.protein.faa -out mm-second.x.zebrafish.txt
#比较前83个序列(前500行),可以查看输出文件
less mm-second.x.zebrafish.txt
关于Blast+
blast+是blast的升级,将blastn,blastx等程序与blastall命令分隔开来,对各个命令的参数定制更为方便。
blast+也是格式化数据库和比对搜索两步,但命令不同。
更多参数 :
makeblastdb -help
blastp -help