macでインフォマティクス

macでインフォマティクス

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

遺伝子水平伝播を検出する kvasirHGT

 

 マイクロバイオームの組成を特徴付けること、そして自然システムの生態学、農業および人間の健康におけるそれらの重要性を理解することにおいて、大きな進歩がなされてきた。しかしながら、これらの進歩にもかかわらず、マイクロビオームの多様性、構造、および機能を形成する力は、よく理解されていないままである(Widder et al、2016)。これらの根底にあるメカニズムをその場で調査することは困難である、なぜなら観察およびシーケンスに基づく分析は因果的結論を可能にすることはめったにないからである(Nemergut et al、2013, pubmed)。高レベルの多様性およびほとんどのバクテリア種の純粋培養を確立することが困難なために、in virtoで微生物群集を複製することもまた非常に大きな課題である。これらの障害は、微生物の多様性の観察から種の相互作用や微生物の進化などの重要な過程を形成する分子メカニズムへと移行する私たちの能力を著しく妨げている。

 遺伝子水平伝播(HGT)は、微生物の進化における主要な力であり、そして新規機能の大規模な獲得につながり得る。場合によっては、これらの新規な機能は、抗生物質耐性遺伝子の導入などにおいて、適応的に重大な結果をもたらす可能性がある(Ochman et al、2000)。生態学的に関連性のある遺伝子は、以前は特定のニッチに適応していなかった種によって獲得される可能性があるので、HGTは新しいニッチへの迅速な適応も可能にする(Wiedenbeck and Cohan、2011)。(Tasse et al、2010; Hehemann et al、2010)。微生物の新しい環境への移動は、HGTの速度と影響の両方を増大させることが示されており、HGTはポジティブセレクション下の遺伝子に最も頻繁に見られる(Niehus et al、2015)。新しい環境への移行では、微生物は、新しい非生物的条件(温度、水分、塩分、pH、栄養素)、および微生物の存在による新しい生物的課題と機会に直面する可能性がある。

 微生物群集のコンテンツ内でHGTを評価することは、この重要なプロセスの範囲、メカニズム、および生態学的影響に関する新しい洞察を提供する可能性がある。ゲノムシーケンシングの進歩は、環境的に、医学的にそして経済的に重要なマイクロバイオーム内でHGTを垣間見始めている(McDaniel et al、2010; Andam et al、2015)。例えば、新規の食物源から栄養素を獲得することを可能にする遺伝子の共有(病原性アイランドおよび抗生物質耐性遺伝子)を含む、共生ヒトマイクロバイオーム全体を通して広範な遺伝子共有が観察されている(Hehemann et al、2010,  Smillie et al、 2011)。土壌(Coombs and Barkay、2004; Heuer and Smalla、2012)や水生環境(McDaniel et al、2010; Frischer et al、1994)などの他の自然生息地では、広範囲にわたるHGTの証拠がある。これらの研究は微生物群集に移入される可能性がある遺伝子の頻度と潜在的な影響への貴重な洞察を提供するが、これらのシステムの複雑さはそれらの進化と生態学に対するこれらのHGTイベントの影響のさらなる検討を難しくしている。

 発酵食品の微生物群集は、新規の人為的環境で成長した結果として強いselectionを経験する。以前の研究は、HGTが食物システムや他の人間が管理する環境における適応の主要な力となり得ることを実証してきた(Andam et al、2015; Rossi et al、2014)。チーズからの微生物種の以前の分析は、この環境におけるHGTのいくつかの例を明らかにした。ミルクの初期発酵に使用されるラクトバチルスおよびラクトコッカスなどの乳酸菌(LAB)は、抗生物質耐性遺伝子を保有することが知られており、病原性腸球菌および他の病原性微生物への移入のための貯蔵所であり得る(Wang et al、2006; Mathur and Singh、2005)。他の食品関連細菌も抗生物質耐性遺伝子導入に寄与している可能性がある(Cocconcelli et al、2003; Delorme、2008;Flórez et al、2005)。ヨーグルトでは、LABを用いて、代謝遺伝子のHGTがprotocooperativeの種L. bulgaricus

S. thermophilus 間で観察されている(Li et al、2013; Liu et al、2009)。チーズ製造環境から分離されたペニシリウム種のシーケンシングにより、これらのチーズの主要な菌類間でHGTのlarge genomic islandが同定された(Cheeseman et al、2014; Ropars et al、2015; Gibbons and Rinker、2015)。

 洞窟や老朽化した部屋での伝統的なスタイルのチーズの熟成中、バクテリアと菌類はrindと呼ばれる多種のバイオフィルムを形成する(Button and Dutton、2012)。著者らは以前に、実験的に扱いやすいシステム内で、継承や種間相互作用などのコミュニティベースのプロセスを調べるためにこれらのコミュニティを使用できることを示した(Wolfe et al、2014; Kastman et al、2016)。これらのバイオフィルムは菌類が密集しており、チーズの皮に含まれる微生物は限られた栄養素(遊離アミノ酸、鉄など)や細胞ストレス (Monnet et al、2015) に耐えるために厳選されている。HGTがチーズの皮のマイクロバイオームに広まっているかもしれず、それゆえ微生物群集内でHGTのための有用な実験モデルを提供するかもしれない。

 著者らは、チーズの皮から単離された細菌種におけるHGTの多様性、分布、および機能的含有量を決定しようとした。具体的には、(1)HGTが広く普及する、(2)HGT遺伝子がチーズ環境での生存に関連する機能が強化される、および(3)分類群にわたってHGTイベントが不均一に分布すると予測した。著者らは、新しく単離されシーケンシングされたチーズ関連バクテリア種(31ゲノム)および公共のデータベースで入手可能なもの(134の追加ゲノム)のゲノムを分析した。(一部略)特に、我々は、複数の放線菌、プロテオバクテリア、およびFirmicutes種内で共有されている3つの大きな multi-geneアイランドを同定した。これらのゲノム領域は関連していないが、鉄の獲得を含む類似の機能を有するように思われ、そして地理的に離れたチーズに広く分布している。(一部略)

 

 Documentation

https://kvasir.readthedocs.io/en/latest/

 

kvasirHGTに関するツイート

 

インストール

centos7のpython2.7環境でテストした(docker使用、ホストOS mac os10.14)。

依存

  • blast+
  • You will also need install the other python Dependencies (biopython, pandas, pymongo), and mongodb

biopython, pandas, pymongoはpipで導入、mongoDBは以下を参考にして入れた。

本体 Github

pip install kvasirHGT

>kv_import.py -h

$ kv_import.py -h

usage: kv_import.py [-h] -i INPUT [-v] [-q] [--debug] [-l LOG] mongodb

 

Import genbank files

 

positional arguments:

  mongodb               The name of MongoDB database

 

optional arguments:

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

  -i INPUT, --input INPUT

                        File or directory to import

  -v, --verbose         Display debug status messages

  -q, --quiet           Suppress most output

  --debug               set logging to debug

  -l LOG, --log LOG     File path for log file

> kv_distance.py -h

# kv_distance.py -h

usage: kv_distance.py [-h] [-o OUTPUT] [-i INPUT] [-t DISTANCE_TYPE] [-f] [-v]

                      [-q] [--debug] [-l LOG]

                      mongodb {ani,distance_matrix}

 

Kvasir Analysis commands

 

positional arguments:

  mongodb               The name of MongoDB database

  {ani,distance_matrix}

                        which analysis command to run (ani, distance_matrix)

 

optional arguments:

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

  -o OUTPUT, --output OUTPUT

                        File path for output (usable with distance_matrix)

  -i INPUT, --input INPUT

                        File path for input (usable with distance_matrix)

  -t DISTANCE_TYPE, --distance-type DISTANCE_TYPE

                        Type of distance to get from db (usable with

                        distance_matrix)

  -f, --force           Overwrite duplicate records

  -v, --verbose         Display debug status messages

  -q, --quiet           Suppress most output

  --debug               set logging to debug

  -l LOG, --log LOG     File path for log file

> kv_analysis.py -h

# kv_analysis.py -h

usage: kv_analysis.py [-h] [-v] [-q] [--identity IDENTITY] [-s SPACER]

                      [--length LENGTH] [-d SPECIES_DISTANCE] [-g GROUP_SIZE]

                      [-t DISTANCE_TYPE] [-o OUTPUT] [-l LOG] [--debug]

                      mongodb {groups}

 

Kvasir Analysis commands

 

positional arguments:

  mongodb               The name of MongoDB database

  {groups}              which analysis command to run (groups, species_hits)

 

optional arguments:

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

  -v, --verbose         Display debug status messages

  -q, --quiet           Suppress most output

  --identity IDENTITY   minimum identity for BLAST hits

  -s SPACER, --spacer SPACER

                        Maximum distance between genes to be considered in the

                        same group

  --length LENGTH       Minimum length (nt) for each protein coding gene

  -d SPECIES_DISTANCE, --species-distance SPECIES_DISTANCE

                        Minimum distance between species (0-1)

  -g GROUP_SIZE, --group-size GROUP_SIZE

                        Minimum number of genes in a group

  -t DISTANCE_TYPE, --distance-type DISTANCE_TYPE

                        Type of distance to get from db (usable with species-

                        distance)

  -o OUTPUT, --output OUTPUT

                        File path for output (usable with distance_matrix)

  -l LOG, --log LOG     File path for log file

  --debug               set logging to debug

 

 

実行方法

1、準備

データベースディレクトリの作成、mongoDB起動、およびHGTを予測するgbkファイルのデータベースへの読み込みを行う。

mkdir ~/.mongo_databases

#起動
mongod --dbpath ~/.mongo_databases &

#genbankファイルのディレクトリの読み込み(.gb or .gbk)。名前はsample1とする。
kv_import.py sample1 -i path/to/genbank/files

 ここではレポジトリのテストgbkファイル2個を使う。

f:id:kazumaxneo:20190209180818p:plain

 

2、blast実行

#blastデータベース作成。"-b"で指定したディレクトリにblastデータベースファイルができる
kv_blast.py sample1 makedb -v -b ~/blastdbs

#blastallを総当たりで行う。結果はmongoDBに保存される。時間がかかるので"-v"で進捗表示推奨。
kv_blast.py sample1 blastall -v -b ~/blastdbs

 

3、ゲノム比較

ここからは使用したデータによって流れが変わる。同じ属のゲノムが2つ以上存在しないなら、十分に距離が離れているので、このままHGT geneを検出して問題ない(step4に進む)。同じ属のゲノムが複数あるなら、かなり近い可能性もある。まずANIを指標にゲノムを比較し、距離が十分近いのか、それなりに距離があるのか分析する。

#まずこのコマンドをaniをつけ実行。ANI計算する(ファイル出力は無い)
kv_distance.py sample1 ani

#計算が終わったら距離行列を出力
kv_distance.py sample1 distance_matrix -o ~/returned_ssu_dm.csv

kv_distance.pyはgenbankは同じ属と判定されたゲノムのANIを総当たりで計算するスクリプトだが、genbankファイルのSOURCE行に<genus> <species> <strain>情報がある時だけ機能することに注意する。

ジョブが終わるとdistance matrixファイルが出力され、その中で、同一ゲノムは"0"、違いうゲノムは"1"がアサインされる。この方法が気に入らないなら、ユーザが作成した行列ファイルを読み込むこともできる(フォーマット詳細はマニュアル参照)。step4ではこの結果を元にHGT geneを検出下限閾値を設定するが、この方法では0/1しかアサインできず使えないので、互いにclosely relatedな菌のゲノムを使うなら、自分で用意しないといけない(このスクリプトの結果を使うとHGTを過剰検出してしまう)。

 

4、分析

kv_analysis.py sample1 groups -o ~/groups.csv

出力(excelで開いた)

f:id:kazumaxneo:20190209180217p:plain

 

追記

距離を調べるには、以下のデータベースと分類ツールが使えると思います。

引用
Extensive horizontal gene transfer in cheese-associated bacteria
Kevin S Bonham, Benjamin E Wolfe, Rachel J Dutton

eLife. 2017; 6: e22144

 

関連