2018 11/27 誤字修正
Scaffoldingはすべてのゲノムアセンブリパイプラインの重要なステップである。scaffoldingにより、メイトペアライブラリやロングリードなどのさまざまなタイプのリンケージ情報を使用してコンティグをより長い配列にアラインできる。 ここでは Scaffold Graph ToolKit(SGTK)と呼ばれるソフトウェアパッケージを提供する。このソフトウェアパッケージは、さまざまな種類のシーケンシングデータを使用してscaffold graphを構築し、視覚化することを可能にする。Scaffold graphは、ゲノムアセンブリの分析と評価に役立つ。
インストール
mac os10.14のminiconda3-4.3.21環境でテストした。
依存
SGTK produces a JavaScript-based HTML page that does not require any additional libraries and can be viewed in a regular web browser. Although it was tested in Chrome, FireFox, Opera and Safari, Chrome is preferred.
- sgtk -> python >=3.6,<3.7.0a0
- gcc (version 5 or higher) / Clang (version 3.6 or higher)
- cmake (version 3.5 or higher)
- zlib
- Threads
- Biopython
- Boost
- SEQAN (version 2.4 or higher)
If you plan to construct graph using sequencing data or reference genome you will also need the following aligners (installed automatically if you use conda):
- minimap2 for aligning DNA sequences (long reads, read-pairs, scaffolds or reference genome)
- STAR for mapping RNA-Seq
本体 Github
#Anaconda環境でcondaを使い導入
conda install -c olga24912 -c conda-forge -c bioconda sgtk
> sgtk.py
$ sgtk.py
usage: sgtk.py [-h] [--local_output_dir LOCAL_OUTPUT_DIR] [--contigs CONTIGS]
[--scaffolds SCAFFOLDS] [--fastg FASTG] [--gfa GFA]
[--fr FR FR] [--rf RF RF] [--ff FF FF] [--fr_sam FRSAM FRSAM]
[--rf_sam RFSAM RFSAM] [--ff_sam FFSAM FFSAM] [--long LONG]
[--rna-p RNAP RNAP] [--rna-s RNAS] [--ref REF]
[--refcoord REFCOORD REFCOORD] [--gr GRAPH] [--scg SCG]
[--scafinfo SCAFINFO] [--scafpath SCAFPATH]
[--label [LABEL [LABEL ...]]] [--color [COLOR [COLOR ...]]]
optional arguments:
-h, --help show this help message and exit
--local_output_dir LOCAL_OUTPUT_DIR, -o LOCAL_OUTPUT_DIR
output folder
--contigs CONTIGS, -c CONTIGS
path to contigs in FASTA format
--scaffolds SCAFFOLDS, -s SCAFFOLDS
path to scaffolds in FASTA format
--fastg FASTG path to assembly graph in FASTG format
--gfa GFA path to assembly graph in GFA1 format
--fr FR FR paths to forward-reverse paired reads in FASTQ/FASTA
format
--rf RF RF paths to reverse-forward paired reads in FASTQ/FASTA
format
--ff FF FF paths to forward-forward paired reads in FASTQ/FASTA
format
--fr_sam FRSAM FRSAM paths to alignment of forward-reverse paired reads in
SAM/BAM format
--rf_sam RFSAM RFSAM paths to alignment of reverse-forward paired reads in
SAM/BAM format
--ff_sam FFSAM FFSAM paths to alignment of forward-forward paired reads in
SAM/BAM format
--long LONG path to long reads (PacBio/Oxford Nanopore) file in
FASTQ/FASTA format
--rna-p RNAP RNAP paths to RNA-Seq paired reads in SAM/BAM format
--rna-s RNAS path to RNA-Seq single reads in SAM/BAM format
--ref REF path to reference genome in FASTA format
--refcoord REFCOORD REFCOORD
path to ref and to alignment of contigs to reference
in coord format
--gr GRAPH path to graph in .gr format
--scg SCG path to file with connection list
--scafinfo SCAFINFO path to .info file with information about scaffolds
--scafpath SCAFPATH path to .paths file with information about scaffolds
--label [LABEL [LABEL ...]], -l [LABEL [LABEL ...]]
list with labels for all sorces in the corresponding
order
--color [COLOR [COLOR ...]]
list with colors for all sorces in the corresponding
order
テストラン1
1、準備
git clone https://github.com/olga24912/SGTK.git
cd SGTK-master/resources/test_dataset
2、SGTKを実行。SGTKにはアセンブリGFAフォーマットファイルやFASTGファイルを指定できるが、このテストランでは、リンク情報のあるGFA/FASTGファイルは使わない(*1)。代わりにcontigのFASTAファイルと、ペアエンドリード、scaffolds、リファレンスを指定している。これらの情報はminimap2でcontigのFASTAにマッピングされ、リンク情報としてグラフ可視化に利用される。
sgtk.py -c contigs.fasta \
--fr read_1.fasta read_2.fasta \
--scafinfo scaf.info \
--label PE scaffolds \
--color "#0000ff" "#00ff00" \
--ref ref.fasta \
-o output
上記コマンドでは、ラベル名の指定と、リンク(edge)の色指定もしている。以下の色を指定している。順番はフラグを立てた順番に対応している。
3、ブラウザで開く。main.htmlを叩くか、端末からAppsを指定して開く。ここでは推奨されているGoogle Chromeを使用。
open output/main.html -a /Applications/Google\ Chrome.app/
ブラウザで開いた。このtoyデータセットのcontigは、2配列: contig0、contig1のみで構成されており、グラフは非常にシンプルになる。
contigが頂点(サークル部分)、リンク情報が色付きの矢印として表現されている。リンクはコマンド実行時にhex numberで指定したカラーで塗られている(上で指定した順番だと、ペアエンド情報は#0000ff、scaffolding情報は#00ff00のカラー)。頂点のサークルの大きさはcontigのサイズの対数スケールを反映している。
上の図で2種類のリンクがあるということは、ペアエンドとscaffoldsの2つの情報のサポートがあるということになる。ロングリード、リファレンス、メイトペアなど別のソースがあれば、その分だけ矢印は増えていく(色指定がないと、自動で異なる色がアサインされる)。
右上からcontig1に切り替えた(contig0とcontig1は繋がっているので画面に変化はない)。さらにマウスのホイールボタンを使い少しだけ縮小した。
画面をクリックしたまま引っ張ればスクロールできる。
contig0と1に描画を切り替えたが、この機能は、グラフが複雑になって視認性が悪くならないよう実装されたものと思われる。全ゲノムアセンブリなどでは、グラフの全ての頂点を同時に描画すると、非常に複雑なグラフになってしまうことが多い。SGTKは頂点の数が一定数を越えると、自動で適当な数に分割して描画する(Github参照)。
左のメニューのVertices(頂点、すなわちcontig)のNameにチェックをつけ、contig名を表示。
左のメニューのEdgesの項目から、nameにチェックをつけた。
エッジのwight情報、contigのkengthにもチェックをつけた。
今回はscaffolds情報をscaffolds配列ではなくinfoファイルで与えている。そのためscaffolds情報のウエイトは1になっているが、ペアエンドリードはマッピング数でウエイトが与えられており、29になっている。
今回のようにリファレンスゲノムが指定されている場合、contigがリファレンスにアライメントされている。左のメニューのLayputからGenome browerに切り替え、左下のDrawボタンを押すと、リファレンスに沿ってcontigが配置される。
contigがサークル表示から横長の長方形表示に切り替わった。contig2つだけからなり、contig0-contig1の順で、それぞれリファレンスに順方向アライメントされていることが分かる。
テストラン2
実際のゲノム配列では、バクテリアのisolatesのデータセットでも、リピートが多いとかなり複雑になる。exampleのE.coliデータセットを開く。
cd SGTK-master/resources/E.coli/
open main.html -a /Applications/Google\ Chrome.app/
開いたところ(full graph view)
複雑に見えるが、これでもグラフの全要素は表示されていない(画像右端にたくさんのcontig選択肢がある事に注目)。
Genome browerレイアウトに切り替えた。
contigはリファレンスにアライメントされ、リファレンスに沿ってアライメントされるところは最初の例と同じだが、下の方に頂点のサークルがある。サークル表示されるcontigは、リファレンスにはアライメントされないcontig、非常に短いcontigが対象になる。
思ったよりシンプルに感じるが、短いcontigは、俯瞰表示中は非表示になったり、まとめられているため、リンクの線が見えていないのが原因。表示するには、サークルの外線周りが太い黒線のサークルをクリックする。
展開すると、再び太い黒線のサークルが出てきた。クリックするたび展開されていく。右クリックで一時的に非表示にもできる。
長方形やサークルの中の色は、どのリファレンスにアライメントされるかで決まる。いずれのリファレンスにもアンマップのcontig(頂点)は青色で塗られる(ただしリンクの線はある)。
上ではchromosome1に赤が指定されている。よって、赤色になっているcontigはchromosome1にアライメントされている意味している。また、同じchromosomeのリバースにアライメントされる場合、そのリファレンスにアサインされているカラーが薄く設定される。下の図のピンクは、赤のリファレンスのリバースにアライメントされている事になる。
複数のリファレンス配列にアライメントされる場合、頂点のサークルは複数の色で塗られパイチャートのようになる。
フリーレイアウトモードでも、リファレンスのカラーが反映されている。
Filtrationの項目からは様々な条件でフィルタリングし、可視化するグラフの要素を限定できる。
by scaffolds nameでは、-s で指定したscaffoldsに限定して表示できる (詳細はGithubのFree layout modeの説明参照link)。
nodeは右上の検索窓から探せる。100と検索。
id:100に飛んだ。検索窓の下には他の候補も表示されている。
GFAファイルを指定して実行
アセンブリのGFA(Graphical Fragment Assembly )ファイル、またはFASTGファイルがある場合、直接読み込んで可視化できる。
#FASTGファイルを指定
sgtk.py --fastg assembly.fastg
#GFAファイルを指定
sgtk.py --gfa assembly.gfa
#GFAファイルにリファンレスも指定
sgtk.py --gfa assembly.gfa --ref ref.fa
#GFAファイルにリファンレス+リード指定
sgtk.py --gfa assembly.gfa --fr pair1.fq pair2.fq --long pacbio.fq --ref ref.fa
SGTKにはRNA seqのシーケンシングデータを使うこともできます。使い方はGithubで確認して下さい。
感想
アセンブラが作ったGFAファイルから可視化したグラフと、同じアセンブラから得たcontigとペアエンド情報などから可視化したグラフが同じグラフ構造になるとは限りません。SGTKは、複数のソースからリンクを全て可視化しウエイトをつけたり、フィルタリングして信頼度の高いリンクを絞り込むことができます。キメラアセンブリの検出や、Finishingへのアプローチを絞り込むのに活躍するのではないでしょうか?
引用
SGTK: a toolkit for visualization and assessment of scaffold graphs
Olga Kunyavskaya, Andrey D Prjibelski
Bioinformatics, bty956, Published: 22 November 2018
*1
FASTGフォーマットやGFAフォーマットについては別途紹介する予定です。