2018 10/7 タイトル修正 、11/20 conda追加、12/12 テスト追記
2019 4/26 データベース追記
2022/06/25 help更新, 2033/09/26 コマンドの一部更新
ランダムDNAショットガンシーケンシングを使用すると、実験室培養を必要とせずに環境サンプルから全ゲノムDNAを直接得ることができる。この「メタゲノミック」アプローチは、細菌や古細菌の共同体の生物多様性、遺伝子含量、代謝プロセスの特徴を明らかにするための標準的な方法となっており、ますます大規模に使用されている(論文より ref,1,2,3)。ハイスループットシークエンシング(HTS)のコストの低下と、最近の健康と病気のための微生物の重要性の啓示により、メタゲノム分析は、病原体の日常的な臨床診断と検出の一部となる可能性が高い。
メタゲノミクスにおける主要な生物学的問題の1つは、微生物群集の組成、すなわちサンプリングされた生物の相対的存在量の推定である。 1つのアプローチは、メタゲノムシーケンスリードをコンティグに組み立て、それをリファレンスゲノムと比較することである。しかしメタゲノムアセンブリおよび定量はさらなる計算上の課題をもたらし、アセンブリフリーのtaxonomic classificationはより迅速でより簡単である。したがって、ランダムショットガンシーケンシングでは、基本的なアルゴリズム上の問題はリファレンスデータベースとの比較によって、taxonに対する個々のリードをアサインすることである。伝統的に、この作業はヌクレオチド配列、シーケンシングリードを微生物ゲノムのデータベースと比較するか、またはリードをアミノ酸配列に翻訳し、タンパク質レベルでカタログとアラインメントすることによって解決される。しかしながら、微生物ゲノムデータベースおよびシーケンス出力が増加すると、ローカル配列アラインメントに基づく従来の方法はデータ量増加に対処するには遅すぎ、計算方法が追いつく必要が出てきた。
クエリーとリファレンスゲノム間の短い完全一致(シード)の迅速な同定と拡張のため高度なindex構造を使用することで、マッピング問題に対してヒューリスティックな手法は桁違いの速度向上を達成している(ref.6)。しかし、これらのマッパーは、メタゲノムリードの分類には適していない。なぜなら、これらは、通常はセミグローバルなアラインメントモデルでDNAに作用するだけであり、リードはリファレンスゲノムに近いと仮定しているからである。
したがって、リファンレス配列のセット、典型的にはcomplete bacteria genomeのデータベースから構築されたハッシュベースのインデックス構造を用いることにより、迅速にシーケンスリードをtaxonomic classificationするプログラムが開発されている。高速化を達成するために、これらのアルゴリズムは、従来の伝統的なローカルアライメント法を使用せず、2つのヌクレオチド配列を比較するために、固定長kの短い正確に一致する部分文字列であるk-mersの同定に頼っている。リードの分類学上のアサインのために、これらのプログラムは、典型的には、含まれているすべてのk-merを抽出し、高速検索のためにそれらをインデックスに格納してリファンレンスゲノムを前処理する。次に、各リードに含まれるk-merをこのインデックスで検索し、一致するゲノムに基づいてリーードをタクソンに割り当てる。このパラダイムに続く最近のプログラムは、LMAT(ref.7)、Kraken(ref.8)(紹介)、Clark(ref.9)である。例えばKrakenは、リファレンスゲノム中に見出される全てのk-merからインデックスを構築し、各k-merを、そのk-merを有する全ての種の最小共通祖先(LCA)に割り当てる。次にKrakenはリード中の見つかったk-mersをこのインデックスにマッチさせ、最終的にツリーのルートからのパスをたどって、最も一致するk-mersを持つtaxonにリードをアサインする。一方、clarkは、あらかじめ定義された分類学上の階級に属するリファレンスゲノムのセット、例えば属を区別するk-merを使用し、その特定の階級における分類ツリーのノードにリードを分類する。しかしながら、このアプローチはインデックスのサイズを縮小するが、あいまい性がある場合にはより高い分類レベルにリードを割り当てることを禁止するので、ユーザは分類ツリーの各ランクに対して異なるインデックスを構築する必要がある。 LSAプログラム(ref.)では、ゲノムk-mersも使用されている。これは、低濃度の種のクラスタリングを助けるので、各種についてのメタゲノミックリードをビンに素早く分類できる。
(一段落 省略)
メタゲノム配列比較の別の一般的な問題は、利用可能なリファレンスゲノムの系統発生分布におけるサンプリングバイアスである。特定のモデル生物または病原体(例えば、ヒト微生物由来)が微生物研究の第一の標的であり、したがってゲノムデータベースにおいて過剰表現されている。一方で、実験室で培養することができなかった種は不十分であり、特に極端な環境からの環境試料を分類学的に分類するさらなる課題となっている。さらに、進化の速度は、真核生物と比較して微生物、特にウイルスではより高い複製速度のためにより速い。したがって、メタゲノム研究は、シーケンスデータの大部分が未分類のままであるか、または既知の種との低い配列類似性しか示さない。
タンパク質レベルの分類では、タンパク質配列がDNAよりも保存されており、精度が向上する可能性がある(ref.3,14)。さらに、タンパク質配列比較は、遺伝暗号の縮重による配列決定ミスに対してより寛容である。従って、アミノ酸配列の比較に基づいて、リファレンスゲノムを有する種の進化的遠縁親和性を検出できる高速メタゲノム分類器が必要である。 BlastPやBlastX(ref.15)などのタンパク質配列のシードベースのローカルアラインメントや、RapSearch(ref.16)やDiamond(ref.17)(紹介)のようなインデックス構造を使用した高速メソッドなど、いくつかのプログラムが存在する。しかし、これらのアラインメントプログラムは、一般にk-merベースの方法よりも遅く、またすべてのアライメントを出力するので、分類のためにさらに分析を行う必要がある。
ここでは、微生物タンパク質のリファレンスデータベースとの配列比較に基づく迅速なtaxonomic classificationのための新規プログラムであるKaijuを提示する。このアプローチが、リアルメタゲノムデータセットにおいてより多くのリードを分類し、パフォーマンスをベンチマーク研究で評価する。
公式HP
webサーバー
http://kaiju.binf.ku.dk/server
インストール
mac os 10.12でテストした。
https://github.com/bioinformatics-centre/kaiju
git clone https://github.com/bioinformatics-centre/kaiju.git
cd kaiju/src/
make
#またはcondaを使う
mamba install -c bioconda kaiju -y
> ./kaiju
Kaiju 1.9.0
Copyright 2015-2022 Peter Menzel, Anders Krogh
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Usage:
kaiju -t nodes.dmp -f kaiju_db.fmi -i reads.fastq [-j reads2.fastq]
Mandatory arguments:
-t FILENAME Name of nodes.dmp file
-f FILENAME Name of database (.fmi) file
-i FILENAME Name of input file containing reads in FASTA or FASTQ format
Optional arguments:
-j FILENAME Name of second input file for paired-end reads
-o FILENAME Name of output file. If not specified, output will be printed to STDOUT
-z INT Number of parallel threads for classification (default: 1)
-a STRING Run mode, either "mem" or "greedy" (default: greedy)
-e INT Number of mismatches allowed in Greedy mode (default: 3)
-m INT Minimum match length (default: 11)
-s INT Minimum match score in Greedy mode (default: 65)
-E FLOAT Minimum E-value in Greedy mode (default: 0.01)
-x Enable SEG low complexity filter (enabled by default)
-X Disable SEG low complexity filter
-p Input sequences are protein sequences
-v Enable verbose output
データベースの準備
初回はデータベースをダウンロードする。ディレクトリを作成し、そこでダウンロードコマンド"makeDB.sh"を実行する。解析対象に応じて、5種類のデータベースをダウンロードできる。5つを紹介する。
1、NCBI RefSeqからリファレンスゲノムのプロテインデータベースをダウンロードする。バクテリアとアーキアの完全長ゲノムが対象となっている。"-v"もつけるとウィリスもダウンロードされる。
kaiju-makedb refseq
2、proGenomes(pubmed)からバクテリアゲノムのプロテインデータベースをダウンロードする。proGenomesには2万5千以上の幅広い分類学上のクレードのバクテリアの詳細な情報つきデータが保管されている(地理情報なども含まれる)。Refseqより幅広いクレードのバクテリアデータが保管されており、1のRefseqより環境サンプルの分析には適している。
kaiju-makedb progenomes
3、NCBIのBLASTで使われているNon-redundant protein database( nr)からArchaea、Bacteria、Virusesのプロテインデータベースをダウンロードする。
kaiju-makedb nr
4、nrデータベースから、3のArchaea、Bacteria、Virusesに加えて、 fungi、microbial eukaryotesのプロテインデータベースもダウンロードする。
kaiju-makedb nr_euk
4、Marine Metagenomics PortalのMARデータベース(pubmed)をダウンロードする。MARデータベースは特に海洋メタゲノムをカバーしている。
kaiju-makedb mar_ref
kaiju-makedb mar
ダウンロードが終わると複数ファイルができるが、kaiju_db.fmi (または kaiju_db_nr.fmi / kaiju_db_nr_euk.fmi)、nodes.dmp、names.dmpのみ必要となる。他のファイルは捨ててO.K。
実行方法
データベースが準備できたら、メタゲノムシーケンスデータなどを入力としてtaxonomy検索を実行する。
kaiju -z 20 -t nodes.dmp -f kaiju_db.fmi -i pair1.fq -j pair2.fq -o kaiju.out
入力がアミノ酸配列の場合、"-p"をつけて翻訳なしにする。
デフォルトのランモードはMEM(only considers exact matches)だが、greedyモードだと置換を許容して検索できる(感度を上げる)。greedyモードではblastのようなe-value閾値も設定できる。
kaiju -z 20 -t nodes.dmp -f kaiju_db.fmi -i input.fq -o kaiju.out -a greedy -e 5 -E 0.05
- -e Number of mismatches allowed in Greedy mode (default: 3)
- -m Minimum match length (default: 11)
- -s Minimum match score in Greedy mode (default: 65)
- -E Minimum E-value in Greedy mode
kaiju.outが出力される。
> head kaiju.out
$ head kaiju.out
U SRR931044.11 0
U SRR931044.37 0
U SRR931044.57 0
C SRR931044.73 641491
C SRR931044.85 395961
U SRR931044.101 0
U SRR931044.127 0
C SRR931044.167 1408164
U SRR931044.185 0
U SRR931044.197 0
-vをつけて実行すると以下の7つの情報を記載したカラムも出力される。
- either C or U, indicating whether the read is classified or unclassified.
- name of the read
- NCBI taxon identifier of the assigned taxon
- the length or score of the best match used for classification
- the taxon identifiers of all database sequences with the best match
- the accession numbers of all database sequences with the best match
- matching fragment sequence(s)
kaiju.outを変換。
kaiju2krona -t nodes.dmp -n names.dmp -i kaiju.out -o kaiju.out.krona
kaiju.out.kronaが出力される。
kronaで描画する。
ktImportText -o kaiju.out.html kaiju.out.krona
> open kaiju.out.html #デフォルトブラウザで開く
追記
比率は元のゲノム構成を反映している。例えば、下はモデルシアノバクテリアS.6803とE.coli K12のシーケンシングデータをそれぞれゲノムの100xと20xずつ混ぜ込み、kaijuで分析した結果。グラフを目視でみる限り、比率は元のゲノム比率を反映している(詳細は可視化に使ったテキスト出力をチェックすればいい)。
引用
kaiju
Fast and sensitive taxonomic classification for metagenomics with Kaiju.
Menzel P, Ng KL, Krogh A.
Nat Commun. 2016 Apr 13;7:11257.
krona
Interactive metagenomic visualization in a Web browser
Ondov BD, Bergman NH, Phillippy AM.
BMC Bioinformatics. 2011 Sep 30;12:385.