MTSV Tools - это набор основных инструментов для таксономической классификации метагеномных считываний секвенирования. MTSV выполняет полную выравнивание с использованием FM-индексного фильтра Q-грамма, за которым следует выравнивание Simd-Waterman Smith-Waterman.
Conda Install 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 реализует пользовательский метагеномный индекс (Mg-Index) на основе структуры данных FM-индекса. Справочные показатели должны быть построены до выполнения таксономической классификации.
Чтобы построить MG-индексы, вам понадобится мультифаста-файл всех эталонных последовательностей, с заголовками в формате SEQID-TAXID
. Таким образом, последовательность имеет уникальный IDEGER ID 12345 и принадлежит таксономическому идентификатору NCBI 987, заголовок для этой последовательности должен прочитать 12345-987
. Справочные последовательности могут быть получены из любой коллекции последовательностей ДНК (т.е., 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, их нужно обрабатывать в индексы, которые MTSV может использовать для запроса. Во время сборки индекса последовательности в файле FASTA сбрасывают при записи местоположения границ последовательностей и таксидий, связанной с каждой последовательности. Массив суффиксов, преобразование бурров-колеса (BWT) и FM-индекс построены из конкатенированных последовательностей с использованием пакета Rust-Bio V0.39.1. FM-индекс и связанные с ними метаданные последовательности представляют собой MG-индекс. Один Mg-индекс создан в соответствии с файлом FASTA, и новые индексы могут быть добавлены по мере того, как справочная коллекция растет без необходимости восстановления любого из существующих индексов.
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
Используя настройки по умолчанию, индексы будут ~ 3,6x размер эталонного файла и потребуют такого большого значения для запуска шага биннинга. Интервал выборки по умолчанию составляет 64 для массива прохождения BWT и 32 для массива суффиксов. Это может быть переопределено путем прохождения --sample-interval <FM_SAMPLE_INTERVAL>
для массива происшествия или --sa-sample <SA_SAMPLE_RATE>
для массива суффиксов. Более низкие значения увеличат размер индекса и могут обеспечить сокращение времени запроса. Увеличение флага уменьшит размер индекса до точки, принимая более медленное время запроса.
Смотрите сообщение справки для других вариантов.
$ 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-индексе (отдельная команда Binning должна выполняться для каждого из желаемых MG-индексов). Он начнется с извлечения перекрывающихся подстроков (семян) того же размера ( --seed-size
) с определенными смещениями ( --seed-interval
) из каждой последовательности запросов и его обратного дополнения. Затем он использует Mg-Index для поиска точных, непредвзятых совпадений для каждого семени. Семейные матчи отсортируются по местоположению и сгруппируются в области кандидатов с использованием указанных окон. Количество попаданий на кандидата подсчитано, и любой кандидат, который не соответствует минимальному количеству семян, отфильтрован. Оставшиеся позиции кандидатов сортируются в порядке убывания по количеству семян, так что наиболее перспективные области оцениваются в первую очередь.
Для каждой области кандидата MTSV извлекает соответствующий диапазон из эталонной последовательности и смотрит на таксид, связанный с регионом в MG-индексе. Если текущий запрос уже успешно выровнен с таксидом, связанным с регионом -кандидатом, никакого дополнительного выравнивания не предпринимается, и следующий регион кандидата проверяется. В противном случае выравнивание Смита-Уэтермана, ускоренное SIMD, выполняется между извлеченной эталонной последовательности и последовательности запроса (с использованием оценки 1 для совпадений и -1 для несоответствий, открытия разрыва и расширения разрыва). Если оценка выравнивания достаточно высока, существует одна окончательная проверка, чтобы определить, меньше ли расстояние редактирования или равное указанному пользователю отсечку на расстоянии редактирования ( --edit-rate
). Если выравнивание считается успешным, то для этого запроса не предпринимается никаких дополнительных выравниваний против одного и того же таксида. Пропустить все дополнительные выравнивания в таксидию позволяет избежать многих дорогих операций и сокращает время вычисления.
Шаг фильтрации кандидата основан на алгоритме фильтрации Q-грамма, который определяет минимальное количество точных совпадений K-MER (от всех перекрывающихся K -мер N-K+1 , которые можно ожидать между чтением N -Length и эталонной последовательности с максимально e несоответствиями . / (e+ 1 --seed-size
> k . --seed-size
) и интервал l ( --seed-interval
), который устанавливает количество семян как n_seeds = ceil ((n -k + 1)/l), и потому что это варьируется в зависимости от размера чтения, минимальное количество считываний требуется Для получения задания ( --min-seed
--edit-rate
предоставляется в процентах от этих семян (Min-Seed * n_seeds) . и 1) и длина чтения, н .
$ 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
пишет результаты для одного чтения на строку. Например, если считывание с заголовком R1_123
Карты на таксоны идентификатора 562
, 9062
и 100
с редактированием расстояний 5
, 10
и 11
:
R1_123:562=5,9062=10,100=11
Поскольку каждый выходной файл из команды mtsv-binner
будет представлять только назначения только в пределах одного MG-индекса, результаты всех MG-индексов должны быть объединены в один файл результатов для дальнейшего анализа.
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
Обязательно включите все кусочные файлы. В то время как Collapser можно запустить на несколько этапов, как правило, гораздо быстрее делать их все сразу. Если один и тот же таксид был назначен одним и тем же чтением в нескольких файлах, тот, который с самым низким расстоянием редактирования будет записан на конечном выходе.
Смотрите сообщение справки для других вариантов.
$ 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