JBrowse使用说明:如何安装JBrowse

  • A+
所属分类:Genomics

JBrowse is a fast, scalable genome browser built completely with JavaScript and HTML5. It can run on your desktop, or be embedded in your website.

如果你想要使用JBrowse,一定要有管理员权限,否则建议使用IGV。

前置要求

你的服务器必须安装有libpng,zlib,libgd,make,C compiler, C++ compiler。 对不同的操作系统有不同的安装方法,如果你有管理员权限,那么用系统自带的管理工具就行。

# Ubuntu/Debian
sudo apt-get install build-essential libpng-dev zlib1g-dev libgd2-xpm-dev
# Red Hat/Fedora/CentOS
sudo yum groupinstall "Development Tools"
sudo yum install libpng-devel gd-devel zlib-devel perl-ExtUtils-MakeMaker
# Mac OS X (homebrew)
## 需要在APP Store 安装 xcode 或在命令行输入gcc提示安装
xcode-select --install
brew install libpng libgd zlib

注:如果你没有管理员权限,就请自行编译并添加到环境变量中。你会发现这非常地麻烦。

安装jbrowse

jbrowse有两种安装形式:

  • 系统级: 面向更多用户,常常部署到网页服务器
  • 普通用户级:满足内网用户的一般需求

系统级安装(最高权限)

系统级安装(需要管理员权限)

# make a directory that this user can write to
# for ubuntu/Debian that is /var/www/; for centos is /var/www/html
sudo mkdir /var/www/jbrowse;
sudo chown `whoami` /var/www/jbrowse;
# cd into it
cd /var/www/jbrowse;
# fetch a JBrowse release zip file
curl -O http://jbrowse.org/releases/JBrowse-1.12.3/JBrowse-1.12.3.zip
# unzip it and cd into it
unzip JBrowse-1.12.3.zip
cd JBrowse-1.12.3
# run setup.sh, quick start with example data
./setup.sh

系统级别的JBrowse安装到/var/www,然后可以通过http://机器IP地址/jbrowse/JBrowse-1.12.3/docs/tutorial/index.html判断安装是否成功。

但是,如果你的服务器上没有安装"apache"或"nginx"等web服务器软件时,上述操作无法成功访问网页。

以下句子你可能已经看不懂了: 尽管软件已经部署在你的服务器上,但是仅仅是你本人才能查看或使用软件,这对外人不可见。就像你家买了一台老罗的畅呼吸,你不和别人说,别人是不知道的。如果他需要你家这台畅呼吸解决他家的空气问题,”唰的一下就没了“,就需要专门铺设一个管道连接你们两家,这样子你家的畅呼吸就把他家的空气也净化了一下。

因此,你需要安装一个web服务器软件,然后设置规则,让别人能够顺利访问到你的本地资源。这里安装的是nginx.

# 安装nginx,基于ubuntu
sudo apt-get install nginx
# 检查是否安装成功
sudo nginx -t
安装检查

启动nginx服务

# 确保80端口没有占用,否则你需要停用相关的进程
netstat -ano | grep 80
# 启动
sudo nginx

浏览器访问主机的IP,比如说我的虚拟机的IP地址是"http://10.10.87.36/"

nginx检查

以上网页存放在/var/www/html/index.nginx-debian.html,由/etc/nginx/sites-enabled/default定向所在目录。其中/etc/nginx/sites-enabled/default/etc/nginx/sites-available/default的软连接。这是nginx安装完成之后默认设置,提供一个案例。如果我们需要配置nginx,使其找到Jbrowse所在目录,就需要在/etc/nginx/sites-available/创建配置文件,然后链接到/etc/nginx/sites-enabled/.

sudo vi /etc/nginx/sites-avaiable/jbrowse
# 内容如下
server {
    listen 8080;
    listen [::]:8080;
    root /var/www/jbrowse/JBrowse-1.12.3;
    index index.html
}
# 链接到/etc/nginx/sites-enabled/
sudo ln -n /etc/nginx/sites-available/jbrowse /etc/nginx/sites-enabled/jbrowse
# 重启
ps -ef | grep nginx
sudo kill -QUIT  nginx 主进程号
sudo nginx

然后你就发现直接可以通过IP:8080就能访问JBrowse,而不是要求那样的一长串地址。

JBrowse

小规模使用(普通权限)

普通用户级(不需要管理员权限):和系统级的差异,文件存放在用户目录下。

# 软件原始文件,我一般存放在家目录的src文件夹下
cd ~/src &curl -O http://jbrowse.org/releases/JBrowse-1.12.3/JBrowse-1.12.3.zip
# 解压缩,并移动到我软件文件夹下
unzip JBrowse-1.12.3.zip && mv JBrowse-1.12.3 ~/biosoft
# 安装
cd ~/biosoft/JBrowse-1.12.3 && ./setup.sh
setup

普通用户:nginx和apche是针对大型访问站点,如果你只是实验室内容访问,用Python做web服务器就行了。

cd ~/biosoft/JBrowse-1.12.3
python -m SimpleHTTPServer 5000
# 长时间运行
# nohup python -m SimpleHTTPServer 5000 &

是的就是如此简单,你就可以访问"IP:5000"访问页面。但是距离真实情况下的使用,还需要进行后续的配置

小结

其实这两者在安装上没有多大区别,安装到/var/www下是因为文档编写者默认你的服务器已经有web服务器应用,并且那个应用托管了/var/www,而/var/www需要一定的权限。

但是实际上,如果你修改web服务器应用的配置,你可以将JBrowse安装在任意地方。甚至,对于少量的请求,可以直接用Python自带的web服务器让你的JBrowse被外部人员访问到。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: