メタゲノムシーケンスによって微生物コミュニティを解析する場合、基本的なタスクは、特定のシーケンスリードがどの参照ゲノムに由来するかを決定することである。これにより、微生物の組成に関する情報が得られ、遺伝的変異のマッピングベースの解析が可能になる。処理パイプラインの一般的な最初のステップは、Kraken2、CLARK、Centrifugeなどの高速分類学的リード分類器を使用することである。このような方法は非常に高速だが、リードを株レベルに割り当てるには感度が十分ではない。株レベルの解析は機能的に重要な意味を持つため、系統レベルのリードを解析できる高感度な手法が必要である。
株レベルでリードを解決するには、Bowtie2、Minimap2、CORA(Moraとは無関係)などのリードアライナーを用いて、候補リファレンスゲノムセットにリードをより敏感にアライメントし、最適な参照ゲノムを正しい割り当てとするのが素朴なアプローチだろう。しかし、株レベルのリファレンスゲノムは大きな類似領域を共有しているため、多くのあいまいなマッピングが避けられない。この制限を克服するために、リファレンス株の候補セットの存在量情報を統計的に計算し、十分高い存在量を持つリファレンスのみを使用することができる[11,12,13,14]。その後、「正しい」リファレンス株、すなわちメタゲノミックサンプル中に豊富に存在すると思われるリファレンス株にリードを再割り当てすることができる。このアプローチは、皮膚メタゲノムのショートリード株レベルの曖昧性解消のガイドとして使用された[15]。さらにプロファイリングのあいまいさをより定量化するためにleast common ancestorアプローチを用いていてロングリードの分類学的プロファイリングが報告された[16]。
しかし、アバンダンスの推定値を維持しながら、正しいリファレンスにリードを再割り当てすることは、非自明である。例えば、マルチマップされたリードを、仮にマッピングされた最も存在量の多いリファレンス株に割り当てた場合、2つの株間の類似領域から来たすべてのリードは、1つの株(この場合は最も存在量の多い株)にのみマッピングされる。これはリードの正確な割り当てではなく、存在量に歪みを与える。重要なことは、すべてのアルゴリズムがアバンダンスの推定とリードの割り当てを行うわけではないということである。いくつかのアルゴリズムはアバンダンスだけを計算し、再割り当てされたリードを出力しない[17,18,19]。
本論文では、ロングとショート両方のリードに対して、高感度で効率的なメタゲノムリードの再割り当てと菌株レベルでの存在量計算を可能にするツールMoraを紹介する。Moraは、SAMまたはBAM形式のアライメントとリファレンス株のセットが与えられた場合、サンプル中に存在する各リファレンス株の存在量を計算し、存在量の推定値が維持されるような方法で、リードを正しいリファレンス株に再割り当てする。この問題を最適化問題として厳密に定式化し、発見的アルゴリズムについて証明可能な保証を与える。Moraが、ショートリードのシミュレーションデータにおいて、サンプル中に存在する類似株の曖昧性を解消する上で、最新のリード再割り当て器であるPathoscope2[12]よりも効果的であることを示すとともに、1桁高速であることを示す。さらに、MoraはPathoscope2、Kraken2、Clarkと比較して、F1スコアが同等であることを示す。その後、リアルデータでも結果を検証する。
レポジトリより
Moraは、クエリリードを一意の参照に再割り当てするリード再割り当て器である。
Moraの主なステップ
入力SAMファイルに基づいてリファレンスの期待されるアバンダンスレベルを計算する。マッピングスコアと期待される存在量レベルに基づいて、少なくとも1つの有効なマッピングを持つ各クエリを参照に割り当てる。
結果をtxtファイルに出力する。
use case
https://github.com/ivlachos/agamemnon/wiki/Use-case
インストール
Ubuntu22でテストした。
依存
- Rust and Cargo need to be installed to and added to PATH.
git clone https://github.com/AfZheng126/MORA.git
cd MORA
cargo build --release
> cargo run --release -- -h
もしくは
> target/release/mora -h
Mora 1.0
andrewf.zheng@mail.utoronto.ca
Read Re-Assignment
USAGE:
mora [OPTIONS] --sam <SAM File> --output <Output>
OPTIONS:
-s, --sam <SAM File>
path for sam/bam file
-m, --method <Method>
mapping method: (pufferfish, bowtie2, minimap2) [default: pufferfish]
-o, --output <Output>
path for final output of assignments
-c, --minCnt <Min Count>
minimum count for a reference to be valid [default: 0.1]
--final_method <Final Method>
Assignment method for left over reads [default: none]
--max_em <Max EM iterations>
maximum allowed iterations of EM [default: 300]
--min_score_diff <Min score diff>
minimum difference between mapping scores divided by best mapping score for second step
[default: 0.5]
--segment_size <segment size>
size to split referenes into [default: 100]
-a, --abund_out <Abund output>
path for abundance output
-t, --threads <Threads>
number of threads for rayon to use [default: 3]
--tax <taxonomy>
write output with taxonomy details with provided tax directory
-h, --help
Print help information
-V, --version
Print version information
テストラン
git clone https://github.com/AfZheng126/MORA.git
cd MORA/sample/
mora --sam test.sam --output out
出力例

その他
- SAM/BAMファイルがなく、代わりにクエリファイルが.fasta、.fq、または圧縮 ファイルとしてある場合、最初にSAM/BAMファイルを作成するためのSnakemakeパイプ ラインを使う(pair-endのファイル名は*_1.fqと*_2.fq)
引用
Mora: abundance aware metagenomic read re-assignment for disentangling similar strains
Andrew Zheng, Jim Shaw & Yun William Yu
BMC Bioinformatics volume 25, Article number: 161 (2024)
関連