给云服务器配置blast

120

blast+(已放弃)

cd
wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.13.0+-x64-linux.tar.gz
tar -zxvf ncbi-blast-2.13.0+-x64-linux.tar.gz
sudo ln -sf  /home/caigui/ncbi-blast-2.13.0+/bin/* /usr/bin/

# 建立小翠云的cds和protein的blast数据库
sudo makeblastdb -in xiaocuiyun_protein_represent.fa -dbtype prot -parse_seqids -out sk.p
sudo makeblastdb -in xiaocuiyun_cds_represent.fa -dbtype nucl -parse_seqids -out sk.n

# 测试
blastp -query test.p.blast -db sk.p -outfmt 6
blastn -query test.n.blast -db sk.n -outfmt 6

放弃安装blast+,这需要用到php知识。 地钱网站用的是sequenceserver,效果很好,我试试。

SequenceServer

# 安装ruby
sudo apt-get install ruby-full

# 安装SequenceServer
su caigui
sudo gem install sequenceserver

# 运行sequenceserver
sequenceserver
配置完成后会生成/root/.sequenceserver.conf文件

# 修改网页样式
# gem environment
# /var/lib/gems/2.5.0/gems/sequenceserver-2.0.0/views/layout.erb
# 这里修改完得重启(服务/计算机)才能生效
# 修改前先备份,我把原来页面的页眉和页脚删了,准备直接插入到现有网站的页面中

# 配置自动启动
# sudo useradd -s /sbin/nologin seqservuser # 添加一个用户专门搞这个(不添加的话就修改User行)
sudo vim /etc/systemd/system/sequenceserver.service # 主要修改ExecStart这一行
------------------------------------------------------------------------------------------
[Unit]
Description=SequenceServer server daemon
Documentation="file://sequenceserver --help" "http://sequenceserver.com/doc"
After=network.target

[Service]
Type=simple
User=caigui
ExecStart=/usr/local/bin/sequenceserver -c /var/www/show.caigui.site/public/blastdata/sequenceserver.conf
KillMode=process
Restart=on-failure
RestartSec=42s
RestartPreventExitStatus=255

[Install]
WantedBy=multi-user.target
------------------------------------------------------------------------------------------
sudo systemctl daemon-reload
sudo systemctl enable sequenceserver.service
sudo systemctl start sequenceserver.service
# 现在可以打开http://show.caigui.fun:4567/,来使用这个blast了。当然要提前在服务器网页管理的地方,开放4567这个端口。

# 配置nginx的反向代理
sudo vim /etc/nginx/sites-enabled/show.caigui.fun.conf
# 在server中添加
------------------------------------------------------------------------------------------
    location /sequenceserver/ {
        proxy_pass http://127.0.0.1:4567/;
        proxy_intercept_errors on;
        proxy_connect_timeout 8;
        proxy_read_timeout 180;
    }
------------------------------------------------------------------------------------------
# 现在可以通过访问https://show.caigui.fun/sequenceserver/来使用这个blast了

# 更新数据库
# 在/var/www/show.caigui.site/public/blastdata/目录下运行
sequenceserver -m #不需要root权限
# 根据提示添加新数据库即可,添加完毕后重启(服务/计算机)
# 水蕨蛋白不知道为什么识别数据类型不成功,手动弄一下
touch Crichardii.taxid_map.txt
sudo makeblastdb -dbtype prot -title '[Ceratopteris richardii_v2.1] Protein' -in Crichardii.fa -parse_seqids -hash_index -taxid 0
sequenceserver -m

# 删除现有数据库
# 直接在/var/www/lab.ccgg.fun/public/blastdata文件夹下删除想删除的数据库文件,然后重启服务
sudo systemctl restart sequenceserver.service



# 配置完重启后显示端口被占用
netstat -ntlp
# 发现sequenceserver进程独占了一个端口,其它程序都没有正确连接到端口上
# kill上面这个pid
# 再重启,解决了