MTSV Tools es un conjunto de herramientas básicas para la clasificación taxonómica de lecturas de secuenciación metagenómica. MTSV realiza una alineación completa utilizando un filtro Q-Gram asistido por índice FM seguido de la alineación acelerada de SMITH-Waterman SIMD.
Conda install MTSV -Tools -C Bioconda
MTSV está construido en óxido. Necesitarás:
rustc
y cargo
> = 1.29.0 (Rustup.rs es el método de instalación más fácil)Para ejecutar pruebas:
$ cargo test
Para generar un informe de cobertura de código, asegúrese de que Kcov> = 26 esté instalado en su PATH
, luego instale cargo-kcov
:
$ cargo install cargo-kcov
Para ejecutar cobertura:
$ cargo kcov -- --exclude-pattern="/.cargo,vendor/,tests/,bench/,include/,bin/,ssw/"
Esto colocará un informe de cobertura de código en target/kcov/index.html
.
Para construir los binarios de MTSV:
$ cargo build --release
Estarán disponibles en target/release/mtsv-*
.
Para generar la documentación interna:
$ cargo doc [--open]
(Pase la bandera --open
si desea abrir inmediatamente los documentos en su navegador)
MTSV construye varios binarios:
mtsv-chunk
mtsv-binner
mtsv-build
mtsv-collapse
Todos estos aceptan la bandera --help
para imprimir un mensaje de ayuda en su uso. Consulte a continuación las instrucciones de uso específicas.
MTSV implementa un índice metagenómico personalizado (índice MG-índice) basado en la estructura de datos del índice FM. Los índices de referencia deben construirse antes de realizar la clasificación taxonómica.
Para construir los índices MG, necesitará un archivo multifasta de todas las secuencias de referencia, con encabezados en el formato SEQID-TAXID
. Entonces, una secuencia tiene una ID de entero única 12345, y pertenece a la ID taxonómica NCBI 987, el encabezado para esa secuencia debería leer 12345-987
. Las secuencias de referencia se pueden obtener de cualquier colección de secuencia de ADN (es decir, GenBank, Refseq, etc.) y personalizadas para adaptarse a su proyecto.
Debido a que el MTSV fue diseñado para ser altamente paralelable, recomendamos construir múltiples índices a partir de trozos más pequeños de las secuencias de referencia. Esto ayuda a reducir los requisitos de memoria y permite un procesamiento más rápido tanto para la construcción de índices como para la asignación.
$ mtsv-chunk -i PATH_TO_FASTA -o PATH_TO_CHUNK_FOLDER -g NUM_GBS_PER_CHUNK
Esto dividirá la referencia FASTA en una serie de archivos más pequeños y los colocará en el directorio especificado. Consulte el mensaje de ayuda para obtener más información.
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]
Ahora que tiene n fragmentos de su base de datos FASTA, deben procesarse en índices que MTSV puede usar para consultar. Durante la compilación del índice, las secuencias en el archivo FASTA fortado se concatenan al registrar la ubicación de los límites de la secuencia y el taxid asociado con cada secuencia. Una matriz de sufijo, la transformación del vehículo de madriguera (BWT) y el índice FM se construyen a partir de las secuencias concatenadas utilizando el paquete Rust-Bio V0.39.1. El índice FM y los metadatos de secuencia asociados constituyen el índice Mg. Se crea un índice MG por archivo FASTA, y se pueden agregar nuevos índices a medida que la colección de referencia crece sin necesidad de reconstruir ninguno de los índices existentes.
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
Usando la configuración predeterminada, los índices serán ~ 3.6x del tamaño del archivo de referencia y requerirán que tanta RAM ejecute el paso de binning. El intervalo de muestreo predeterminado es 64 para la matriz de Occionos BWT y 32 para la matriz de sufijo. Esto se puede anular pasando --sample-interval <FM_SAMPLE_INTERVAL>
para la matriz Occurance o --sa-sample <SA_SAMPLE_RATE>
para la matriz de sufijo. Los valores más bajos aumentarán el tamaño del índice y pueden proporcionar una reducción en el tiempo de consulta. Aumentar la bandera disminuirá el tamaño del índice hasta un punto mientras acepta un tiempo de consulta más lento.
Vea el mensaje de ayuda para otras opciones.
$ 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]
El comando mtsv-binner
asigna las lecturas a las secuencias de referencia en el índice MG proporcionado (se debe ejecutar un comando de binning separado para cada uno de los índices MG deseados). Comenzará extrayendo sustras superpuestas (semillas) del mismo tamaño ( --seed-size
) con ciertas compensaciones ( --seed-interval
) de cada secuencia de consulta y su complemento inverso. Luego usa el índice MG para buscar coincidencias exactos y no conectadas para cada semilla. Las coincidencias de semillas se clasifican por ubicación y se agrupan en regiones candidatas utilizando ventanas especificadas. Se contiene el número de golpes por candidato y se filtra cualquier candidato que no cumpla con el número mínimo de golpes de semillas. Las posiciones candidatas restantes se clasifican en orden descendente por el número de golpes de semillas para que las regiones más prometedoras se evalúen primero.
Para cada región candidata, MTSV extrae el rango correspondiente de la secuencia de referencia y busca el TaxId asociado con la región en el índice MG. Si la consulta actual ya se ha alineado con éxito con el Taxid asociado con la región candidata, no se intenta una alineación adicional y se verifica la próxima región candidata. De lo contrario, se realiza una alineación de Smith-Waterman acelerado por SIMD entre la secuencia de referencia extraída y la secuencia de consulta (utilizando una puntuación de 1 para coincidencias y -1 para desajustes, apertura de brecha y extensión de brecha). Si el puntaje de alineación es suficientemente alto, hay una verificación final para determinar si la distancia de edición es menor o igual a la corte de distancia de edición especificada por el usuario ( --edit-rate
). Si la alineación se considera exitosa, entonces no se intentan más alineaciones para esa consulta contra el mismo Taxid. Saltar todas las alineaciones adicionales a un Taxid evita muchas operaciones costosas y reduce el tiempo de cálculo.
El paso de filtrado del candidato se basa en un algoritmo de filtrado Q-Gram que define el número mínimo de coincidencias k-mer exactas (de todas las mers de K de N-K+1 superpuestas que se pueden esperar entre una lectura de longitud N y una secuencia de referencia de referencia Con la mayoría de los desajustes . / (e+ 1 --seed-size
> k . --seed-size
) y el intervalo l ( --seed-interval
) que establece el número de semillas como n_seeds = tceil ((n -k + 1)/l) y porque esto varía según el tamaño de lectura, se requiere el número mínimo de lecturas Para hacer una asignación ( --min-seed
) se proporciona como un porcentaje de estos pisos de semillas (min-sember * n_seeds) --edit-rate
y 1) y la longitud de la lectura, 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
Vea el mensaje de ayuda para otras opciones.
$ 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
escribe resultados para una sola lectura por línea. Por ejemplo, si una lectura con el encabezado R1_123
se mapea a Taxon IDS 562
, 9062
y 100
con distancias de edición 5
, 10
y 11
:
R1_123:562=5,9062=10,100=11
Dado que cada archivo de salida del comando mtsv-binner
solo representará asignaciones a referencias dentro de un solo índice MG, los resultados de todos los índices MG deben combinarse en un solo archivo de resultados para un análisis posterior.
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
Asegúrese de incluir todos los archivos del fragmento. Si bien el colapsador podría ejecutarse en múltiples fases, generalmente es mucho más rápido hacerlos todos a la vez. Si se asignó el mismo taxid a la misma lectura en varios archivos, el que con la distancia de edición más baja se registrará en la salida final.
Vea el mensaje de ayuda para otras opciones.
$ 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