2019 6/25 twitter追記
2024/04/03 引用追加
メタゲノム研究の主な制限は、ショートリードの大部分(土壌で80% - 90%[1])を、遺伝子およびタンパク質配列の予測を可能にするのに十分な長さの連続した配列(contigs)にアセンブリすることができないことである。
低存在量のゲノムはアセンブリが困難であり、アセンブリされていないリードは遺伝的多様性の大きな不均衡と恐らくはさらに大きな割合の生物学的新規性を含み、それはその後の分析でほとんど失われる。
この損失を減らし、リファレンスゲノムへの依存を少なくするために、遺伝子中心のアプローチが開発されてきた。 1つの環境からの何百ものサンプルがプールされ、コンティグ内の遺伝子が予測され、95%の同一性で遺伝子カタログにまとめられられる[ref.2-5]。各サンプル中の遺伝子存在量は、リードをリファレンス遺伝子クラスターにマッピングすることによって見出される。このようにして、メタゲノムサンプルの機能的および分類学的構成、ならびにそれらの環境パラメータへの依存性を調べることができる。また、ゲノムベースの分析はビニングによって可能になる。
メタゲノムのショートリードの最先端のアセンブラ[ref.7 - 9]は、de-Bruijnグラフのパスとしてコンティグを見つける。このグラフは、リード内の各k-merワードと、リード内で連続して発生するk-mer間のエッジに対するノードを持っている。メタゲノムのデータでは、de-Bruijnのアセンブラは、感度と選択性のトレードオフが制限されている。偽のエッジでグラフが爆発するのを避けるために、k-merは長くspecificでなければならない。しかし、集団内の多様性が高く、重複したリードがSNPによるミスマッチを含むことが多い場合、長いk-merは感度を欠く。どのk値が選択されようとも、k-merは種間で保存されているゲノム領域では十分に特異的であるには短すぎ、集団内の多様性が高い領域では十分に敏感であるには長すぎる。このジレンマはアセンブリを断片化し短くする。
微生物集団のほとんどのSNPはコードされたタンパク質配列中のアミノ酸変化をもたらさない(補足図1)。したがって、ORFome [ref.10]およびSFA-SPA [ref.11]は、ヌクレオチドの代わりにタンパク質をアセンブリすることを提案した。しかし、それらは大規模なメタゲノムに対して実行するには遅すぎる。
タンパク質ははるかに少なく短いリピートしか有さない。さらに、非常に類似したタンパク質配列間のキメラアセンブリ(例えば、97%以上の配列同一性)は、ゲノム中でどの遺伝子が一緒に存在するかについての誤った結論をもたらさないため、DNAベースのアセンブリでの問題を回避できる。そのため、タンパク質レベルのアセンブリでは、DNA配列ではキメラアセンブリのリスクを抑え、アセンブリできない領域のアセンブリも可能になることでカバー率が向上する。
Plassはこれらの利点を活用してアセンブリプロセスを大幅に簡素化する。Plassはグラフフリーのgreedy iterative assembly strategyを使い、all-versus-all のオーバーラップを線形時間で計算する。これにより、単一サーバー上で巨大なリードセットをオーバーラップベースでアセンブリすることが可能になる。最も重要なことは、Plassはショートk-merのみに頼るのではなくフルアラインメントのオーバーラップを計算することによって、de-Bruijnアセンブラの特異性と感度のトレードオフの限界を克服し、複雑なメタゲノムサンプルにおいて数倍以上のタンパク質配列を回収する。
Plassはランダムディスクアクセスを回避するためにタンパク質配列をメインメモリに格納する必要がある。そのため、入力のリードから変換されたアミノ酸ごとに1バイトのメインメモリが必要で、2〜3億の2×150 bpリードのアセンブリには〜500 GBのRAMが必要になる。これと比較すると、オーバーラップグラフのアセンブラのメモリ要件とランタイムは、処理データと超直線的に比例する。したがって、Plassは、オーバーラップグラフアセンブラの高いspecificity- sensitivityと、de-Bruijnグラフアセンブラの線形のランタイムスケーリング性能および線形のメモリスケーリング性能を組み合わせたものである。(以下略)
Plass(Protein-Level ASSembler)は、ショートシークエンスリードを6フレームで翻訳し、タンパク質レベルでアセンブリするソフトウェアである。 Plassの主な目的は、複雑なメタゲノムデータセットのアセンブリである。 Plassは土壌メタゲノムにてMegahitより10倍多いタンパク質残基をアセンブリする。 Plassは、C ++で実装され、LinuxおよびmacOSで利用可能なGPLライセンスのオープンソースソフトウェアである。 ソフトウェアは複数のコア上で効率的に動作するように設計されている。 著者らは2つの冗長性フィルタリングされたリファレンスタンパク質カタログ、 640の土壌試料(SRC)からの20億の配列、および775の海洋真核生物メタトランスクリプトーム(MERC)からの292ミリオンの配列をアセンブリし、最大のタンパク質配列の無料コレクションを構築した。
We release the largest collection of metagenomic protein HMMs, containing over 2B proteins https://t.co/QKScpubVWq, majority assembled by Plass https://t.co/RLY9c5aesB. Illustrated is the search result diversity for a Cas14 protein. Over 80% of the hits are from env. sequences. pic.twitter.com/UwqddGu8BZ
— Martin Steinegger (@thesteinegger) May 15, 2019
At #recombseq2019, @thesteinegger presents mmseq2, linclust, plass (metagenomics protein assembly) pic.twitter.com/MkBYeqzmgl
— Rayan Chikhi (@RayanChikhi) May 4, 2019
Our protein level assembler “plass” paper is now published at @naturemethods. Plass recovers many fold more proteins from complex metagenomes compared to nucleotide assemblers.
— Martin Steinegger (@thesteinegger) June 24, 2019
Paper: https://t.co/5Lue5jeq2p
Code&Data: https://t.co/RLY9c5aesB@milot_mirdita @virus_x_team
インストール
ubuntu18.04でテストした。
#bioconda
conda install -c biocore plass
#linuxバイナリ
wget https://mmseqs.com/plass/plass-static_sse41.tar.gz; tar xvfz plass-static_sse41.tar.gz; export PATH=$(pwd)/plass/bin/:$PATH
> plass assemble
$ plass assemble
plass assemble:
Extends sequence to the left and right using ungapped alignments.
Please cite:
Steinegger, M. Mirdita, M., & Soding, J. Protein-level assembly increases protein sequence recovery from metagenomic samples manyfold. biorxiv, https://doi.org/10.1101/386110 (2018)
© Martin Steinegger <martin.steinegger@mpibpc.mpg.de>
Usage: <i:fast(a|q)File[.gz]> | <i:fastqFile1_1[.gz] ... <i:fastqFileN_1[.gz] <i:fastqFile1_2[.gz] ... <i:fastqFileN_2[.gz]> <o:fastaFile> <tmpDir> [options]
align options default description [value range]
-e 0.000 Extend sequences if the E-value is below [0.0, inf]
--min-seq-id 0.900 Overlap sequence identity threshold [0.0, 1.0]
profile options default description [value range]
--num-iterations 12 Number of assembly iterations [1, inf]
misc options default description [value range]
--min-length 45 minimum codon number in open reading frames
--max-length 2147483647 maximum codon number in open reading frames
--protein-filter-threshold 0.200 filter proteins lower than threshold [0.0,1.0]
--filter-proteins 1 filter proteins by a neural network [0,1]
common options default description [value range]
--threads 56 number of cores used for the computation (uses all cores by default)
-v 3 verbosity level: 0=nothing, 1: +errors, 2: +warnings, 3: +info
An extended list of options can be obtained by calling 'plass assemble -h'.
3 Database paths are required
> plass nuclassemble
$ plass nuclassemble
plass nuclassemble:
Extends sequence to the left and right using ungapped alignments.
Please cite:
Steinegger, M. Mirdita, M., & Soding, J. Protein-level assembly increases protein sequence recovery from metagenomic samples manyfold. biorxiv, https://doi.org/10.1101/386110 (2018)
© Martin Steinegger <martin.steinegger@mpibpc.mpg.de>
Usage: <i:fast(a|q)File[.gz]> | <i:fastqFile1_1[.gz] ... <i:fastqFileN_1[.gz] <i:fastqFile1_2[.gz] ... <i:fastqFileN_2[.gz]> <o:fastaFile> <tmpDir> [options]
align options default description [value range]
-e 0.000 Extend sequences if the E-value is below [0.0, inf]
--min-seq-id 0.900 Overlap sequence identity threshold [0.0, 1.0]
profile options default description [value range]
--num-iterations 12 Number of assembly iterations [1, inf]
common options default description [value range]
--threads 56 number of cores used for the computation (uses all cores by default)
-v 3 verbosity level: 0=nothing, 1: +errors, 2: +warnings, 3: +info
An extended list of options can be obtained by calling 'plass nuclassemble -h'.
2 Database paths are required
dockerイメージも用意されている。
テストラン
git clone https://github.com/soedinglab/plass.git
cd plass/examples/
ペアエンドfastq。ラン時は作業ディレクトリを指定する。
plass assemble reads_1.fastq.gz reads_2.fastq.gz assembly.fa tmp
シングルエンドfastq
plass assemble reads_1.fastq.gz assembly.fa tmp
感想
HIseqやNovaseqクラスの複数のメタゲノムデータセットのアセンブリには、準スパコンクラスのマシンとスケーリング性能が極めて高いde novoアセンブラの両方が必要なのかと考えてましたが(Extreme Scale De Novo Metagenome Assemblyの"C. Performance Results"を参照)、Preprintを読むと、PLASSは、メモリ効率の良いmegahitがsegmentation errorを起こすようなデータセットでも(プロテインの)アセンブリが可能なようです。アセンブリされたプロテインのトータルサイズも、プロテインの結果はMEGAHITの結果よりずっと長く、特に複雑性の高いデータセットで差が顕著になっています。プロテインデータベースを構築してスクリーニングする用途にも使えそうです。
引用
Protein-level assembly increases protein sequence recovery from
metagenomic samples manyfold
Martin Steinegger, Milot Mirdita, Johannes Söding
bioRxiv preprint first posted online Aug. 7, 2018
追記
Protein-level assembly increases protein sequence recovery from metagenomic samples manyfold
Martin Steinegger, Milot Mirdita & Johannes Söding
Nature Methods volume 16, pages603–606 (2019)
Strain-resolved de-novo metagenomic assembly of viral genomes and microbial 16S rRNAs
Annika Jochheim, Florian A. Jochheim, Alexandra Kolodyazhnaya, Étienne Morice, Martin Steinegger, Johannes Söding
bioRxiv, Posted March 29, 2024.
関連