系統:Arch Linux
JBrowse版本:1.12.1shell假設JBrowse安裝目錄爲:/www/jb
假設下載保存路徑爲:/pub1/dl
假設JBrowse安裝的服務器爲:http://localhost:3003數據庫
本文是開源基因組瀏覽器JBrowse教程系列的第二篇,還沒有部署好JBrowse的同窗請移步第一篇安裝篇json
所謂基因組瀏覽器就是經過這個工具查看基因組,具體包括參考基因組序列,哪一個地方是外顯子、那個地方是內含子等等功能。參考基因組就是一個fasta文件,哪一個地方是外顯子、哪一個地方是內含子這些信息稱之爲特徵,通常狀況下NCBI、ENSEMBL等數據庫都會提供GFF3格式的基因組特徵文件,關於GFF3格式的說明請參考個人另一篇文章GFF3格式說明。瀏覽器
如下以擬南芥爲例演示怎麼使用JBrowse。服務器
下載擬南芥基因組:工具
$ wget ftp://ftp.ensemblgenomes.org/pub/release-36/plants/fasta/arabidopsis_thaliana/dna/Arabidopsis_thaliana.TAIR10.dna.toplevel.fa.gz
下載擬南芥基因組特徵文件:url
$ wget ftp://ftp.ensemblgenomes.org/pub/release-36/plants/gff3/arabidopsis_thaliana/Arabidopsis_thaliana.TAIR10.36.abinitio.gff3.gz
解壓:命令行
$ gzip -d Arabidopsis_thaliana.TAIR10.dna.toplevel.fa.gz $ gzip -d Arabidopsis_thaliana.TAIR10.36.abinitio.gff3.gz
JBrowse安裝目錄下的bin目錄提供了不少方便使用的perl腳本,例如:3d
$ cd /www/jb $ ls bin add-bam-track.pl add-json.pl bam-to-json.pl cpanm flatfile-to-json.pl jbdoc maker2jbrowse prepare-refseqs.pl ucsc-to-json.pl add-bw-track.pl add-track-json.pl biodb-to-json.pl draw-basepair-track.pl generate-names.pl json2conf.pl new-plugin.pl remove-track.pl wig-to-json.pl
其中bin/prepare-refseqs.pl
是用來格式化參考基因組序列的。
使用方法爲:
$ prepare-refseqs.pl --fasta <file1>
即:
$ bin/prepare-refseqs.pl --fasta /pub1/dl/Arabidopsis_thaliana.TAIR10.dna.toplevel.fa
這時你看一下data目錄,發現目錄下多了一些文件:
$ tree -L 2 data data ├── seq │ ├── 1ad │ ├── 536 │ ├── 6dd │ ├── 83d │ ├── 84b │ ├── ac0 │ ├── f3b │ └── refSeqs.json ├── trackList.json └── tracks.conf
其中seq目錄下的1ad、536等等目錄都是存放格式化好的參考基因組文件的。
格式化特徵文件須要用到bin/flatfile-to-json.pl
這個腳本,使用方式爲:
$ bin/flatfile-to-json.pl (--gff <GFF3 file> | --bed <BED file> | --gbk <GenBank file>) --trackLabel <track identifier>
也就是說你這個特徵文件能夠是GFF三、BED、GBK三種中的一種(熟悉Linux命令行的同窗應該可以很輕易地看懂這個說明),另外必須提供trackLabel
這個參數,來指定這個track的ID,這個參數會做爲名字顯示在基因組瀏覽器的左側的tracks那一列。
即:
$ bin/flatfile-to-json.pl --gff /pub/dl/Arabidopsis_thaliana.TAIR10.36.abinitio.gff3 --trackLabel 'GFF3 Annotations'
運行完畢,再打開data/trackList.json
你就會發現多了一些東西:
{ "tracks" : [ { "seqType" : "dna", "key" : "Reference sequence", "storeClass" : "JBrowse/Store/Sequence/StaticChunked", "chunkSize" : 20000, "urlTemplate" : "seq/{refseq_dirpath}/{refseq}-", "label" : "DNA", "type" : "SequenceTrack", "category" : "Reference sequence" }, { "style" : { "className" : "feature" }, "key" : "GFF3 Annotations", "storeClass" : "JBrowse/Store/SeqFeature/NCList", "trackType" : null, "urlTemplate" : "tracks/GFF3 Annotations/{refseq}/trackData.json", "compress" : 0, "type" : "FeatureTrack", "label" : "GFF3 Annotations" } ], "formatVersion" : 1 }
這個文件是當前的全部的track,以JSON文件存儲,其實就是一個文本而已,不過這個文本對程序是友好的,仔細閱讀你就會發現有兩個track,再看看不就是我剛剛格式化的參考基因組和特徵文件嘛!
這個時候通常你打開瀏覽器輸入http://localhost:3003
就能夠訪問了,可是有一個隱患。JBrowse默認是支持多個基因組的,並且默認bin
目錄下的各類腳本的輸出路徑都是data
目錄,那若是我下次又想弄一個基因組,通過上面兩步也放到了data
目錄,那豈不是很混亂?JBrowse已經爲咱們想好了解決方案,你只須要把如今的data
目錄改一下名字就好了:
$ mv data Arabidopsis_thaliana
下次再把另一個基因組放進來時,bin
目錄下的腳本又會默認放到data目錄,就不會發生混亂啦!
這時你訪問http://localhost:3003
就會發現這是一個錯誤頁,由於http://localhost:3003
不加參數的話默認就是訪問data
目錄的數據,如今你把data
目錄重命名固然不存在啦。如今想訪問剛剛的擬南芥數據能夠給這個URL加上get
參數,即:http://localhost:3003/?data=Arabidopsis_thaliana
,也就是把data=
後面的字符換成剛剛修改後的文件夾的名字。
另外,若是你把JBrowse部署在內網,卻想讓外網訪問到,而部署JBrowse的服務器又在防火牆後面的話,請必定要記得把jbrowse.conf
加入到防火牆白名單,由於防火牆默認會把這種.conf
結尾的文件屏蔽。