在云服务器上部署JBrowse2

136

文档:https://jbrowse.org/jb2/docs/quickstart_web/
下载链接:https://github.com/GMOD/jbrowse-components

注:在本地docker中安装jbrowse失败了,目前我只能直接在服务器中调试

1. 先更新node

jbrowse2要求Node version must be >=12.0.0

1.1 成功的方法

直接用root安装新版本的node

# 还是问chatGPT靠谱啊
sudo apt-get remove nodejs
sudo apt-get update
sudo apt-get install -y build-essential
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

1.2 不好用的方法

安装nvm或者全局安装nvm,都会导致sudo jbrowse调用不到正确版本的node(据说可以用软链接解决),安装方法如下:

node -v
# v10.24.0
# 安装node版本管理器nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
# 在node官网查到LTS版本为18
# 安装18版本并使用
nvm install 18
nvm use 18 #切换版本,其实安装后也会自动切换
# 验证是否更新成功
node -v
v18.16.0

sudo node -v
# v10.24.0
# 得给root也单独安装一个
# 切换到root,按以上流程安装
# sudo jbrowse还是不行

# 再试试全局安装nvm
# https://github.com/xtuple/nvm
# 好多年没维护的项目,不想安装了

2. 安装必要的软件

有三个软件需要安装

sudo apt install samtools
sudo apt install tabix
sudo apt install genometools
# 好像还有bgzip之类的吧,我也记不清当时怎么安装的了,看下面的命令好像还用conda安装了,有问题自己克服吧

3. 安装jbrowse2

# 参考链接https://jbrowse.org/jb2/docs/superquickstart_web/
# conda install -y samtools tabix
# sudo apt install genometools
sudo npm install -g @jbrowse/cli
cd /var/www
# sudo jbrowse create mpjbrowse2
# wget https://github.com/GMOD/jbrowse-components/releases/download/v2.1.5/jbrowse-web-v2.1.5.zip
# 在这里下载最新版 https://github.com/GMOD/jbrowse-components/releases
sudo mkdir mpjbrowse 
sudo mv jbrowse-web-v2.1.5.zip mpjbrowse
sudo cd mpjbrowse
sudo unzip jbrowse-web-v2.1.5.zip

# 准备基因组文件
conda activate base
sudo /home/caigui/miniconda3/envs/rnaseq/bin/bgzip MpTak_v6.1.genome.fasta
sudo /home/caigui/miniconda3/envs/rnaseq/bin/samtools faidx MpTak_v6.1.genome.fasta.gz
# 这一步的基因组文件不能与--out文件在一个目录下!!!
sudo jbrowse add-assembly MpTak_v6.1.genome.fasta.gz --out /var/www/show.caigui.site/public/mpjbrowse --load copy

# gff文件
cd #(好像不需要)
sudo sh -c "gt gff3 -sortlines -tidy -retainids /var/www/show.caigui.site/public/resources/genomefile/MpTak_v6.1r1.gff > yourfile.sorted.gff"
cd /var/www/show.caigui.site/public/resources/genomefile/
sudo /home/caigui/miniconda3/envs/rnaseq/bin/bgzip MpTak_v6.1r1.sorted.gff
sudo /home/caigui/miniconda3/envs/python27/bin/tabix MpTak_v6.1r1.sorted.gff.gz
sudo jbrowse add-track MpTak_v6.1r1.sorted.gff.gz --out /var/www/show.caigui.site/public/mpjbrowse --load copy

# bw文件
sudo jbrowse add-track MpPLT_input.BPM.bw --out /var/www/show.caigui.site/public/mpjbrowse --load copy
sudo jbrowse add-track MpPLT_ip_rep1.BPM.bw --out /var/www/show.caigui.site/public/mpjbrowse --load copy
sudo jbrowse add-track MpPLT_ip_rep2.BPM.bw --out /var/www/show.caigui.site/public/mpjbrowse --load copy


# gene name
cd /var/www/show.caigui.site/public/mpjbrowse
sudo jbrowse text-index

# sk
sudo jbrowse add-assembly Selaginella_kraussiana_v2.fa.gz --out /var/www/show.caigui.site/public/skjbrowse --load copy
sudo jbrowse add-track sk_v2.sorted.gff.gz --out /var/www/show.caigui.site/public/skjbrowse --load copy

# --subDir命令 批量添加bw文件到文件夹下管理 
# --category命令 在jbrowse中将track分类展示
for name in `ls *.bw`
do
	sudo jbrowse add-track $name --subDir tissuernaseq --category 'Tissue-specific expression' --out /var/www/show.caigui.site/public/skjbrowse --load copy
done

for name in `ls *.bw`
do
	sudo jbrowse add-track $name --subDir h3k27 --category 'H3K27me3' --out /var/www/show.caigui.site/public/skjbrowse --load copy
done

# gene name
cd /var/www/show.caigui.site/public/skjbrowse/
sudo jbrowse text-index

# 更新jbrowse2
cd /var/www/show.caigui.site/public/skjbrowse/
sudo jbrowse upgrade

4. 后期维护

添加/更新/删除数据后,jbrowse是即时更新的,如果你发现添加/更新/删除后jbrowse没有变化,清理一下缓存就好了,不用傻傻地折腾半天