美文网首页blastn本地库构建
什么?!听说你还在用viroBlast搭建本地Blast网站?快

什么?!听说你还在用viroBlast搭建本地Blast网站?快

作者: 老饕_Ljw | 来源:发表于2022-02-22 15:04 被阅读0次

写在前面

  • 刚开始整数据库的时候,用过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嵌入自己的网站

  • 最简单粗暴的方法当然是使用<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!

相关文章

网友评论

    本文标题:什么?!听说你还在用viroBlast搭建本地Blast网站?快

    本文链接:https://www.haomeiwen.com/subject/iteglrtx.html