浙江铃声推荐联盟

进击的基因组浏览器--JBrowse使用指南(上)

生信Rookie2019-10-13 16:42:28

一、基本介绍

 JBrowse (http://gmod.org/wiki/JBrowse)是和GBrowse具有同样功能的基因组浏览器,只是它是基于HTML5 JavaScript等前端技术通过AJAX界面来实现的,这样大部分的工作都能通过用户的浏览器来完成,就可以降低对服务器的性能要求,从而实现快速访问浏览基因组数据。具有如下特点:
  --支持快速、平滑的滚动和缩放,能较快的浏览你的基因组数据
  --支持Gb级别乃至Tb级别数据量,数据存储和呈现压力由后端服务器承载
  --支持大多数基因组学常用格式(如GFF3、BED、FASTA、Wiggle、BigWig、BAM、VCF等其它格式)
  --强大的后续支持,定期更新和维护(官网:http://jbrowse.org/),活跃的讨论社群(https://github.com/GMOD/jbrowse/issues),详细的使用文档(http://gmod.org/wiki/JBrowse_Configuration_Guide)

这些特点注定了JBrowse的不平凡,无论是JBrowse的前任GBrowse,还是NCBI的MapViewer和UCSC Genome Browser,从使用体验和技术维护等级角度已经都远远落后于上进的JBrowse,Youtubes的视频Evolution of jbrowse (Gource Visualization)(https://www.youtube.com/watch?v=FX6lTdTtcAI)表现了Jbrowse从2007年(图1)-2015年(图2)的发展历程和人员结构变化。

图1

图2

二、下载安装

下载地址:https://github.com/GMOD/jbrowse/releases 选取想要的版本

快速使用指南:http://jbrowse.org/code/JBrowse-1.13.1/docs/tutorial/,一般而言选最新版1.13.1:https://github.com/GMOD/jbrowse/releases/download/1.13.1-release/JBrowse-1.13.1.zip

注意:这边JBrowse的安装地址很重要,没有找对地址,是无法将JBrowse展现出来的

一般linux服务器的根目录为 /var/www ,安装了xampp的,根目录是会在/opt/lampp/htdocs下,当然这个根目录是可以在http.conf配置文件中进行修改

我这边安装了xampp,根目录就在/opt/lampp/htdocs,直接就在根目录下安装运行JBrowse

[root@201 htdocs]#wget https://github.com/GMOD/jbrowse/releases/download/1.13.1-release/JBrowse-1.13.1.zip
[root@201 htdocs]# unzip JBrowse-1.13.1.zip && cd JBrowse-1.13.1
[root@201 JBrowse-1.13.1]# ./setup.sh ##确保服务器联网,这样可以直接安装好,如果有安装错误,查看setup.log来排查错误
#一般是perl 模块安装依赖的软件没有安装,perl模块大多会自动安装,而没有安装的软件则需要按照提示进行安装,然后再重新运行setup.sh
#比如报错,setup.log中
Expat must be installed prior to building XML::Parser and I can't find
it in the standard library directories. Install 'expat-devel' (or
'libexpat1-dev') package with your OS package manager. See 'README'.
Or you can download expat from:
http://sourceforge.net/projects/expat/

[root@201 JBrowse-1.13.1]# yum install expat-devel
#再次setup.sh就安装成功了
[root@201 JBrowse-1.13.1]# ./setup.sh
Gathering system information ... done.
NOTE: Legacy scripts wig-to-json.pl and bam-to-json.pl have removed from setup. Their functionality has been superseded by add-bam-track.pl and add-bw-track.pl. If you require the old versions, please use JBrowse 1.12.3 or earlier.
Minimal release, skipping node and Webpack build
Installing Perl prerequisites ... done.
Formatting Volvox example data ... done.
To see the volvox example data, browse to http://your.jbrowse.root/index.html?data=sample_data/json/volvox.
Formatting Yeast example data ... done.
To see the yeast example data, browse to http://your.jbrowse.root/index.html?data=sample_data/json/yeast.

进入到 示例网站是这样的效果(图3),这边网址和上面的有些不同,是IP地址https://JBrowse-1.13.1/index.html?data=sample_data/json/volvox。IP地址就是你安装JBrowse的linux服务器的IP地址,可以用ifconfig查看, 一般第一个i网卡etho的地址,inet addr:这个后面跟的就是你需要的IP地址

图3

三、基本用法

在实际操作之前,还有几点注意事项,
--因为JBrowse可以同时建立多个物种的基因组浏览器,也是避免出错和方便,所以每个物种建立基因组浏览器之前都需要先建立单独的文件夹
--由于linux本地磁盘一般存储有限,一般只有几十G,而基因组数据量动辄上百G,所以数据我们一般放在存储磁盘中,通过软连接形式建立连接到特定数据文件夹
--初学者在更改基因组配置文件时,千万记得备份,特别是数据数量比较多的时候,以此避免出现麻烦
--通过bin/目录下命令导入轨迹时,--out是指定输出物种基因浏览器文件夹的,是必不可少的,同时参数内部不能出现空格
--每个物种的基因组浏览器的访问网址为:http://IP_address/JBrowse-1.13.1/index.html?data=DIR, DIR是物种文件夹

以下导入的数据类型,均可以在https://JBrowse-1.13.1/index.html?data=sample_data/json/volvox下看到具体效果

1、导入参考基因组

[root@201 JBrowse-1.13.1]# bin/prepare-refseqs.pl #这边导入参考基因组有多种形式
must provide either a --fasta, --indexed_fasta, --twobit, --sizes, --gff, or --conf option
Usage:
          prepare-refseqs.pl --gff <GFF file> [options]
      # OR:
          prepare-refseqs.pl --fasta <file1> --fasta <file2> [options]
      # OR:
          prepare-refseqs.pl --indexed_fasta <file> [options]
      # OR:
          prepare-refseqs.pl --twobit <file> [options]
      # OR:
          prepare-refseqs.pl --conf <JBrowse config file> [options]
      # OR:
          prepare-refseqs.pl --sizes <sizes file> [options]
[root@201 JBrowse-1.13.1]# mkdir -p Test/data #建立测试基因组文件夹和数据文件夹
[root@201 JBrowse-1.13.1]# bin/prepare-refseqs.pl --fasta Test/data/Test.fa --out Test/ #--out是指定输出物种基因浏览器文件夹的

2、导入注释文件

[root@201 JBrowse-1.13.1]# bin/flatfile-to-json.pl
Must provide a --trackLabel parameter.
Usage:
     flatfile-to-json.pl \
         ( --gff <GFF3 file> | --bed <BED file> | --gbk <GenBank file> ) \
         --trackLabel <track identifier> \
         [ --trackType <JS Class> ] \
         [ --out <output directory> ] \
         [ --key <human-readable track name> ] \
         [ --className <CSS class name for displaying features> ] \
         [ --urltemplate "http://example.com/idlookup?id={id}" ] \
         [ --arrowheadClass <CSS class> ] \
         [ --noSubfeatures ] \
         [ --subfeatureClasses '{ JSON-format subfeature class map }' ] \
         [ --clientConfig '{ JSON-format style configuration for this track }' ] \
         [ --config '{ JSON-format extra configuration for this track }' ] \
         [ --thinType <BAM -thin_type> ] \
         [ --thicktype <BAM -thick_type>] \
         [ --type <feature types to process> ] \
         [ --nclChunk <chunk size for generated NCLs> ] \
         [ --compress ] \
         [ --sortMem <memory in bytes to use for sorting> ] \
         [ --maxLookback <maximum number of features to buffer in gff3 files> ] \
         [ --nameAttributes "name,alias,id" ] \
#这边参数很多,但是常用的就几个
[root@201 JBrowse-1.13.1]# bin/flatfile-to-json.pl --gff Test/data/Test.gff3 --trackLabel Gene_annotation --trackType CanvasFeatures --key annotation1--out Test/ #最常用的注释文件格式为GFF3,当然BED格式在展示自制数据时更加方便 ,--trackLabel 代表的是轨迹展现标签,--trackType则是轨迹风格 --key则是轨迹区别标签

3、导入BAM文件
        BAM为了批量操作,通常在tracks.conf配置文件中写入。
实例:

# make a section for the new track called tracks.(unique name)
[ tracks.my-bam-track ] #my-bam-track是轨迹区别标签
# settings for what data is shown in the track
storeClass = JBrowse/Store/SeqFeature/BAM #这个是文件存储类型,不能改
urlTemplate = ../../raw/volvox/volvox-sorted.bam #BAM文件地址,要用相对路径
baiUrlTemplate = ../../raw/volvox/volvox-sorted.bam.bai # BAM文件索引

# settings for how the track looks
category = NGS #< category for this track #分类
type = JBrowse/View/Track/Alignments2 #类型,也不用改
key = BAM alignments from sample XYZ #展示标签

4、VCF文件导入
        同样也是直接在tracks.conf配置文件中写入。 但是VCF文件先需要做预处理

 bgzip my.vcf #压缩vcf
tabix -p vcf my.vcf.gz #格式处理
#实例:
[ tracks.my-vcf-track ]#my-vcf-track是轨迹区别标签
# settings for what data is shown in the track
storeClass = JBrowse/Store/SeqFeature/VCFTabix  #这个是文件存储类型,不能改
urlTemplate = ../vcf_files/SL2.40_all_rna_seq.v1.vcf.gz #vcf 文件相对地址
# settings for how the track looks
category = VCF  #分类
type = JBrowse/View/Track/CanvasVariants #类型,也不用改
key = SNPs from VCF#展示标签

5、导入定量数据文件BW

同样也是直接在tracks.conf配置文件中写入。定量数据通常有两种展示类型:XYPLOT即直方图和Density密度图也是热图。
实例:
[ tracks.my-bigwig-track ]   #my-bigwig-track是轨迹区别标签
storeClass = JBrowse/Store/SeqFeature/BigWig  #这个是文件存储类型,不能改
urlTemplate = ../../my-bigwig-file.bw #bigwig 文件相对地址
category = Quantitative # category for this track in the track selector   #分类
type = JBrowse/View/Track/Wiggle/XYPlot   #直方图展示,可以改成JBrowse/View/Track/Wiggle/Density 就变成热图了
key = Coverage plot of NGS alignments from XYZ #展示标签

定量文件即bw文件如何生成呢,需要一定软件的转换,如何进行转换以及更多高级JBrose 用法将会在下回进行讲解。