我们实验室主要是研究拟南芥的,因此要经常进tair网站,但是有时进的比较慢或者完全打不开,而NCBI也比较慢,所以我想建立一个本地的可视化的blast网站,以viroBlast为基础运行的。
下载安装依赖软件
sudo apt install apache2 libapache2-mod-php php php-gd
下载viroBlast软件
viroBlast软件对于学术研究是免费的,所以可以通过学术邮箱来得到下载链接
进入申请页面后填写信息就可以了,几分钟后邮箱会有两个邮件,有个邮件就是下载软件的链接,我的链接是
http://indra.mullins.microbiol.washington.edu/viroblast/download.php?ID=viroblast.tar.gz
安装viroBlast
gzip -d viroblast-2.6+.tar.gz
tar -xvpf viroblast-2.6+.tar
mv viroblast/ /var/www/html/
此时,已经基本上完成了,在浏览器中打开链接:http://your_hostname/viroblast/viroblast.php,your_hostname换为服务器的ip。
构建数据库
这里我以拟南芥的为例:
- 下载基因组和cDNA的fasta序列
wget -c ftp://ftp.ensemblgenomes.org/pub/plants/release-45/fasta/arabidopsis_thaliana/dna/Arabidopsis_thaliana.TAIR10.dna.toplevel.fa.gz
wget -c ftp://ftp.ensemblgenomes.org/pub/plants/release-45/fasta/arabidopsis_thaliana/cdna/Arabidopsis_thaliana.TAIR10.cdna.all.fa.gz
- 解压以后将文件移到目录/var/www/html/viroblast/db/nucleotide/下,然后使用makeblast命令构建数据库
makeblastdb -dbtype nucl -in Arabidopsis_thaliana.TAIR10.dna.toplevel.fa -input_type fasta -parse_seqids -out Arabidopsis_10_genome_dna
makeblastdb -in Arabidopsis_thaliana.TAIR10.cdna.all.fa -input_type fasta -dbtype nucl -parse_seqids -out Arabidopsis_cdna
- 修改配置文件,配置文件在/var/www/html/viroblast/目录下,vim viroblast.ini,在blastn后面添加一下信息
blastn: test_na_db => Nucleotide test database, Arabidopsis_10_genome_dna => Arabidopsis genome database, Arabidopsis_cdna => Arabidopsis gene database #如果有多个数据库的话可以使用‘,’来分隔
保存之后再刷新一下之前的页面会发现数据库已经添加进去了
现在就可以开心的在本地进行blast了。
局外
- viroblast目录下各个文件的介绍
- viroblast.php: viroblast的主页面
- blastresult.php: blast结果输出页面
- blast.pl: perl程序执行blast+并把结果输出
- sequence.php:显示结果并提供下载
- download.php: 下载页面
- viroblast.ini: viroblast程序的配置文件
这个配置文件有两个重点,一个是blast的路径,一个是数据库的名字
关于数据库有个小插曲,当我看到有测试文件时,我直接将他们给删除了,这导致在页面上blast是一直报错,提示BLAST Database error: No alias or index file found for nucleotide database,当我把他们加上时恢复正常,可能是因为删除后需要修改的地方没有修改完,这个小问题以后遇到再说吧,不知道有没有以后了- blast的路径可以使用自己安装的目录,也可以使用程序带的
- 关于数据库的格式,简单说一下。格式是
可选的program有blastn,blastp,blastx,xblastn,xblastx;<program>: <database_file_name1 => database_name1_for_display>, <database_file_name2 => database_name2_for_display>
database_file_name就是使用makeblastdb的输出文件的前缀;
database_name_for_display是要在viroblast页面显示的名字。
- ./viroblast/blast+/
- 为linux/x64提供默认单独的blast+程序
- ./viroblast/data/
- 储存blast结果的文件夹
因为每次运行都会生成一下结果文件,因此有必要设置这些文件的生存时间,我设置的是一周。也就是说从这个文件生成的一周后会被自动删除。
设置方法如下:sudo nano /etc/crontab #修改文件并在文件的下面添加下面的一个语句 @daily root find /var/www/html/viroblast/data/ -mtime +6 -type f -delete
- 储存blast结果的文件夹
- ./viroblast/docs/
viroblast的文档 - ./viroblast/db/nucleotide/
存储核酸序列数据,供blast查询 - ./viroblast/db/protein/
存储蛋白序列数据,供blast查询 - ./viroblast/image/
viroblast页面使用到的图片。
小结
- 根据目的下载需要的数据
比对基因序列要下载基因组序列;
比对转录组序列要下载cDNA序列;
比对蛋白组要下载蛋白序列;
同样也可以提取每个基因的序列。 - 如果懂php的话可以修改viroblast.php文件,是页面更炫酷。