写在前面
- 刚开始整数据库的时候,用过viroBlast搭建Blast服务,详见用viroblast搭建本地blast网站 - 简书 (jianshu.com)
- 最近之前的数据库课题准备收收尾整出去,完善相关功能的时候,越发的觉得viroBlast的界面是真的略丑。。。
- 两个解法:1.直接修改viroBlast的源代码,使其风格与自己网站一致,比较繁琐,涉及到前端布局与风格调整,HTML、CSS、PHP(viroblast基于PHP开发)都要略懂才能整,不推荐。 2.使用更为美观的SequenceServer!
一、安装SequenceServer依赖
- 安装ruby(SequenceServer是基于ruby开发的工具)
- 直接在官网上(
https://cache.ruby-china.com/pub/ruby/
)下载需要的ruby版本,SequenceServer要求ruby>2.3,最好ruby>2.5。 -
这里下载2.6.4
- 下载并解压
wget https://cache.ruby-china.com/pub/ruby/ruby-2.6.4.tar.gz
tar xzvf ruby-2.6.4.tar.gz
- 编译安装
cd ruby-2.6.4
./configure
make
make install
ruby -v #查看是否安装成功
#ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-linux]
- 安装RubyGems,RubyGems 是 Ruby 的一个包管理器,这里用于直接安装SequenceServer
- 下载地址
https://rubygems.org/pages/download
wget https://rubygems.org/rubygems/rubygems-3.3.7.zip
unzip rubygems-3.3.7.zip
cd rubygems-3.3.7
ruby setup.rb
- 使用gem安装SequenceServer
gem install sequenceserver
- fine
二、提供Blast库
- 创建SequenceServer的db文件夹(可以指定任意路径),并将需要建blast库的核酸或者蛋白序列放到该文件夹
mkdir db
- 建立blast库,可以用SequenceServer自带命令建立,也可以自己用
makeblastdb
建立核酸库或者蛋白库
#建立核酸库
makeblastdb -input_type fasta -dbtype nucl -title Litchi.CDS.databases -in Lchinesis_genome.sim.cds.fa -parse_seqids 2>/dev/null
#建立蛋白库
makeblastdb -input_type fasta -dbtype prot -title Litchi.Protein.databases -in Lchinesis_genome.pep.sim.fa -parse_seqids 2>/dev/null
三、启动SequenceServer
#示例直接在db目录下运行,因此-d 参数直接给了./ 也可以给db文件夹的绝对路径
sequenceserver -d ./
- 提示blast+版本过低,SequenceServer需要 BLAST+ version 2.12.0+
- 下载并安装最新版blast
https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/
wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.12.0+-x64-linux.tar.gz
tar xzvf ncbi-blast-2.12.0+-x64-linux.tar.gz
cd ncbi-blast-2.12.0+
cd bin/
- 获取blast绝对路径
pwd
#/tools/ncbi-blast-2.12.0+/bin
- 再次启动SequenceServer,并且按照提示输入刚刚安装好的blast+2.12的路径
sequenceserver -d ./
-
提示成功启动SequenceServer
有两点需要注意:
- 给出的IP是一般是内网IP,一般要共享需要使用公网IP,替换即可。
- SequenceServer默认的端口在服务器中是否有开通,否则无法访问。如使用的是租借的云服务器,则需要进入服务器后台,手动在安全组中开放端口。
- 直接在浏览器上访问
IP:端口
,即可看到SequenceServer界面啦
四、 将SequenceServer嵌入自己的网站
最简单粗暴的方法当然是使用<iframe>标签直接将SequenceServer界面嵌入到自己已有的网站页面,这样方便直接使用原网站样式,使其界面风格基本保证一致。
或者直接修改SequenceServer代码,将其前端风格修改成自己网站的风格。源码在ruby安装目录下的gem中,需要找一找。一般我会把navigation bar和footer删掉,直接当成一个控件嵌入原有网站,非常舒服。
/usr/local/lib/ruby/gems/2.6.0/gems/sequenceserver-2.0.0/views
- 干脆啥也不改,直接link到相应的功能按钮,点击跳转完事
写在最后
事情还是有始有终的好,无论是课题亦或者其他事,问心无愧,就好。
我是阿威,菜菜的阿威
对了,今天的日子还挺有意思,2022.02.22!