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/"
以上网页存放在/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,而不是要求那样的一长串地址。
小规模使用(普通权限)
普通用户级(不需要管理员权限):和系统级的差异,文件存放在用户目录下。
# 软件原始文件,我一般存放在家目录的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
普通用户: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被外部人员访问到。