linux学习同源基因检测🐷✍

本地化的NCBI BLAST+的安装及使用

2019-11-24  本文已影响0人  bcl_hx

在生物信息学,BLAST(基本的局部比对搜索工具)是一种算法,用于比较生物的序列信息,诸如蛋白质的氨基酸序列、DNA或RNA核苷酸序列。BLAST搜索使研究人员能够将一个目标蛋白或核苷酸序列(称为查询)与一个数据库进行比较,并识别某个特定阈值以上的与目标序列相似的库序列。在线的BLAST功能只需要将序列输入,然后BLAST,最后会给出相似的库序列(按照同源性高低排列)。在线BLAST明显存在两个缺陷:1.目标序列BLAST后的得到的库序列是多个物种的,如果我们只是要特定物种的话,还需要再自己找。2.如果目标序列有很多,则需要执行很多次,效率低。而本地化的BLAST+能很好的解决上面两个问题。

1.BLAST+的下载与安装

BLAST+下载地址: ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/

针对不同的平台(linux,mac,windows)选择性的进行安装,如图一。
下面以mac为例进行介绍:

1.下载:ncbi-blast-2.9.0+-x64-macosx.tar.gz
2.下载完成后,进行解压缩。
3.打开终端,输入以下代码:
#将目标地址设为环境变量
open ~/.bash_profile       #打开环境变量配置窗口。
在弹出的窗口中输入如下:
export PATH=$PATH:/Users/bcl/Desktop/software_plugin/ncbi-blast-2.9.0+/bin    #将blast文件夹中的bin地址设为环境变量。
#验证是否成功配置为环境变量
blastn                    #出现图二说明OK。
图一 图二

2.BLAST+的使用

下面以一个实例来说明怎么使用。比如说你想把番茄的一部分序列对应到桃基因组数据库中,并按照同源性高低得到与目标序列相似的库序列(根据不同的筛选标准,得到的序列条数会不一样),应该怎么做呢?

2.1 序列的下载

首先你得从相应的网站下载番茄一部分序列(因为我们以blastp为例,所以只下载了它的蛋白序列),以及下载得到桃的基因组文件(只用其中的蛋白序列)。下载得到的文件放在一个文件夹中。

2.2 库的构建

利用下载得到的桃的基因组文件进行构建蛋白库。在终端中输入如下代码:

cd /Users/bcl/Desktop/blastp        #cd到存放文件的地址。
makeblastdb -in Prunus_persica_v2.0.a1.allTrs.pep.fa -dbtype prot  
#下面为注释:
-in:代表用来构库的基因组文件的地址和文件名
-dbtype:代表构建的是什么库,prot代表蛋白库。

构建成功会出现图三以及文件夹中会多出三个文件(图四)。


图三 图四

2.3 目标序列与库序列进行比对

终端下输入如下代码:

blastp -help     #查看帮助文档
blastp -query JA_regulated_genes.fasta -db Prunus_persica_v2.0.a1.allTrs.pep.fa -out JA_regulated_genes_blastp.txt -evalue 1e-5 -outfmt 6        
#下面为注释。
-query:代表的是要进行blastp的番茄一部分序列文件
-db:为前面用于建库桃的的基因组文件
-out:为输出文件的文件名
-evalue:为筛选标准(evalue越低,相似性越高)
-outfmt:输出文件格式,6代表表格形式。

输出的结果按照同源性从高到低排列(目标序列与库序列进行同源比对时根据evalue筛选出来的可能不止一个),那么如何选出每个最匹配的呢?


图5

3.R studio中提取输出文件中同源性最高的序列

打开R studio,输入以下代码,即可实现。

#读取文件
txt <- read.csv('/Users/bcl/Desktop/blastp/JA_regulated_genes_blastp.txt',header=FALSE,sep='\t',encoding='UTF-8')   #第一个参数为上一步比对后生成文件的地址和文件名,后面的参数不需要做调整。
#构建一个布尔向量,索引。
index<- duplicated(txt$V1) #duplicated()在数据框函数中应用广泛
index
#筛选数据(两种)
            #method1
txt<-txt[which(index==FALSE),]  #选择非重复数据
txt
            #method2
txt<-txt[!index,]                              #选择非重复数据
txt
#数据写入到txt中,把行名和列名设为flase,并去掉引号
write.table(txt,file='/Users/bcl/Desktop/blastp/JA_regulated_genes_select.txt',row.names=FALSE,col.names = FALSE,quote=F)    #第二个参数与读取的时候同

下图为经过选择后的文件可发现已提取出同源性最高的序列。


图6

本文由博客一文多发平台 OpenWrite 发布!

上一篇下一篇

猜你喜欢

热点阅读