macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

アセンブリのグラフを可視化し、アセンブリの評価・分析を助ける SGTK

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.

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)の色指定もしている。以下の色を指定している。順番はフラグを立てた順番に対応している。

f:id:kazumaxneo:20181124125158j:plain

 

3、ブラウザで開く。main.htmlを叩くか、端末からAppsを指定して開く。ここでは推奨されているGoogle Chromeを使用。

open output/main.html -a /Applications/Google\ Chrome.app/

ブラウザで開いた。このtoyデータセットのcontigは、2配列: contig0、contig1のみで構成されており、グラフは非常にシンプルになる。

f:id:kazumaxneo:20181124121100j:plain

contigが頂点(サークル部分)、リンク情報が色付きの矢印として表現されている。リンクはコマンド実行時にhex numberで指定したカラーで塗られている(上で指定した順番だと、ペアエンド情報は#0000ff、scaffolding情報は#00ff00のカラー)。頂点のサークルの大きさはcontigのサイズの対数スケールを反映している。

上の図で2種類のリンクがあるということは、ペアエンドとscaffoldsの2つの情報のサポートがあるということになる。ロングリード、リファレンス、メイトペアなど別のソースがあれば、その分だけ矢印は増えていく(色指定がないと、自動で異なる色がアサインされる)。

 

右上からcontig1に切り替えた(contig0とcontig1は繋がっているので画面に変化はない)。さらにマウスのホイールボタンを使い少しだけ縮小した。

f:id:kazumaxneo:20181124121326j:plain

画面をクリックしたまま引っ張ればスクロールできる。

 

contig0と1に描画を切り替えたが、この機能は、グラフが複雑になって視認性が悪くならないよう実装されたものと思われる。全ゲノムアセンブリなどでは、グラフの全ての頂点を同時に描画すると、非常に複雑なグラフになってしまうことが多い。SGTKは頂点の数が一定数を越えると、自動で適当な数に分割して描画する(Github参照)。

 

左のメニューのVertices(頂点、すなわちcontig)のNameにチェックをつけ、contig名を表示。

f:id:kazumaxneo:20181124121519j:plain

 

 

左のメニューのEdgesの項目から、nameにチェックをつけた。

f:id:kazumaxneo:20181124124157j:plain

 

エッジのwight情報、contigのkengthにもチェックをつけた。

f:id:kazumaxneo:20181124124814j:plain

今回はscaffolds情報をscaffolds配列ではなくinfoファイルで与えている。そのためscaffolds情報のウエイトは1になっているが、ペアエンドリードはマッピング数でウエイトが与えられており、29になっている。

 

 

今回のようにリファレンスゲノムが指定されている場合、contigがリファレンスにアライメントされている。左のメニューのLayputからGenome browerに切り替え、左下のDrawボタンを押すと、リファレンスに沿ってcontigが配置される。

f:id:kazumaxneo:20181124125744j:plain

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)

f:id:kazumaxneo:20181124131029j:plain

複雑に見えるが、これでもグラフの全要素は表示されていない(画像右端にたくさんのcontig選択肢がある事に注目)。 

 

Genome browerレイアウトに切り替えた。

f:id:kazumaxneo:20181124131140j:plain

contigはリファレンスにアライメントされ、リファレンスに沿ってアライメントされるところは最初の例と同じだが、下の方に頂点のサークルがある。サークル表示されるcontigは、リファレンスにはアライメントされないcontig、非常に短いcontigが対象になる。

 

思ったよりシンプルに感じるが、短いcontigは、俯瞰表示中は非表示になったり、まとめられているため、リンクの線が見えていないのが原因。表示するには、サークルの外線周りが太い黒線のサークルをクリックする。

f:id:kazumaxneo:20181124221649p:plain

展開すると、再び太い黒線のサークルが出てきた。クリックするたび展開されていく。右クリックで一時的に非表示にもできる。

 

長方形やサークルの中の色は、どのリファレンスにアライメントされるかで決まる。いずれのリファレンスにもアンマップのcontig(頂点)は青色で塗られる(ただしリンクの線はある)。

f:id:kazumaxneo:20181124223643p:plain

 

上ではchromosome1に赤が指定されている。よって、赤色になっているcontigはchromosome1にアライメントされている意味している。また、同じchromosomeのリバースにアライメントされる場合、そのリファレンスにアサインされているカラーが薄く設定される。下の図のピンクは、赤のリファレンスのリバースにアライメントされている事になる。

f:id:kazumaxneo:20181124223835p:plain

 

 

複数のリファレンス配列にアライメントされる場合、頂点のサークルは複数の色で塗られパイチャートのようになる。

f:id:kazumaxneo:20181124222119p:plain

 

フリーレイアウトモードでも、リファレンスのカラーが反映されている。

f:id:kazumaxneo:20181124224401p:plain

 

Filtrationの項目からは様々な条件でフィルタリングし、可視化するグラフの要素を限定できる。

f:id:kazumaxneo:20181127070922p:plain

by scaffolds nameでは、-s で指定したscaffoldsに限定して表示できる (詳細はGithubのFree layout modeの説明参照link)。

 

 

nodeは右上の検索窓から探せる。100と検索。

f:id:kazumaxneo:20181124224925p:plain

 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フォーマットについては別途紹介する予定です。