当没有得到结果的时候,总是战战兢兢。得到结果之后,逻辑一下子就很清晰。
安装 JBrowse
./setup.sh这一步需要安装很多perl依赖库,如果报错,查看setup.log文件,应该是一些 perl 模块没有安装。如:
! Installing GD failed. See /root/.cpanm/work/1551106022.8560/build.log for details. Retry with –force to force install it.
Searching XML::LibXML (0) on cpanmetadb …
Already tried XML-LibXML-2.0134. Skipping.
! Installing the dependencies failed: Module ‘XML::LibXML’ is not installed, Module ‘XML::LibXML::Reader’ is not installed, Module ‘GD’ is not install
ed, Module ‘DBI’ is not installed, Module ‘DB_File’ is not installed
! Bailing out the installation for BioPerl-1.7.5.
Searching JSON::XS (0) on cpanmetadb …
Unpacking JSON-XS-4.01.tar.gz
FAIL
官方文档说,运行./setup.sh 的时候不要是 root 或使用 sudo。(和安装目录有关?)这可能是之前安装失败的原因。
Run the automated-setup script, ./setup.sh
, which will attempt to install all of JBrowse’s (modest) prerequisites for you in the jbrowse/
directory itself. Note that setup.sh
should not be run as root or with sudo
.^1
安装Nginx
yum install nginx
1 | sudo systemctl stop httpd.service # 因为之前有apache服务器,所以要先停掉 |
如果你的服务器正在运行防火墙,请运行下列命令以允许它进行 HTTP 和 HTTPS 通信:
https://www.jianshu.com/p/a482a0f8adfd
1 | sudo firewall-cmd --permanent --zone=public --add-service=http |
两个 perl 版本的问题,从报错信息知 JBrowse 用的是 perl 5.16.3,即 /usr/bin/perl。系统默认的 perl 是 conda 安装的 perl。
Can’t locate local/lib.pm in @INC (@INC contains: /var/www/html/JBrowse-1.16.3/bin/../src/perl5/../../extlib/lib/perl5/5.16.3/x86_64-linux-thread-multi /var/www/html/JBrowse-1.16.3/bin/../src/perl5/../../extlib/lib/perl5/5.16.3 /var/www/html/JBrowse-1.16.3/bin/../src/perl5/../../extlib/lib/perl5/x86_64-linux-thread-multi /var/www/html/JBrowse-1.16.3/bin/../src/perl5/../../extlib/lib/perl5 /var/www/html/JBrowse-1.16.3/bin/../src/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /var/www/html/JBrowse-1.16.3/bin/../src/perl5/JBlibs.pm line 25.
Compilation failed in require at bin/prepare-refseqs.pl line 5.
BEGIN failed–compilation aborted at bin/prepare-refseqs.pl line 5
解决上面的问题,可以直接copy 一份。(不知道家目录下的 perl5 文件夹是什么时候生成的?)
1 | locate local/lib.pm |
柚子数据
准备参考序列和特征数据
所有track都生成在默认的data目录中
1 | 指定perl为/usr/bin/perl |
不指定会出现如下错误:
(base) [qi@localhost JBrowse-1.16.3]$ bin/flatfile-to-json.pl –help
perl: symbol lookup error: /var/www/html/JBrowse-1.16.3/bin/../src/perl5/../../extlib/lib/perl5/x86_64-linux-thread-multi/auto/JSON/XS/XS.so: undefined symbol: Perl_xs_apiversion_bootcheck
查资料
This type of error is almost always indicates you are loading a module that was installed using a different build of Perl.^stackoverflow
VCF tracks
http://jbrowse.org/docs/variants.html
VCF files used with the VCFTabix
must be compressed with bgzip
and indexed with tabix
, both of which are part of the samtools package. This is usually done with commands like:
1 | for i in *.vcf; do bgzip $i; done |
安装好之后,我们将JBrowse-1.12.1下所有文件拷贝到网站根目录
1 | sudo cp * /usr/share/nginx/html |
要添加其他物种,可重命名data文件夹
1 | $ mv data xxx |
下次再把另外一个基因组放进来时,bin
目录下的脚本又会默认放到data目录,就不会发生混乱啦!
另外,如果你把JBrowse部署在内网,却想让外网访问到,而部署JBrowse的服务器又在防火墙后面的话,请一定要记得把jbrowse.conf
加入到防火墙白名单,因为防火墙默认会把这种.conf
结尾的文件屏蔽。^引自
所谓基因组浏览器就是通过这个工具查看基因组,具体包括参考基因组序列,哪个地方是外显子、那个地方是内含子等等功能。参考基因组就是一个fasta文件,哪个地方是外显子、哪个地方是内含子这些信息称之为特征,一般情况下NCBI、ENSEMBL等数据库都会提供GFF3格式的基因组特征文件。JBrowse支持GFF3, BED, FASTA, Wiggle, BigWig, BAM, VCF (with tabix), REST等众多数据格式,BAM, BigWig,VCF格式的数据可以不需要转换而直接使用。
其他相关的命令
一些关于防火墙的命令
1 | firewall-cmd --state # 查看状态,running |
查看历史记录
1 | awk去掉第一列,sed去掉行首空格 |
conda 命令
1 | conda create --name bioinfo python=3.6 # 创建环境 |
解决复制终端文本换行的问题
1 | zcat HB-10-2_filtered.vcf.gz | sed -n '/#CHROM/=' # 输出行号 |