過去10年間、研究者らは、ハイスループットシーケンシングを利用して、世界中の多様な環境からの微生物群集の構造と機能を調べてきた[論文より ref.1、2、3]。これらの研究は、微生物の働きについてユニークで斬新な洞察を提供してきたが、入手可能なツールが、データが表す完全な機能的または分類学的多様性を記述していないというコンセンサスが増えている[ref.4]。 「失われた」情報をキャプチャし、サンプリングされたメタゲノム全体を表すアセンブリの生成を可能にするために、アセンブラとワークフローを開発する必要がある。
数学的には、ゲノムの新しいアセンブリは、効率的なアルゴリズムが知られていない問題のクラス(NP-hard)[ref.5]にあり、さまざまなヒューリスティック解の提案につながっている[ref.6,7,8,9]。これらは、単純なオーバーラップレイアウトコンセンサスアプローチ[ref.5]、de Bruij ngraph[ref.10]などから構成されている。しかし、微生物群全体のゲノム情報(メタゲノミクス)をサンプリングするためのシーケンシング手法が出現し始めているため、新しいアプローチが必要であることは明らかである[re.12 pubmed]。
メタゲノムシーケンシングデータセットの最大の問題は、天然の微生物群集の種の複雑さと不均一な分布に起因する、微生物群の不均一なカバレッジである[ref.4]。これは、コミュニティで支配的な種の過剰なシーケンス解析と、少数の種のゲノムの断片化したアセンブリに繋がる[13]。
この問題に対処するための有望なソリューションは、データをより簡単に管理可能な部分に分割するための「divide and conquer」アプローチである[ref.13]。例えば、環境サンプルからのデータは、コミュニティからの異なる分類群を表す「ビン」に分割することができる[ref.14]。シーケンスリードは、kmer頻度やそれらに含まれるGuanineとCytosines(GC)のパーセンテージなどのプロパティに基づいてビンにソートできる[ref.15]。これは、豊富な種の集積率を高める可能性を秘めているが、データの正確な分割に大きく依存する[ref.16]。実際、このようにして作られたメタゲノムデータのビンは、コミュニティの複雑さに応じて単一の種または門全体を表すかもしれない[ref.16]。 SLICEMBLER [ref.8]はカバレッジに基づいてメタゲノムの所定の「スライス」を生成することによって「divide and conquer」アプローチを実装する。各スライスは別々にアセンブリされ、頻繁に発生する文字列が識別され、コンティグをマージするために使用される。これは、カバレッジが分かっている深くシーケンス解析されたゲノムデータセットに対してはうまくいくが、未知の微生物群集からのメタゲノミクスデータセットでは、カバレッジは一般に未知の変数である[ref.17]。アセンブリの反復ビニングを利用する試みも開発されているが、公に利用可能ではない[ref.18]。
デジタル正規化は、複雑なデータセットに取り組むために一般的に使用されるもう1つのアプローチである。 Khmerパッケージ[ref.19]に実装されているこのメソッドは、データの重複部分の発生を識別して減らすためにkmersを使用する。これは、過度に表現された分類群のカバレッジを減らし、より均一にするためにカバレッジを正規化する効果を有する[19]。ただし、この前処理ステップではデータセットのサイズを縮小できるが、データの複雑さを軽減することはできない[rerf.19]。後続のアセンブリでは、コミュニティの過小評価の問題が発生しやすくなる。
著者らは、この問題に対処するため、上記のアセンブリ手法のいずれかと組み合わせて使用できる簡単で効果的なヒューリスティックを提案する。反復的なアプローチに基づいて、 著者らのワークフロー(Sphericalと呼ばれる)は、アセンブリ内で考慮されていないリードを識別し、それをアセンブリの連続ラウンドの入力として使用する。 Sphericalは、「divide and conquer」方法で全体のランダムなサブセットをアセンブリすることによって必要とされるリソースを最小限に抑えるオプションも提供する。このアプローチの本質的な欠点は、アセンブリを複数回に渡り反復実行することによって、時間要件も増加することである。
図1。フローチャート。論文より転載。
論文中では、メモリの削減量とその影響、繰り返しアセンブリの効果等が議論されています。
インストール
cent os6、python2.7.12でテストした。
依存
- Python 2.7
- Velvet (tested using version 1.2.10)
- Bowtie2 (tested using version 2.2.3)
Python modules;
- Numpy
- HTSeq
本体 Github
https://github.com/thh32/Spherical
git clone https://github.com/thh32/Spherical.git
cd Spherical/
ヘルプはない。
Githubより転載。
ラン
テストデータが用意されている。ランするには、シーケンスデータを解凍して以下のように打つ。
gzip -dv test_data.fa.gz
python Spherical.py -fasta -m -k 21 -R 1 -align 99 -iter 5 -i test_data.fa -velvet -bowtie2 -o test_assembly
アセンブリにはvelvetを指定し(-velvet)、リードのマッピングにはbowtie2を指定している(-bowtie2)。アセンブリのk-merは21にして(-k 21)、リードはサブサンプリングせず100%使用している(-R 1)(メモリが足りなければ減らす)。アセンブリしたcontigにリードの99%がマッピングされない限り(-align 99)、最大5回サイクルは繰り返される(-iter 5)。
引用
Spherical: an iterative workflow for assembling metagenomic datasets
Thomas C. A. Hitch and Christopher J. Creevey.
BMC Bioinformatics. 2018; 19: 20.