macでインフォマティクス

macでインフォマティクス

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

KEGGのパスウェイアノテーション結果を視覚化する KEGG-Decoder

 2020 2/25 わかりにくい説明を修正

 2023 6/29  追記

 

 好気性非酸素発生型光合成生物(AAnP)は海洋環境で一般的であり、光従属栄養活動に関連している。現在までに、炭素固定の可能性を持っているAAnPは、表層海洋では確認されていない。 Tara Oceansメタゲノムデータセットを使用して、非酸素発生型光合成、Calvin-Benson-Bassham cycleを介した炭素固定、および亜硫酸塩とチオ硫酸塩の酸化のゲノムポテンシャルを持つ9つの細菌のドラフトゲノムを特定した。アルファプロテオバクテリア内で単系統のクレードを形成し、培養されたrepresentativesを欠いているこの微生物は、ローカルの微生物群集の微量成分(0.1〜1.0%)を構成するが、世界的に分布し、北アフリカ、地中海、東アフリカ沿岸州、および大西洋からの複数のサンプルに存在する。この発見から、この生物群が世界の炭素循環で果たす役割を理解するためには、海洋の微生物群集の再調査が必要かもしれない。

Supplemental Information and Metholodyより

 Tara Oceansメタゲノムデータセットを使用したいくつかの研究から生成された3,655の非冗長MAGのコレクションおよび紅海からのコレクションについて、Prodigalを使用して推定DNAコード配列(CDS)を予測した。対象のパスウェイと代謝の評価は、スクリプトKEGG-decoder.py(www.github.com/bjtully/BioData/tree/master/KEGGDecoder)を使用して決定した。タイプII光化学反応センター(PufML)のMおよびLサブユニットと、リブロース-1,5-ビスリン酸カルボキシラーゼ(RbcLS)の大小のユニットとして割り当てられた遺伝子が予測されるゲノムについてスクリーニングした。目的のAAnPゲノムを特定した後、ゲノムの品質を手動で評価した。

(以下略)

 

インストール

依存

  • Pandas
  • Seaborn
  • matplotlib
  • tanglegram

本体 Github

python3 -m pip install KEGGDecoder

#dockerhubのイメージ例(link)(動作確認済み)
docker pull fmalmeida/keggdecoder

KEGG-decoder -h

# KEGG-decoder -h

usage: KEGG-decoder [-h] [-i INPUT] [-t TANGLEOPT] [-o OUTPUT] [-v VIZOPTION]

                    [--newick NEWICK] [-m MYORDER]

 

Accepts KEGG KOALA text file as input. Produces function list and heat map

figure.

 

optional arguments:

  -h, --help            show this help message and exit

  -i INPUT, --input INPUT

                        Input KOALA file. See documentation for correct format

  -t TANGLEOPT, --tangleopt TANGLEOPT

                        Number of tree iterations for minimizing tangles in

                        tanglegram

  -o OUTPUT, --output OUTPUT

                        List version of the final heat map figure

  -v VIZOPTION, --vizoption VIZOPTION

                        Options: static, interactive, tanglegram

  --newick NEWICK       Required input for tanglegram visualization

  -m MYORDER, --myorder MYORDER

                        Orders output as specified by user.

 

 

データの準備

各ゲノムのタンパク質配列を合体させたファイルを作る。同じゲノム由来の配列は1つにまとめられるので、同じゲノム由来と判別できるヘッダー名にする。例えば、ゲノム1はNORP1_で始まるヘッダー名、ゲノム2はNORP2_で始まるヘッダー名などとする。

> NORP1_1

xxxxxxxxxxxxxxxxx

> NORP1_2

xxxxxxxxxxxxxxxxx

> NORP1_3

xxxxxxxxxxxxxxxxx

.

.

> NORP2_1

xxxxxxxxxxxxxxxxx

> NORP2_2

xxxxxxxxxxxxxxxxx

> NORP2_3

xxxxxxxxxxxxxxxxx

.

 (xxxは...アミノ酸配列)

このような感じのmulti-fastaを準備する。これをクエリにして、KEGG-KOALA (GhostKoala, BlastKoala, or KOFAMSCAN)を走らせ、KEGG identifierをアサインする。

 

注;KEGG-Decoderのランでは"_"が区切りになる。よって"生物名_通し番号"のような配列の名前ならKEGG-Decoderは正しく生物間を識別できる。しかし”属名_種小名_配列名”のような配列名だと属名で丸められてしまう(同じ属全てが1行に丸まる)。よってKEGGアノテーションを行う配列は

>genome1_xxx1

>genome1_xxx2

>genome1_xxx3

....

>genome2_xxx1

>genome2_xxx2

>genome2_xxx3

...

のような配列名にsedであらかじめ置換しておく(-eで複数同時置換)。KEGG-Decoderのラン後のtsvかhtmlに対してsedをかけて再び元に戻す。面倒だが、これでroundされるエラーは回避できる。

 

下の画像はGhostKOALAの結果になる。downloadから結果をダウンロードする。

f:id:kazumaxneo:20200223123604p:plain

出力例

f:id:kazumaxneo:20200223215058p:plain

アサインできていないタンパク質配列があっても、フィルタリングは不要。このテキストをそのままクエリにして KEGG-Decoderを走らせる。

 

 

テストラン (KEGG-Decoderのインストールが必要)

binderラウンチ用のレポジトリを使う。speeding-up-science(HP)が管理しているレポジトリになる。

git clone https://github.com/speeding-up-science-workshops/KEGGDecoder-heatmap.git
cd KEGGDecoder-heatmap/
KEGG-decoder --input TOBG-MED.TREEMATCH.koalaoutput.txt --output TOBG-MED.decoder.tsv --vizoption interactive

interactiveなヒートマップとして視覚化される。

f:id:kazumaxneo:20200223113755p:plain

 

f:id:kazumaxneo:20200223113757p:plain

 

 

 

binnerを使う (KEGG-Decoderのインストールは不要)

環境を汚したくないならbinderを使う(下の参考資料参照)。binderにアクセスする。 

Binder

f:id:kazumaxneo:20200223125813p:plain

 

GithubのURL(https://github.com/speeding-up-science-workshops/KEGGDecoder-heatmap)をペーストしてlaunchする。

f:id:kazumaxneo:20200223130052p:plain

 

jupyter notebookが立ち上がったらKEGG IDアサイン結果のテキストをアップロードする(デモデータを使うなら不要)。

f:id:kazumaxneo:20200223130601p:plain

 

python3のノートブックを立ち上げる。

f:id:kazumaxneo:20200223130545p:plain

実行する。 システムコマンドを実行するので先頭に"!"をつける。

#interactive
!KEGG-decoder --input TOBG-MED.TREEMATCH.koalaoutput.txt --output TOBG-MED.decoder.tsv --vizoption interactive

#static
!KEGG-decoder --input TOBG-MED.TREEMATCH.koalaoutput.txt --output TOBG-MED.decoder.tsv --vizoption static

#treeファイルもあるならtanglegram出力が可能 (demoには入っている)
!KEGG-decoder --input TOBG-MED.TREEMATCH.koalaoutput.txt --output TOBG-MED.decoder.tsv --vizoption tanglegram --newick GToTree_output.newick

Runをクリック

f:id:kazumaxneo:20200223131849p:plain

ジョブが終わったらjupyter notebookから結果の.tsvファイルと.svgファイルをダウンロードする。 

 

 

ローカルでのラン (KEGG-Decoderのインストールが必要)

ダウンロードしたテキストをクエリにして、KEGG-decoderを実行する。

KEGG-decoder --input query.txt --output output.tsv --vizoption interactive
  • --vizoption <VIZOPTION>    Options: static, interactive, tanglegram
  • --newick <NEWICK file>    Required input for tanglegram visualization

interactive

f:id:kazumaxneo:20200223132813p:plain

 static出力ベクターグラフィックファイル(adobeイラストレーター互換SVG

f:id:kazumaxneo:20200223125459p:plaintanglegramを実行するなら、ユーザーが前もって実行したゲノムの相同性などに基づく分類結果のNewick formatのツリーファイルが必要(ファイル名が共通している事)。tanglegramは3ゲノム以上から対応している。

 

KEGG-Expanderは別に紹介します。

引用

Potential for primary productivity in a globally-distributed bacterial phototroph

E. D. Graham, J. F. Heidelberg, B. J. Tully
The ISME Journal volume 12, pages1861–1866(2018)

 

 関連

 

eggNOG-mapperでもKIはアサインできる(クエリはアミノ酸)。


参考