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)( ...
随机推荐
- ios下input focus弹出软键盘造成fixed元素位置移位
正常状态下 input focus软键盘弹出时 问题描述: 头部结构fixed,滚动到下部内容区域,input.textarea等focus弹出软键盘时,头部位置偏移被居中(该问题ios7 beta3 ...
- 转: ORACLE索引介绍和使用
1.什么是索引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据: Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引: 索引由根节点.分支节点 ...
- 告别硬编码-发个获取未导出函数地址的Dll及源码
还在为找内核未导出函数地址而苦恼嘛? 还在为硬编码通用性差而不爽吗? 还在为暴搜内核老蓝屏而痛苦吗? 请看这里: 最近老要用到内核未导出的函数及一些结构,不想再找特征码了,准备到网上找点符号文件解析的 ...
- HDU 4405 Aeroplane chess 概率DP 难度:0
http://acm.hdu.edu.cn/showproblem.php?pid=4405 明显,有飞机的时候不需要考虑骰子,一定是乘飞机更优 设E[i]为分数为i时还需要走的步数期望,j为某个可能 ...
- Ajax入门
实例如下: <html> <head> <script type="text/javascript"> function loadXMLDoc( ...
- ASP.NET MVC学习之路由篇(3)
根据路由输出链接 既然是网站开发自然少不了链接,我们已经学会了强大的路由,但是还缺少一步就是能够将这些路由的路径输出到页面,下面我们就开始学习如何输出路由路径. 首先我们的路由注册部分如下所示: 1 ...
- IT公司100题-1-二叉树转换为双链表
问题描述: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向. 10 / \ 6 14/ \ / \4 8 1 ...
- WP8.1 Study2:MapControl控件的应用
总的界面布局如下:
- COJ 1287 求匹配串在模式串中出现的次数
这里要在后缀自动机的节点中维护一个从到达当前位置出现的字符串总个数 这里新添加进来的节点的状态出现的次数必然为1 另外包含所能达到这个节点所能到达的状态一定是将它作为父亲的点 那么说明将它作为父亲的点 ...
- cvWaitKey
OpenCV中的一个函数 函数原型为: C++: int waitKey(int delay=0) Python: cv2.waitKey([delay]) → retval C: int cvWai ...