1,jbrowse 是什么东西 ?

JBrowse is a genome browser with a fully dynamic AJAX interface, being developed as the eventual successor to GBrowse. It is very fast and scales well to large datasets. JBrowse is javascript-based and does almost all of its work directly in the user's web browser, with minimal requirements for the server.

2,在jbrowse 上可以看那些格式的文件?

我用它主要是来看 fasta,bam,vcf,gff3.

3,如何安装jbrowse?

在/var/www下将创建jbrowse文件夹

mkdir jbrowse

在jbrowse目录下,下载软件包

wget -c http://jbrowse.org/wordpress/wp-content/plugins/download-monitor/download.php?id=98

我下载的版本是JBrowse-1.11.5

下载好后,解压

unzip JBrowse-1.11.5.zip

解压好后进入解压好的目录中,然后执行

./setup.sh

会开始安装

安装信息如下:

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.

Building and installing legacy wiggle format support (superseded by BigWig tracks) ... done.

Building and installing legacy bam-to-json.pl support (superseded by direct BAM tracks) ... failed.  See setup.log file for error messages. If you really need bam-to-json.pl (most users don't), try reading the Bio-SamTools troubleshooting guide at https://metacpan.org/source/LDS/Bio-SamTools-1.33/README for help getting Bio::DB::Sam installed.

会发现有一个没装上,但是好像不影响使用。 那就这样用吧,遇到问题再说!

4,开始使用jbrowse.

第一步,你需要导入参考序列。

在/var/www/html/jbrowse/JBrowse-1.10.8 下建立一个文件夹 test.

在test下建立三个文件夹,分别是bamfiles,seqfiles,vcffiles.文件夹中分别放你需要导入的bam文件,参考序列以及vcf文件。

准备工作做好后,在/var/www/html/jbrowse/JBrowse-1.10.8 目录下 执行:

./bin/prepare-refseqs.pl --fasta test/seqfiles/supercontig_88.fa --out ./test/  #--fasta 后跟你的参考序列路径   --out 后跟你想3要导入哪个文件夹下

如果导入过参考序列后,又有新的序列需要导入,首先将配置文件中的参考序列track删除,同时将产生的seq文件夹删除,将新的序列和之前的序列合并为一个fasta文件,再重新导入。

这时候我们来看一下效果,打开http://peach.fafu.edu.cn/html/jbrowse/JBrowse-1.10.8/?data=data

你会发现已经有了这条参考序列的track。如下图所示:

第二步,导入基于这条参考序列的bam文件和vcf文件。

在刚才创建的test目录下,你会发现多出来一个文件:trackList.json他是配置文件,我们需要配置什么track直接在里面进行编辑即可。

刚才导入的参考序列自动生成的track如下所示:

{"chunkSize":20000,
"storeClass":"JBrowse/Store/Sequence/StaticChunked",
"urlTemplate":"seq/{refseq_dirpath}/{refseq}-",
"type":"SequenceTrack",2
"label":"DNA",
"key":"Reference sequence"}

在导入bam文件的track之前,必须先对bam文件建立index,得到bai文件,

建立index之前, bam必须是经过sort的, 没有sort的话用:

samtools sort file.bam file.sorted(.bam后缀会自动追加)

sort后建立index用:

samtools:samtools index accepted_hits.sorted.bam

得到:accepted_hits.sorted.bam.bai

编辑配置文件,将此track写入:

{"storeClass":"JBrowse/Store/SeqFeature/BAM",
"urlTemplate":"./bamfiles/accepted_hits.sorted.bam",
 "label":"EMB506",
"type":"JBrowse/View/Track/Alignments2"},

{"storeClass":"JBrowse/Store/SeqFeature/BAM",
 "urlTemplate":"./bamfiles/accepted_hits.sorted.bam",
 "label":"EMB506_coverage",
 "type":"JBrowse/View/Track/SNPCoverage"},

SNPCoverage 有时候显示的并不准确,有的是SNP但是并没有显示出来,对于R, A 数量上的统计也会不准确。所以自己关心的位点还是要亲自看一看。

要导入vcf文件,首先也要对vcf进行压缩和建立index

用bgzip进行压缩,用tabix对vcf建立index:

bgzip p2.raw.snps.indels.vcf  #得到vcf文件的压缩文件*.vcf.gz 不会保留源文件
tabix -p vcf p2.raw.snps.indels.vcf.gz    #对gz文件加上index,得到f1.raw.snps.indels.vcf.gz.tbi文件

*.gz文件和*.gz.tbi文件要放在一个目录下。

将此vcf文件写入此track:

{"storeClass" : "JBrowse/Store/SeqFeature/VCFTabix",

"urlTemplate" : "./vcffiles/p2.raw.snps.indels.vcf.gz",

"type" : "JBrowse/View/Track/CanvasVariants",

"label" : "f1_vcf" },

如下图所示:

其中纯红色为:losing mate pair

粉色:forword strand

蓝色:reverse strand   #jbrowse中显示的read序列是sam文件中的,而不是测序产生的,对于蓝色的来说,是测序的反向互补序列,因为sam文件中应经把原始序列给改掉了,为了和前导链一致。

星号:deletion

I(1):一个插入

4, 其他查看其他文件格式,请参照该网页的config.http://jbrowse.org/code/JBrowse-1.11.4/index.html?data=sample_data%2Fjson%2Fvolvox&loc=ctgA%3A12893..22893&tracks=DNA%2Cvolvox_gtf&highlight=

如gtf文件:

{"storeClass" : "JBrowse/Store/SeqFeature/GTF",
 "urlTemplate" : "./gtf_files/merged.gtf",
 "type" : "JBrowse/View/Track/CanvasFeatures",
 "label" : "merge.gtf" },

5,进一步阅读

安装指导: http://jbrowse.org/install/

jbrowse的wiki页面:  http://gmod.org/wiki/JBrowse

详细配置信息: http://gmod.org/wiki/JBrowse_Configuration_Guide

quick-start tutorial: http://jbrowse.org/code/JBrowse-1.11.4/docs/tutorial/

如果文件过大,超过了/var挂载的容量, 要用symlink来代替。经过测试发现,数据文件可以放到peach服务器的

根目录下/

/var下的任意位置

/www目录下

由于/www目录下空间较大,所以我选择将数据放在该目录下,然后build symlink 到你的jbrowse目录~

最近在做菠萝基因组项目,需要导入gff文件:

对于gff3文件:假如文件中的feature有gene, mRNA, exon, CDS, five_prime_UTR, three_prime_UTR.

在 /var/www/html/jbrowse/JBrowse-1.11.5目录下执行:

./bin/flatfile-to-json.pl --gff Pineapple_genome_project/evidence/pineapple_maker.gff --trackLabel maker-pineapple --key maker-pineapple  --type mRNA,exon,CDS --className transcript --subfeatureClass '{"CDS":"transcript-CDS", "exon":"feature5"}' --arrowheadClass transcript-arrowhead --out Pineapple_genome_project/

命令说明:

--gff后面加gff3文件的位置

--key 是在jbrowse浏览时,左边显示的名字

--type 是指定处理哪几种类型,因为我的文件中有gene, 所以主feature应该选为mRNA, subfeature应该为exon, cds, utr。

--className 选择主feature的glyph, 默认的glyph是feature

--subfeatureClass 选择subfeature的glyphs, 如果exon, cds, utr都存在,你可以不指定utr的glyph, 因为exon的glyph没被CDS的glyph覆盖的部分就是utr的样式了。。。

更多glyph类型可以参见:

http://gregorylab.bio.upenn.edu/jbrowse/docs/featureglyphs.html

--arrowheadClass 指定箭头的类型 有transcript-arrowhead, arrowhead等

--out 你的项目文件夹

执行完后,会在/var/www/html/jbrowse/JBrowse-1.11.5/Pineapple_genome_project/trackList.json里生成对应的track, 你可以对该track添加一些玩意, 比如加上category等信息。

最后的gff3的track如下所示:

{
         "style" : {
             "className" : "transcript",
             "subfeatureClasses" : {
                "exon" : "feature5",
                "CDS" : "transcript-CDS"
             },
             "arrowheadClass" : "transcript-arrowhead"
          },
          "key" : "maker-pineapple",
          "storeClass" : "JBrowse/Store/SeqFeature/NCList",
          "trackType" : null,
          "urlTemplate" : "tracks/maker-pineapple/{refseq}/trackData.json",
          "compress" : 0,
          "type" : "FeatureTrack",
          "category" : "Evidence",
          "label" : "maker-pineapple"
       }

除了这些详细注释的gff, 还有很多gff文件的feature只有:

match, match_part 或者

protein_match, match_part 或者

expressed_sequence_match, match_part

对于这种文件:

在/var/www/html/jbrowse/JBrowse-1.11.5目录下执行:

./bin/flatfile-to-json.pl --gff Pineapple_genome_project/evidence/pineapple_protein2genome.gff_rmillegal --trackLabel protein2genome-pineapple --key protein2genome-pineapple --className generic_parent --subfeatureClasses '{"match_part":"match_part"}' --out Pineapple_genome_project/

#######################################################

有时候会报错, 比如:

GFF3 parse error: some features reference other features that do not exist in the file (or in the same '###' scope).  A list of them:

ID                 |           Cannot Find

----------------------------------------------------------------------

scaffold_937:hsp:73 | Parent=scaffold_937:hit:215541:3.12.0.0

scaffold_937:hsp:73 | Parent=scaffold_937:hit:215541:3.12.0.0

这种报错是因为在你的gff文件中, 有的feature中的parentID 没找到,就是只有儿子没有父亲,可以称之为孤儿feature。gff 无法parse这些行。

我拿到的几个文件就有这样的问题,于是自己写了脚本把孤儿feature给remove了,remove就可以了!

脚本:/var/www/html/jbrowse/JBrowse-1.11.5/Pineapple_genome_project/evidence/remove_illegal.py

命令:

python remove_illegal.py pineapple_protein2genome.gff

会生成不含孤儿feature的gff文件:pineapple_protein2genome.gff_rmillegal

###########################################################

执行完后也会在/var/www/html/jbrowse/JBrowse-1.11.5/Pineapple_genome_project/trackList.json里生成对应的track, 你可以对该track添加一些玩意, 比如加上category等信息。

最后的track如下所示:

{
          "style" : {
             "className" : "generic_parent",
             "subfeatureClasses" : {
                "match_part" : "match_part"
             },
             "arrowheadClass" : "arrowhead"
          },
          "key" : "protein2genome-pineapple",
          "storeClass" : "JBrowse/Store/SeqFeature/NCList",
          "trackType" : null,
          "urlTemplate" : "tracks/protein2genome-pineapple/{refseq}/trackData.json",
          "compress" : 0,
          "label" : "protein2genome-pineapple",
          "category" : "Evidence",
          "type" : "FeatureTrack"
       },

以后海宝再让我加什么文件 这里没描述的 我再补充

pingping need view her maf file in the jbrowse. jbrowse does not support this format, but support bed format. so we should convert maf to bed first.

the command:

import step:

1, move the reference and bed file to the /www/pingping_jbrowse dir.

2, creat a dir 'pingping_Osativa' under jbrowse dir.

3, creat assembly and lastz_result dirs and ln -s files to these two dirs respectively.

4,under jbrowse dir:

./bin/prepare-refseqs.pl --fasta pingping_Osativa/assembly/Osativa_204.fa --out ./pingping_Osativa/

./bin/flatfile-to-json.pl --bed pingping_Osativa/lastz_result/Osativa_204.bed --trackLabel lastz_result --key lastz_result  --out pingping_Osativa/

导入的速度很慢,结果如下图:

By freemao.

FAFU.

free_mao@qq.com

jbrowse 的配置与使用gff, vcf, fa, bed, bam的更多相关文章

  1. 依据gff切fa并翻译为蛋白质

    #!/usr/bin/python import re import sys import gzip change={'A':'T','T':'A','C':'G','G':'C','N':'N'} ...

  2. GFF高仿QQ客户端及服务器

    一.GFF简介 GFF是仿QQ界面,通信基于SAEA.MessageSocket.SAEA.Http.SAEA.MVC实现包含客户端和服务器的程序,源码完全公开,项目源码地址:https://gith ...

  3. 高通APQ8074 spi 接口配置

    高通APQ8074 spi 接口配置 8074 平台含有两个BLSP(BAM Low-Speed Peripheral) , 每一个BLSP含有两个QUP, 每一个QUP可以被配置为I2C, SPI, ...

  4. 配置 BizTalk Server

    使用“基本配置”或“自定义配置”配置 BizTalk Server. 基本配置与自定义配置       如果配置使用域组,则进行“自定义配置”. 如果配置使用自定义组名称而不是默认组名称,则进行“自定 ...

  5. snakemake使用小结

    首先在linux 里配置conda 下载 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linu ...

  6. SAMTOOLS使用 SAM BAM文件处理

    [怪毛匠子 整理] samtools学习及使用范例,以及官方文档详解 #第一步:把sam文件转换成bam文件,我们得到map.bam文件 system"samtools view -bS m ...

  7. GenomicConsensus (quiver, arrow)使用方法 | 序列 consensus

    https://github.com/PacificBiosciences/GenomicConsensus GenomicConsensus 是pacbio开发的,我个人非常不喜欢pacbio开发的 ...

  8. bedtools 用法大全

    原文:https://cloud.tencent.com/developer/article/1078324 前言: bedtools等工具号称是可以代替普通的生物信息学数据处理工程师的!我这里用一个 ...

  9. Augustus指南(Trainning部分)

    Augustus指南 官方 Tutorial Index Augustus是一个真核生物基因预测软件,目前有网页服务端和本地版,它基于Hidden-Markov Model(隐马尔科夫链模型HMM)( ...

随机推荐

  1. JS访问剪切板中的图片

    google出来一个html2canvas,它利用canvas来渲染读取的DOM树,也就是说它只能截取document里的内容,如果要像qq截图那样,应该怎么做?用过百度的Ueditor编辑器的朋友都 ...

  2. POJ 2240 && ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0

    http://poj.org/problem?id=2240 用log化乘法为加法找正圈 c++ 110ms,g++tle #include <string> #include <m ...

  3. synergy配置 Ubuntu作Server, Win 7作client

    Synergy 允许你轻松地在你办公桌上多台计算机之间共享你的鼠标和键盘,它免费并且开放源代码.你只要将鼠标(指针)从一台计算机的屏幕边缘移出到另一个屏幕就行 了.甚至可以共享你的剪贴板.你所需要的仅 ...

  4. jquery插件理解看这

    zepto 插件写法 一个更换背景颜色的小插件 html 1 <div id="box">content</div> javascript 12345678 ...

  5. 简易模仿手机拨号盘浮在ListView之上并且展开,折叠效果

    2013-12-24 16:56:45 有时候可以看到很多手机会将Call log list和Dailer放在同一个页面中,同时Dialer是可以折叠.打开的,自己做了一个Demo,能实现这种效果,简 ...

  6. word2vec使用说明

    word2vec是一个将单词转换成向量形式的工具.可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度. 一.理论概述 (主要来源于http://lic ...

  7. UITextView添加一个placeholder功能

    控件UITextField有个placeholder属性,UITextField和UITextView使用方法基本类似,有两个小区别:1.UITextField单行输入,而UITextView可以多行 ...

  8. fragment 添加menu

    http://bbs.51cto.com/thread-1091458-1-1.html 有详解 @Override public void onCreate(Bundle savedInstance ...

  9. a Makefile

    obj-m += showpid.o obj-m += ps.o all: make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) mo ...

  10. 关于SharePoint REST中的授权的研究

    博客地址:http://blog.csdn.net/FoxDave 当我们开发SharePoint APP需要调用REST服务时,可以使用OAuth完成授权,也可以使用跨域库.以下是微软专家的一段注解 ...