MTSV Tools ist eine Reihe von Kernwerkzeugen für die taxonomische Klassifizierung metagenomischer Sequenzierung. MTSV führt eine vollständige Ausrichtung unter Verwendung eines FM-Index-assistierten Q-Gramm-Filters durch, gefolgt von der SIMD-Beschleunigung von Smith-Waterman-Ausrichtung.
Conda installieren MTSV -Tools -C Bioconda
MTSV ist in Rost gebaut. Sie werden brauchen:
rustc
und cargo
> = 1.29.0 (Rustup.RS ist die einfachste Installationsmethode)Tests ausführen:
$ cargo test
Um einen Codeabdeckungsbericht zu generieren, stellen Sie sicher, dass KCOV> = 26 auf Ihrem PATH
installiert ist, und installieren Sie dann cargo-kcov
:
$ cargo install cargo-kcov
Berichterstattung durchführen:
$ cargo kcov -- --exclude-pattern="/.cargo,vendor/,tests/,bench/,include/,bin/,ssw/"
Dadurch wird ein Code -Deckungsbericht unter target/kcov/index.html
vorgelegt.
Um die MTSV -Binärdateien zu bauen:
$ cargo build --release
Sie werden unter target/release/mtsv-*
erhältlich sein.
Um die interne Dokumentation zu generieren:
$ cargo doc [--open]
( --open
Sie die Flagge, wenn Sie die Dokumente sofort in Ihrem Browser öffnen möchten.)
MTSV baut mehrere Binärdateien auf:
mtsv-chunk
mtsv-binner
mtsv-build
mtsv-collapse
All dies akzeptiert das Flag --help
-Flag, um eine Hilfebotschaft auf ihre Verwendung zu drucken. Weiter unten finden Sie Anweisungen für bestimmte Verwendung.
MTSV implementiert einen benutzerdefinierten metagenomischen Index (MG-Index) basierend auf der FM-Index-Datenstruktur. Referenzindizes müssen vor der Durchführung der taxonomischen Klassifizierung erstellt werden.
Um die MG-Indizes zu konstruieren, benötigen Sie eine Multi-Fasta-Datei aller Referenzsequenzen mit Headern im Format SEQID-TAXID
. Eine Sequenz hat also eine eindeutige Ganzzahl-ID 12345 und gehört zur taxonomischen ID 987 der NCBI, die Header für diese Sequenz sollte 12345-987
lesen. Die Referenzsequenzen können aus jeder DNA -Sequenzsammlung (dh GenBank, RefSeq usw.) bezogen und so angepasst werden, dass Sie Ihrem Projekt entsprechen.
Da MTSV als hoch parallelisierbar ausgelegt war, empfehlen wir, mehrere Indizes aus kleineren Teilen der Referenzsequenzen zu erstellen. Dies hilft, die Speicheranforderungen zu reduzieren und eine schnellere Verarbeitung sowohl für das Indexaufbau als auch für die Zuordnung zu ermöglichen.
$ mtsv-chunk -i PATH_TO_FASTA -o PATH_TO_CHUNK_FOLDER -g NUM_GBS_PER_CHUNK
Dadurch wird die Referenz FASTA in eine Reihe kleinerer Dateien aufgeteilt und in das angegebene Verzeichnis eingeleitet. Weitere Informationen finden Sie in der Help -Nachricht.
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]
Jetzt, da Sie N -Stücke Ihrer Fasta -Datenbank haben, müssen sie in Indizes verarbeitet werden, die MTSV zur Abfrage verwenden können. Während des Index -Builds werden die Sequenzen in der Fasta -Datei mit Chunked Fasta während der Aufzeichnung des Speicherorts der Sequenzgrenzen und der mit jeder Sequenz verbundenen Taxid verkettet. Ein Suffix-Array, eine Burrow-Wheeler-Transformation (BWT) und FM-Index werden aus den verketteten Sequenzen unter Verwendung des Rust-Bio V0.39.1-Pakets gebaut. Der FM-Index und die zugehörigen Sequenzmetadaten sind das MG-Index. Pro Fasta-Datei wird ein MG-Index erstellt, und es können neue Indizes hinzugefügt werden, wenn die Referenzsammlung wächst, ohne dass die vorhandenen Indizes wieder aufgebaut werden müssen.
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
Mithilfe der Standardeinstellungen betragen die Indizes ~ 3.6x die Größe der Referenzdatei und erfordern ungefähr so viel RAM, um den Binning -Schritt auszuführen. Das Standardabtastungsintervall beträgt 64 für das BWT -Occuration -Array und 32 für das Suffix -Array. Dies kann durch Übergabe --sample-interval <FM_SAMPLE_INTERVAL>
für das Occuration Array oder --sa-sample <SA_SAMPLE_RATE>
für das Suffix-Array überschrieben werden. Niedrigere Werte erhöhen die Größe des Index und können eine Abfragezeit verkürzen. Durch Erhöhen der Flagge wird die Größe des Index auf einen Punkt verringert und gleichzeitig eine langsamere Abfragezeit akzeptiert.
Weitere Optionen finden Sie in der Hilfemeldung.
$ 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]
Der Befehl mtsv-binner
weist die Referenzen den Referenzsequenzen im bereitgestellten MG-Index zu (ein separates Binning-Befehl sollte für jedes der gewünschten MG-Indizes ausgeführt werden). Es wird zunächst überlappende Substrings (Samen) derselben Größe ( --seed-size
) mit bestimmten Offsets ( --seed-interval
) aus jeder Abfragesequenz und seiner umgekehrten Komplement extrahieren. Anschließend wird das MG-Index verwendet, um nach genauen, nicht festgelegten Übereinstimmungen für jeden Samen zu suchen. Die Saatgutübereinstimmungen werden nach Ort sortiert und unter Verwendung bestimmter Fenster in Kandidatenregionen gruppiert. Die Anzahl der Treffer pro Kandidat wird bewertet, und jeder Kandidat, der nicht die Mindestanzahl von Saatguthits erfüllt, wird herausgefiltert. Die verbleibenden Kandidatenpositionen werden in absteigender Reihenfolge nach der Anzahl der Saatgutschläge sortiert, so dass zuerst die vielversprechendsten Regionen bewertet werden.
Für jede Kandidatenregion extrahiert MTSV den entsprechenden Bereich aus der Referenzsequenz und schaut die mit der Region im MG-Index verbundene Taxid nach. Wenn die aktuelle Anfrage bereits erfolgreich auf die mit der Kandidatenregion verbundene Taxid ausgerichtet war, wird keine zusätzliche Ausrichtung versucht, und die nächste Kandidatenregion wird überprüft. Andernfalls wird eine SIMD-Beschleunigte von Smith-Waterman-Ausrichtung zwischen der extrahierten Referenzsequenz und der Abfragesequenz durchgeführt (unter Verwendung einer Bewertung von 1 für Übereinstimmungen und -1 für Fehlanpassungen, Lückenöffnung und Gap-Erweiterung). Wenn der Ausrichtungswert ausreichend hoch ist, gibt es eine endgültige Überprüfung, um festzustellen, ob die Bearbeitungsentfernung kleiner oder gleich dem benutzerdefinierten Bearbeitungsentfernungsabstieg ( --edit-rate
) ist. Wenn die Ausrichtung als erfolgreich angesehen wird, werden keine weiteren Ausrichtungen für diese Anfrage gegen dieselbe Taxid versucht. Wenn Sie alle zusätzlichen Ausrichtungen auf ein Taxid überspringen, werden viele teure Vorgänge vermieden und die Rechenzeit verkürzt.
Der Kandidatenfilterschritt basiert auf einem Q-Gramm-Filteralgorithmus , der die minimale Anzahl der exakten k-mer- Übereinstimmungen definiert Mit den meisten Fehlanpassungen . / (E + --seed-size
) > K. --seed-size
) und das Intervall L ( --seed-interval
), das die Anzahl der Samen als n_seeds = Ceil ((n -k + 1)/l) festlegt und weil dies je nach Lesegröße basiert, die minimale Anzahl der erforderlichen Lesevorgänge Um eine Zuordnung zu machen ( --min-seed
), wird als Prozentsatz dieser Samenboden (min-saat * n_seeds) --edit-rate
. und 1) und die Länge der Lektüre, 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
Weitere Optionen finden Sie in der Hilfemeldung.
$ 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
schreibt Ergebnisse für eine einzige Lektüre pro Zeile. Wenn beispielsweise eine Lektüre mit den Header R1_123
-Karten zu Taxon -IDs 562
, 9062
und 100
mit Bearbeitungsabständen 5
, 10
und 11
:
R1_123:562=5,9062=10,100=11
Da jede Ausgabedatei aus dem Befehl mtsv-binner
nur Zuweisungen für Referenzen innerhalb eines einzelnen MG-Index darstellt, müssen die Ergebnisse aller MG-Indizes zur weiteren Analyse in eine einzelne Ergebnisdatei kombiniert werden.
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
Stellen Sie sicher, dass Sie alle Chunk -Dateien enthalten. Während der Kollapser in mehreren Phasen ausgeführt werden kann, ist es im Allgemeinen viel schneller, sie alle auf einmal zu machen. Wenn dieselbe Taxid demselben Lesen in mehreren Dateien zugewiesen wurde, wird die mit der niedrigsten Bearbeitungsentfernung in der endgültigen Ausgabe aufgezeichnet.
Weitere Optionen finden Sie in der Hilfemeldung.
$ 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