MTSV Toolsは、メタゲノムシーケンス読み取りの分類学的分類のためのコアツールのスイートです。 MTSVは、FMインデックス支援Q-GRAMフィルターを使用して、SIMD加速スミスウォーターマンアライメントを使用して完全に調整を実行します。
CondaはMTSV -Tools -C Biocondaをインストールします
MTSVは錆で構築されています。必要です:
rustc
とcargo
> = 1.29.0(Rustup.RSは最も簡単なインストール方法です)テストを実行するには:
$ cargo test
コードカバレッジレポートを生成するには、KCOV> = 26がPATH
にインストールされていることを確認してから、 cargo-kcov
インストールしてください。
$ cargo install cargo-kcov
カバレッジを実行するには:
$ cargo kcov -- --exclude-pattern="/.cargo,vendor/,tests/,bench/,include/,bin/,ssw/"
これにより、 target/kcov/index.html
の下にコードカバレッジレポートが配置されます。
MTSVバイナリを構築するには:
$ cargo build --release
それらはtarget/release/mtsv-*
で利用可能になります。
内部ドキュメントを生成するには:
$ cargo doc [--open]
(ブラウザですぐにドキュメントを開きたい場合は、 --open
フラグを渡します)
MTSVはいくつかのバイナリを構築します:
mtsv-chunk
mtsv-binner
mtsv-build
mtsv-collapse
これらはすべて、 --help
フラグを使用して、使用に関するヘルプメッセージを印刷します。特定の使用手順については、以下を参照してください。
MTSVは、FM-Indexデータ構造に基づいて、カスタムメタゲノムインデックス(MG-Index)を実装します。参照インデックスは、分類学的分類を実行する前に構築する必要があります。
Mg-Indicesを構築するには、すべての参照シーケンスのマルチファスタファイルが必要で、ヘッダーはSEQID-TAXID
形式にあります。したがって、シーケンスは一意の整数ID 12345を持ち、NCBI分類ID 987に属し、そのシーケンスのヘッダーは12345-987
読み取る必要があります。参照シーケンスは、任意のDNAシーケンスコレクション(IE、GenBank、RefSeqなど)から調達し、プロジェクトに合わせてカスタマイズできます。
MTSVは高度に平行になるように設計されているため、参照シーケンスの小さなチャンクから複数のインデックスを構築することをお勧めします。これにより、メモリの要件を削減し、インデックスの構築と割り当ての両方の処理を速くすることができます。
$ mtsv-chunk -i PATH_TO_FASTA -o PATH_TO_CHUNK_FOLDER -g NUM_GBS_PER_CHUNK
これにより、参照Fastaが一連の小さなファイルに分割され、指定されたディレクトリに配置されます。詳細については、ヘルプメッセージをご覧ください。
mtsv-chunk 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Split a FASTA reference database into chunks for index generation.
USAGE:
mtsv-chunk [FLAGS] --input <INPUT> --output <OUTPUT> --gb <SIZE_GB>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-i, --input <INPUT> Path(s) to vedro results files to collapse
-o, --output <OUTPUT> Folder path to write split outupt files to.
-g, --gb <SIZE_GB> Chunk size (in gigabytes). [default: 1.0]
FASTAデータベースのnチャンクがあるので、MTSVがクエリに使用できるインデックスに処理する必要があります。インデックスビルド中、シーケンス境界の位置と各シーケンスに関連付けられたタキシドの位置を記録しながら、チャンクされたFASTAファイルのシーケンスが連結されます。サフィックスアレイ、バロウズホイーラー変換(BWT)、およびFMインデックスは、Rust-Bio V0.39.1パッケージを使用して連結シーケンスから構築されています。 FMインデックスと関連するシーケンスメタデータは、Mg-Indexを構成します。 1つのMGインデックスはFASTAファイルごとに作成され、既存のインデックスを再構築する必要なく、参照コレクションが成長するにつれて新しいインデックスを追加できます。
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
デフォルト設定を使用すると、インデックスは参照ファイルのサイズが約3.6倍で、ビニングステップを実行するためにそれほど多くのRAMが必要です。デフォルトのサンプリング間隔は、BWT Occuranceアレイで64、サフィックスアレイで32です。これは--sa-sample <SA_SAMPLE_RATE>
Occurance Arrayの--sample-interval <FM_SAMPLE_INTERVAL>
を渡すことでオーバーライドできます。値が低いと、インデックスのサイズが増加し、クエリ時間の短縮を提供できます。フラグを増やすと、クエリ時間が遅いことを受け入れながら、インデックスのサイズがポイントまで減少します。
他のオプションのヘルプメッセージを参照してください。
$ mtsv-build --help
mtsv-build 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Index construction for mtsv metagenomics binning tool.
USAGE:
mtsv-build [FLAGS] [OPTIONS] --fasta <FASTA> --index <INDEX>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-f, --fasta <FASTA> Path to FASTA database file.
--sample-interval <FM_SAMPLE_INTERVAL>
BWT occurance sampling rate. If sample interval is k, every k-th entry will be kept. [default: 64]
-i, --index <INDEX> Absolute path to mtsv index file.
--sa-sample <SA_SAMPLE_RATE>
Suffix array sampling rate. If sampling rate is k, every k-th entry will be kept. [default: 32]
mtsv-binner
コマンドは、提供されたMG-Indexの参照シーケンスに読み取りを割り当てます(目的のMG-Indicesごとに個別のビニングコマンドを実行する必要があります)。それは、各クエリシーケンスとその逆補体から特定のオフセット( --seed-interval
)を使用して、同じサイズ( --seed-size
)のオーバーラップサブストリング(シード)を抽出することから始めます。次に、Mg-Indexを使用して、各シードの正確で格付けされていない一致を検索します。シードマッチは場所でソートされ、指定されたウィンドウを使用して候補地域にグループ化されます。候補者あたりのヒット数は集計され、シードヒットの最小数を満たさない候補者は除外されます。残りの候補者のポジションは、シードヒット数によって下降順に分類されるため、最も有望な地域が最初に評価されます。
各候補地域について、MTSVは参照シーケンスから対応する範囲を抽出し、MG-Indexの領域に関連するTaxIDを調べます。現在のクエリがすでに候補地域に関連付けられたTaxIDに成功している場合、追加のアライメントは試みられず、次の候補地域がチェックされます。それ以外の場合は、抽出された参照シーケンスとクエリシーケンスの間でSIMDアクセラレーションのスミスウォーターマンアライメントが実行されます(一致で1のスコアリング、ミスマッチ、ギャップ開口、ギャップ拡張で-1のスコアリングを使用)。アライメントスコアが十分に高い場合、編集距離がユーザー指定の編集距離カットオフ( --edit-rate
)よりも等しいかどうかを判断するための最後のチェックが1つあります。アラインメントが成功したと見なされる場合、同じタキシドに対するそのクエリに対してそれ以上のアライメントは試みられません。 TaxIDに追加のすべてのアライメントをスキップすると、多くの高価な操作が回避され、計算時間が短縮されます。
候補フィルタリングステップは、正確なK-MER一致の最小数を定義するQ-GRAMフィルタリングアルゴリズムに基づいています( N-K+1のすべてのオーバーラップk -merから、 n速度読み取りと参照シーケンスの間で予想される可能性があります。ほとんどの場合、すべての不一致がアライメント全体に均等に間隔を置いている場合、一致するk -mersの最小数は、 m =(n+1) - k(e+1) 、 mはnが陽性です。 /(e+1)> k --seed-size
、 k -merの全面的な数のみを使用する場合、 k -mersの最小数はM/Lを提供すると予想されます。 --seed-size
)およびn_seeds = ceil((n -k + 1)/l)としてシードの数を確立する間隔l ( --seed-interval
)。割り当て( --min-seed
)は、これらの種子の床の--edit-rate
として提供されます(min-seed * n_seeds) 。および1)および読み取りの長さ、 n 。
$ mtsv-binner --edit-rate 0.13 --seed-size 18
--seed-interval 2 --threads 8
--index /path/to/chunk1.index
--fastq /path/to/reads.fastq
--results /path/to/write/chunk1_results.txt
他のオプションのヘルプメッセージを参照してください。
$ mtsv-binner --help
mtsv 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Metagenomics binning tool.
USAGE:
mtsv-binner [FLAGS] [OPTIONS] --fasta <FASTA> --fastq <FASTQ> --index <INDEX>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-e, --edit-rate <EDIT_TOLERANCE> The maximum proportion of edits allowed for alignment. [default: 0.13]
-f, --fasta <FASTA> Path to FASTA reads.
-f, --fastq <FASTQ> Path to FASTQ reads.
-i, --index <INDEX> Path to MG-index file.
--max-hits <MAX_HITS> Skip seeds with more than MAX_HITS hits. [default: 20000]
--min-seed <MIN_SEED> Set the minimum percentage of seeds required to perform an alignment.
[default: 0.015]
-t, --threads <NUM_THREADS> Number of worker threads to spawn. [default: 4]
-m, --results <RESULTS_PATH> Path to write results file.
--seed-interval <SEED_INTERVAL> Set the interval between seeds used for initial exact match. [default: 2]
--seed-size <SEED_SIZE> Set seed size. [default: 18]
mtsv-binner
1行ごとに1回の読み取りの結果を書きます。たとえば、ヘッダーR1_123
を使用して読み取られた場合、分類10
562
100
9062
5
11
した場合:
R1_123:562=5,9062=10,100=11
mtsv-binner
コマンドからの各出力ファイルは、単一のMg-Index内の参照への割り当てのみを表すため、すべてのMg-Indicesの結果を単一の結果ファイルに結合する必要があります。
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
すべてのチャンクファイルを必ず含めてください。 Collapserは複数のフェーズで実行される可能性がありますが、一般的にそれらを一度に実行する方がはるかに速いです。同じTaxIDが複数のファイルで同じ読み取りに割り当てられた場合、編集距離が最も低いファイルが最終出力に記録されます。
他のオプションのヘルプメッセージを参照してください。
$ mtsv-collapse --help
mtsv-collapse 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Tool for combining the output of multiple separate mtsv runs.
USAGE:
mtsv-collapse [FLAGS] <FILES>... --output <OUTPUT>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-o, --output <OUTPUT> Path to write combined outupt file to.
ARGS:
<FILES>... Path(s) to mtsv results files to collapse