最近做了一个关于基因开发的项目,要求最终输出的文件可以在专门的基因浏览器上边显示,类似统计图的东西。废话不说上图(表示表达不出来0.0)!
先说下Jbrowse这个东西吧,一句话:一个简单的,便携式依靠javascript的基因组浏览器。没用过觉得挺高大上的,难度挺高。实际上用过之后觉得也就是那回事,没多少难度,很容易上手。因为我是在虚拟机上边访问,用的是linux系统,所以这里我以linux为版本简述一遍:
1.安装
与其说是安装我还是觉得下载比较好。为什么?实际上也就是下载一个文件,文件夹里面拥有很多的js和conf配置文件,用web浏览器访问基因浏览器的时候加载这些配置,完成基因浏览器的显示效果。
首先在虚拟机下建立一个存放jbrowse的文件夹
找到一个版本获取他的下载链接
wget -c 下载链接
下载好一般就是在你当前的文件夹里面,找到他进行解压
unzip 文件名称
解压好后进入解压好的目录中,然后执行
./setup.sh
如果你可以在界面模式下访问虚拟机。你也可以直接进入到解压好的文件夹里面,找到index.html打开它。如果可以 看到如下图所显示,恭喜你,安装成功了。
如果你是用的黑窗口来访问虚拟机的。可以在虚拟机上安装一个tomact,把Jbrowse放到tomact的webapps来访问。
2.处理数据文件
jbrowse可以展示大多数基因文件,但是基因文件是经过处理后才能展示的。我只说下bam和vcf的处理方法
第一步:在你加压后的文件夹内建立一个文件夹file
madir file
在file下建立seqfiles文件夹中放你需要导入的参考序列。
fasta file/seqfiles/**.fa
如果导入过参考序列后,又有新的序列需要导入,首先将配置文件中的参考序列删除,同时将产生的seq文件夹删除,将新的序列和之前的序列合并为一个fasta文件,再重新导入。
在新建的file文件夹下面会出现一个新的trackList.json文件。里面的内容是:
{"tracks":[
{
"chunkSize" : 20000,
"storeClass" : "JBrowse/Store/Sequence/StaticChunked",
"urlTemplate" : "seqfiles/seq_1/{refseq_dirpath}/{refseq}-",
"category" : "Reference sequence",
"type" : "SequenceTrack",
"label" : "DNA",
"key" : "Reference sequence"
}
],"formatVersion":1}
在之前打开的页面链接上边加上条件data=file,选中左边seq,点击上边放大按钮显示如下,既添加成功
第二部:在file里面建立一个新的bamfile,把需要的bam文件放进去
只有sort的bam文件才能显示出来,所以:
samtools sort file.bam (bam文件名) file.sorted (生成file.sorted.bam文件)
sort后进行index:
samtools index file.sorted.bam (生成file.sorted.bam.bai文件)
然后在file文件夹下面的trackList.json文件中添加红色字体部分:
{"tracks":[
{
"chunkSize" : 20000,
"storeClass" : "JBrowse/Store/Sequence/StaticChunked",
"urlTemplate" : "seqfiles/seq_1/{refseq_dirpath}/{refseq}-",
"category" : "Reference sequence",
"type" : "SequenceTrack",
"label" : "DNA",
"key" : "Reference sequence"
},
{
"storeClass" : "JBrowse/Store/SeqFeature/BAM",
"urlTemplate" : "./bamfile/file.sorted.bam",
"label" : "file.sorted.bam",
"category" : "BAM",
"key" : "file.sorted.bam",
"type" : "JBrowse/View/Track/Alignments2"
},
{
"storeClass" : "JBrowse/Store/SeqFeature/BAM",
"urlTemplate" : "./bamfile/file.sorted.bam",
"label" : "file.bam.sorted.bam_coverage",
"category" : "BAM",
"key" : "file.bam.sorted.bam_coverage",
"type" : "JBrowse/View/Track/SNPCoverage"
}
],"formatVersion":1}
刷新之前打开的页面,页面左边有明显的变化(出现红色边框圈起来的部分,选中它们),展示信息出现了(这里我这边已经把bam和vcf加好了,不要在意这些细节0.0),如果没有展示信息出现,尝试把头部Help下方的红色框往左边移动试试,可能是你的数据只是一部分,是截断过的。
第三部:在file文件夹下面建立一个vcffile文件夹,把vcf文件放进去
bam文件需要sort和index后才能展示,同样,vcf文件需要压缩和index后才能展示
bgzip file.vcf (得到vcf文件的压缩文件*.vcf.gz后,会删除原文件,做好保留原文件的操作)
tabix-p vcf file.vcf.gz (对*.vcf.gz文件做好index后,得到*.vcf.gz.tbi文件)
在file下面的trackList.json中做好vcf的配置,添加下面红色字体部分(因为我的vcf文件是个错误的文件,就不展示页面了)
{"tracks":[
{"chunkSize" : 20000,"storeClass" : "JBrowse/Store/Sequence/StaticChunked","urlTemplate" : "seqfiles/seq_1/{refseq_dirpath}/{refseq}-","category" : "Reference sequence","type" : "SequenceTrack","label" : "DNA","key" : "Reference sequence"},
{"storeClass" : "JBrowse/Store/SeqFeature/BAM","urlTemplate" : "./bamfile/file.sorted.bam","label" : "file.sorted.bam","category" : "BAM","key" : "file.sorted.bam","type" : "JBrowse/View/Track/Alignments2"},
{"storeClass" : "JBrowse/Store/SeqFeature/BAM","urlTemplate" : "./bamfile/file.sorted.bam","label" : "file.sorted.bam_coverage","category" : "BAM","key" : "file.sorted.bam_coverage","type" : "JBrowse/View/Track/SNPCoverage"},
{"storeClass" : "JBrowse/Store/SeqFeature/VCFTabix",
"urlTemplate" : "./vcffile/file.vcf.gz",
"type" : "JBrowse/View/Track/CanvasVariants",
"category" : "VCF",
"key" : "file.vcf",
"label" : "file.vcf"}
],"formatVersion":1}
Jbrowse学习: