macでインフォマティクス

macでインフォマティクス

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

系統樹の可視化と操作のための柔軟でモジュール性のGUIソフト TreeViewer

 

 系統樹は、分類群間あるいは遺伝子間の進化的関係を示す。樹形図は結果やデータを提示する際に非常に重要であり、明確で効果的なプロットを作成することで、研究者は多くの種類の進化パターンを説明することができる。しかし、系統樹を作成するのは時間のかかる作業であり、特に、ツリーに関連するすべてのデータを調整し図示するためには、複数の異なるプログラムが必要になることが多い。本著者らは、系統樹を描くための新しいソフトウェア、TreeViewerを紹介する。TreeViewerは柔軟でモジュール化されており、ユーザーフレンドリーである。プロットはユーザー定義のパイプラインの結果として作成され、細かくカスタマイズでき、異なるツリーに簡単に適用できる。プログラムのすべての機能はドキュメント化されており、オンラインマニュアルやプログラムのインターフェイスから簡単にアクセスできる。TreeViewerがどのように出版準備の整った図を作成するために使用され、グラフィカルな後処理ツールを追加する必要がなく、時間を節約できるかを示す。TreeViewerはWindowsmacOSLinuxオペレーティングシステムで自由に利用でき、https://treeviewer.org、AGPLv3ライセンスの下で配布されている。グラフィカルユーザーインターフェイスGUI)とコマンドラインインターフェイスがあり、非常に大きなツリーや自動化されたパイプラインを扱うのに便利である。例題やチュートリアルを含む詳細なユーザーマニュアルも用意されている。TreeViewerは、1つのGUIソフトウェアツールを使って、高度にカスタマイズされた出版品質のツリー図を作成したいユーザーを主な対象としている。ほかのGUIツールと比較して、TreeViewerはより豊富な機能と細やかなカスタマイズ性を提供する。また、コマンドラインベースのツールやソフトウェアライブラリと比べても、TreeViewerのグラフィカルインターフェースはよりアクセスしやすくなっている。TreeViewerの柔軟な系統樹描画アプローチにより、多様な論文掲載向け図の作成が可能となる。ユーザー自身が独自のカスタムモジュールを作成して機能を拡張することも推奨されており、TreeViewerは新たな課題にも柔軟に対応できる、拡張性と適応性に富んだソフトウェアフレームワークとして発展し続けることが期待されている。

 

Example(様々な使用例が詳細な解説付きで公開されている)

https://github.com/arklumpus/TreeViewer/wiki/Workload-examples

 

 

インストール

使用しているOSのインストーラーをHPからダウンロードする。Apple silicon macにもネイティブに対応している。

HP

https://treeviewer.org/

 

Github

 

実行方法

Window版について紹介します。

 

初期起動時は追加データのインストールなどが行われる。Openでファイルを読み込む。

 

こちらのTime Treeのデータを使います。

https://github.com/arklumpus/TreeViewer/wiki/Plotting-the-age-distributions-in-a-time%E2%80%90calibrated-tree

”(マニュアルより)ベイズ分子時計解析を実行すると、「アンサンブル」と呼ばれる複数の系統樹が生成され、これらは事後分布からの(できれば偏りのない)サンプルとなります。つまり、解析の結果は各祖先の単一の年代ではなく、「年代分布」、すなわち系統樹内の各祖先が特定の時点に存在した事後確率を示すものです。ベイズ分子時計解析の結果は一般的に、各ノードがその平均または中央値の年代に位置し、各ノードに信頼区間(例えば95%最高事後密度区間)を示すバーを描いたコンセンサスツリーとして要約されます。これに加えて、TreeViewerは単純なバーの代わりに分布の実際の形状をプロットすることも可能であり、これにより分布の広がりや、特に非対称または多峰性の分布の場合の様子をより明確に把握できます。

clock.treファイルには、シアノバクテリアベイズ分子時計解析中にサンプリングされた1000本の系統樹が含まれており、それぞれの系統樹には42株が含まれています。ファイルを開くと、TreeViewerは複数の系統樹が含まれていることを認識し、自動的にコンセンサスツリーを計算します。”

 

clock.treファイルを開いた。

 

系統樹の画面はドラッグで自由にスクロールでき、マウスホイールで自由に拡大縮小できる。

 

コンポーネントはモジュール単位で管理されている。モジュールは系統樹の枝、枝の上のラベル、tipのラベルのような単位になっている。編集するには、ModulesのPlot actionをクリックする。左にメニューが出てくるので、ここから現時点で視覚化されているモジュールの視覚的な編集が出来る。

(各モジュール右のxボタンをクリックするとそのモジュールが削除される。枝自体を消すことも出来る。)

 

Labelsを選択してLabelsメニューを展開した。それからFontボタン(図の左下)をクリックしてFontをTimes Roman、8 pointに変更した。

 

Further transformationを選択。

 

それからAdd Moduleをクリックして新しいモジュールを追加できる。

Add Moduleで選べるモジュールには、信頼性の低いノードを潰して表現したり(collapse node)、rerootしたりソートしたりするモジュールも含まれている。

 

Scale Barsモジュールを追加した。

 

Scale axisモジュールを追加した(写真の底と天井部分)。ラベルされる数値のDigits(小数点以下の表示)は0にした。またTick spacingの数値を整数にすると目盛りにも整数が表示される。

 

UnitsにMyaと指定。Myaが端に表示された。

 

次にCoordinates moduleをクリックして、系統樹の幅を700に変更した。

このようにCoordinates moduleでは系統樹の縦横のサイズ、回転、環状の系統樹への変換などが出来る。

 

使用したデータはベイズ分子時計解析で得られたたくさんの系統樹が含まれていて、TreeViewerに読み込んでコンセンサスツリーとして表示している。したがって、このコンセンサスツリーにはたくさんのサンプリングされたツリーからの祖先の分岐年代の誤差範囲などの統計情報が含まれていると言える。そこで、分岐年代についての誤差範囲を示すプロットを追加する。

ノードの年齢分布をプロットに追加するには、2段階の手順が必要。まず最初に、分布を計算だけする。このステップはファイル内のすべての樹形を処理するため比較的時間がかかることがある。

Further transformationモジュール => Set up age distributionsを選択、

 

条件を設定して実行する。Applyをクリック。

これによって各ノードへ対応する年齢分布が関連付けられる。

 

次に、ModulesのPlot action => Add moduleからAge distributionsを追加する。

 

追加された。各ノードの年齢分布はバイオリンプロットとして描画される(ヒストグラムに変更することも可能)。このバイオリンプロットはカーネル密度推定(KDE)でスムーズ化されたものではなく、サンプル数が多いためスムーズに見える(=バイオリンプロットともう1つ選べるヒストグラムは完全に同等)。

このように2段階のプロセスが必要なのは、プロットを描くたびに年齢分布を再計算する必要があるとパフォーマンスが悪くなるためと説明されている。

 

年齢分布を樹形の背面に表示したい場合は、左のパネルでAge distributionモジュールをドラッグして上に移動させ、プロットリストの最初の要素にする(メニューで下に表示されているモジュールほど画面上では上に表示される)。ここでは一番上に移動させ、透明度は0にした。

バイオリンプロットが枝の背面に移動している。

 

枝の上下の間隔が狭く重なってしまっているため、oordinates moduleをクリックして系統樹の高さを1000に変更した。

 

Highlight nodesでgradientを選択、モジュールは一番背面に移動した。

 

Plot actions => Draw imageで書き出しできる。

 

チュートリアルではさらに特定のバイオリンプロットだけに色を付けて強調し、レジェンドや文字を追加する流れが説明されています。

 

その他

Apply to other treeで他の系統樹にも同じ設定を適用可能。

 

EditのUndoをクリックするとアクションの取り消しが可能。Redoボタンもある。

 

Autosaveにも対応しているので、間違ってアプリを閉じてしまったときも直近のチェックポイントから再開出来ます。

細かいところまで行き届いており、非常に完成度が高い系統樹アプリケーションだと思います。

引用

TreeViewer: Flexible, modular software to visualise and manipulate phylogenetic trees

Giorgio Bianchini, Patricia Sánchez-Baracaldo

Ecol Evol. 2024 Feb 1;14(2):e10873.

 

関連