什么?!听说你还在用viroBlast搭建本地Blast网站?快换成美美哒SequenceServer!

写在前面

  • 刚开始整数据库的时候,用过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+
  • 下载并安装最新版blasthttps://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


有两点需要注意:

  1. 给出的IP是一般是内网IP,一般要共享需要使用公网IP,替换即可。
  2. SequenceServer默认的端口在服务器中是否有开通,否则无法访问。如使用的是租借的云服务器,则需要进入服务器后台,手动在安全组中开放端口。
  • 直接在浏览器上访问IP:端口,即可看到SequenceServer界面啦
    主页

    检索中

    结果页面

    结果页面2

四、 将SequenceServer嵌入自己的网站

  • 最简单粗暴的方法当然是使用