jbrowse 的配置与使用gff, vcf, fa, bed, bam
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.
jbrowse 的配置与使用gff, vcf, fa, bed, bam的更多相关文章
- 依据gff切fa并翻译为蛋白质
#!/usr/bin/python import re import sys import gzip change={'A':'T','T':'A','C':'G','G':'C','N':'N'} ...
- GFF高仿QQ客户端及服务器
一.GFF简介 GFF是仿QQ界面,通信基于SAEA.MessageSocket.SAEA.Http.SAEA.MVC实现包含客户端和服务器的程序,源码完全公开,项目源码地址:https://gith ...
- 高通APQ8074 spi 接口配置
高通APQ8074 spi 接口配置 8074 平台含有两个BLSP(BAM Low-Speed Peripheral) , 每一个BLSP含有两个QUP, 每一个QUP可以被配置为I2C, SPI, ...
- 配置 BizTalk Server
使用“基本配置”或“自定义配置”配置 BizTalk Server. 基本配置与自定义配置 如果配置使用域组,则进行“自定义配置”. 如果配置使用自定义组名称而不是默认组名称,则进行“自定 ...
- snakemake使用小结
首先在linux 里配置conda 下载 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linu ...
- SAMTOOLS使用 SAM BAM文件处理
[怪毛匠子 整理] samtools学习及使用范例,以及官方文档详解 #第一步:把sam文件转换成bam文件,我们得到map.bam文件 system"samtools view -bS m ...
- GenomicConsensus (quiver, arrow)使用方法 | 序列 consensus
https://github.com/PacificBiosciences/GenomicConsensus GenomicConsensus 是pacbio开发的,我个人非常不喜欢pacbio开发的 ...
- bedtools 用法大全
原文:https://cloud.tencent.com/developer/article/1078324 前言: bedtools等工具号称是可以代替普通的生物信息学数据处理工程师的!我这里用一个 ...
- Augustus指南(Trainning部分)
Augustus指南 官方 Tutorial Index Augustus是一个真核生物基因预测软件,目前有网页服务端和本地版,它基于Hidden-Markov Model(隐马尔科夫链模型HMM)( ...
随机推荐
- JS引用类型之——RegExp
前言 之前小猪分享过关于正则表达式的一些内容,具体请看传送门,今天小猪来分享怎么在js中使用正则表达式. 定义 ECMAScript通过RegExp类型来支持正则表达式.使用下面类似Perl的语法,就 ...
- True bar
真彩bar /***========================================================================= ==== ==== ==== D ...
- ViewPager滑动页面的实现方法
package com.lixu.pagerview; import java.util.ArrayList; import android.app.Activity; import android. ...
- 快餐问题(dp好题)
Peter最近在R市开了一家快餐店,为了招揽顾客,该快餐店准备推出一种套餐,该套餐由A个 汉堡,B个薯条和C个饮料组成.价格便宜.为了提高产量,Peter从著名的麦当劳公司引进了N条 生产线.所有的生 ...
- 宜家的幸福生活,源于K2 BPM的支撑
很久很久以前,有一篇很火的文章在各大网站被疯狂转载<一个在北欧生活10年的MM,告诉你为什么北欧全球幸福指数第一>,开头第一段就已经让人羡慕嫉妒恨了. "下午的四.五点钟,北欧人 ...
- [windows驱动]标准驱动例程
[注]routine:例行程序. 1.标准驱动例程简介: 每一个内核态驱动程序都是由一系列系统定义的,标准的驱动例程组成.内核态驱动在这些标准例程中通过调用系统提供的驱动支持函数处理I/O请求包.为了 ...
- idea常用快捷键大全(转)
IntelliJ Idea 常用快捷键列表 文章来自:http://lavasoft.blog.51cto.com/62575/97730/ Alt+回车 导入包,自动修正Ctrl+N 查 ...
- 破解Xamarin
试用了一阵子Mono For Android,今天到期了,,囊中羞涩,只好破解. 说是要在vs2013的英文界面下运行破解包,不知道是真是假,下载并安装了一个. 然后又下载了破解包.是个名为xa.ra ...
- android 经典下雨效果
英文原文地址:https://blog.stylingandroid.com/snowfall/ 中文翻译地址:http://www.open-open.com/lib/view/open145226 ...
- Apache虚拟主机(三)
一.启用 httpd-vhosts.conf 在httpd.conf文件中启用 在文件中搜索:Virtual hosts #Virtual hosts虚拟主机 Include conf/extra/h ...