JBrowse2とは
- 公式サイト https://jbrowse.org/jb2/
- ゲノム配列と遺伝子の位置を可視化するツール
- webアプリケーションとデスクトップ(オフライン)アプリケーションがある
バージョン1との違い
公式サイトを和訳 https://jbrowse.org/jb2/features/
2でできるようになったこと
- トラック読み込み中のステータス更新(例:BAMインデックスをダウンロード中...)
- BAM/CRAMタグによるソート、カラー、フィルター、その他の高度なオプション
- トラックの解析とレンダリングにウェブワーカーを使用
- アプリ内での設定のインタラクティブな編集をサポート
- リニアビューを「フリップ」または逆に補完することが可能
- Hi-Cデータのレンダリング
- 複数の染色体を1つのビューで表示可能
- アラインメントトラックでのリードパイルアップのソート
- アラインメントトラックにソフトクリッピングを表示
- データセットの表形式ビューを内蔵
- UCSCトラックハブを開くことができる
- スクリプトを実行せずにプラグインの追加と削除が可能
- 管理者以外のユーザーがトラックを開き、他のユーザーと共有できる
- NPMを使ってJavaScriptプロジェクトにエンベッディング可能
- Reactアプリケーションに直接エンベッディング可能
2ではできなくなったこと(前のバージョンではできた)
- 名前の検索 例:遺伝子名/IDを入力して検索する機能
- URLクエリAPI
- 例: ブラウザのURLバーで ?loc=chr1:1-100 を指定する
あれれ、これは地味に困る...?
ウェブサイトに組み込んでいる場合は単純に置き換えできなさそうなので注意が必要
JBrowse2をスパコン上で動かす
- スパコン上で動かしてポートフォワードを利用してウェブブラウザから見る
- bamなど大きいファイルをlocalにダウンロードせずに見えるんじゃないか(注1
- 以前のバージョンではapacheが必要なので設定が面倒だった
- 2はNode.jsで動くのでapacheの設定不要なのがうれしい
注1 この目論見はちょっと外れたっぽい(後述)
手順
ツールのインストール
Node.jsをcondaでインストール(必要なら仮想環境を作ってから)
任意の場所に、GithubからJBrowse2のバイナリをダウンロードする
$ conda install -c conda-forge nodejs
$ wget https://github.com/GMOD/jbrowse-components/releases/download/v1.0.4/jbrowse-web-v1.0.4.zip
npmでserveをインストール
$ npm install -g serve
zipファイルを解凍して、できたディレクトリjbrowse2
に移動
$ gunzip jbrowse-web-v1.0.4.zip
$ mv jbrowse-web-v1.0.4.zip jbrowse2
$ cd jbrowse2
config.jsonのバックアップを取っておく
ゲノム配列とgffの追加
なぜかvolvoxを入れてからでないとうまくいかなかった
$ jbrowse add-assembly http://jbrowse.org.s3.amazonaws.com/genomes/volvox/volvox.fa
$ jbrowse add-assembly /your/genome/path/genome/nanikano.genome.fa --load copy --target data --name nanikanogenome
$ jbrowse add-track /your/annotation/path/nanikano.gff.gz --load copy --name nanikanoannotation --trackID nanikanoannotation
config.jsonから手動でvolvoxを削除
実行
ポート33770で動かす(ポート番号は任意、だが30000番台にしておくと他のタスクに邪魔にならなそう)
$ npx serve -l 33770
ERROR: Cannot copy to clipboard: Couldn't find the required `xsel` binary. On Debian/Ubuntu you can install it with: sudo apt install xsel
┌────────────────────────────────────────────────────┐
│ │
│ Serving! │
│ │
│ - Local: http://localhost:33770 │
│ - On Your Network: http://XXX.XX.XX.XXX:33770 │
│ │
└────────────────────────────────────────────────────┘
(ネットワークのIPは伏せ字にした)
外からはポートフォワード(gwノードを踏み台にする)で
localのwebブラウザにhttp://localhost:8888
で見える
xsel
がないというエラーが出ているけど、見えるからOK?
(どうしたらエラーが解消されるのか、または無視していいのか、わかる人がいたらコメントください)
他の人(スパコンアカウントを持っている人)も一緒に見ることができる
ターミナルに以下のように入力する
atXXX
のところはjbrowse2が動いているノード名を入力
youraccout
はスパコンのアカウント名を入力
ssh -L 8888:atXXX:33770 youraccout@gw.ddbj.nig.ac.jp
localのwebブラウザにhttp://localhost:8888
と入れるとゲノムブラウザが見えるはず
bamの追加
シンボリックリンクだと表示できないので--load copy
にする(ディスク容量注意)
$ jbrowse add-track /bam/path/nanika01.bam --load copy -n 01
$ jbrowse add-track /bam/path/nanika02.bam --load copy -n 02
みてみよう
$ npx serve -l 33770
見えるけどloadにめちゃくちゃ時間かかる...
(Node.jsの設定まわりいじるとぬるぬる動くようになるかもしれない?)