これは何
メタゲノム初心者のバイオインフォマティシャンがメタゲノム解析に入門するのにいくつかパイプラインを漁ったメモ
- モチベーション
- とにかく手元にいっぱいfastqファイルがあるからまずざっくり functional profiling をして注目する遺伝子機能を絞り込んだりしたい
- MiSeqとHiSeqのデータ合わせて数百サンプルと、結構データ量が多いので軽ければ軽いほどいい
MOCAT2 (2016)
-
コマンドライン一発でとにかく全部できるやつ
。クオリティコントロール、アセンブル、eggnogを用いたfunctional profiling、mOTU profilingなどとにかく機能がリッチ。 - しかし2018年の4月以降開発が止まっているようで、マニュアルとかHPの情報とか色々不完全な部分が多くて辛かったす。
- 断念した一番の理由はスケジューラ絡みで、僕の環境(NQSII)だとうまく走りませんでした。SGEとかなら対応してるっぽい。
- 単なるperlのラッパースクリプトなので自分でmodifyを試みたのですが、メインのモジュールの最初にグローバル変数がめちゃくちゃ羅列してあったりコード追うの困難で結局断念
- 今思えばqsubモードを使わずに動かすshell scriptをqsubで投げればいけるような気もする?
- MOCAT使ってる論文、解析手法の記述がめちゃくちゃ短くてすごいなと思いました(だいたいMOCAT2使いましたで終わる)。
NG-meta-profiler (2018)
- NGLessというomix解析専用のドメイン固有言語のメタゲノム拡張版みたいなやつ
- 文法はpythonっぽいらしいのでbiopythonとか使う感覚でいけるのだろうか(
pythonesque
は初めて見た表現だったのですがモンティパイソンっぽい
という意味の単語だそうです)
Basic Properties
The syntax is a pythonesque syntax with Ruby-like blocks.
The types are statically and strictly.
Types are implicit, but limited language allows for type inference and checking.
Quality control is implicit and mandatory (you get it for free)
Types are domain types (biological).
- MOCAT2と同じチームが作っていて、こっちに移行してるっぽい雰囲気
- まだプレプリントで引用ゼロ件の段階で、それなりに習得コストが高そうな言語を使うのはややリスキー?仕様変更とか怖いですし。
- しかしドメイン固有言語でomix解析の辛さを減らすという発想は良さそうだし、天下のPeer Borkラボが作っているので今後エコシステムが広がるといいなとは思う
FMAP (2016)
- MOCAT2と似たようなパイプライン構築ツール。
- Functional profilingに特化しており、MOCAT2より設計がだいぶミニマム。やりたいことごとにperlのmoduleが分かれているのも良い
- 依存関係のあるツールを一つずつインストールしなければいけないが、それさえやれば動かすのは簡単だった
- uniplotからBacteria、Archaea、Fungiのデータのみを抜き出し、さらにKEGGのorthologyに当たる配列のみを抽出したsubsetを作っていて、そこにdiamondでsearchをかけるので爆速。機能わからん遺伝子に当たってもしょうがなくない?という思想は結構アリだな。
- BMTaggerでhuman由来の配列の除去とlow-quality readsの除去はやってくれるっぽいが、phixの除去とかadaptorの除去とかは自前でやる必要あり
僕の選択
- TrimGalore(アダプター除去)
- Flash(ペアエンドマージ)
- bowtie2(remove phix)
- prinseq(remove low complexity reads)
- FMAP(functional profiling)
結局この流れでやることにして、luigiでパイプラインを組みました。
所感
とりあえずざっくりとメタゲノムデータのfunctional profilingまでしたいのであれば
- eggnog を使いたい ->
NG-meta-profiler
(動くならMOCAT2でも) - KEGG module に当てたい ->
FMAP
という感じでしょうか。あと数年待てばNG-meta-profiler
がいい感じになっていくのかもしれません。QIIME/mothur
のような感じでNG-meta-profiler
が使われるようなところまでいけば、業界的にはハッピーな気がします。