medaka
- это инструмент для создания консенсусных последовательностей и вариантов вызовов из данных секвенирования нанопора. Эта задача выполняется с использованием нейронных сетей, применяемых куча отдельных чтения секвенирования в отношении эталонной последовательности, в основном обычно либо черновой сборки, либо справочной последовательности базы данных. Он обеспечивает современные результаты превосходящие методы последовательности и методы, основанные на сигналах, а также быстрее.
© 2018- Oxford Nanopore Technologies Ltd.
.fasta
или .fastq
)Для создания черновых сборок мы рекомендуем Flye.
Медака может быть установлен одним из нескольких способов.
Установка с PIP
Официальные бинарные выпуски Medaka доступны на PYPI и могут быть установлены с использованием PIP:
pip install medaka
На платформах ConteMemperAray Linux и MacOS это установит предварительно скомпилированный двоичный файл, на других платформах может быть получено и составлено распределение источников.
Мы рекомендуем использовать Medaka в виртуальной среде, а именно:
python3 -m venv medaka
. ./medaka/bin/activate
pip install --upgrade pip
pip install medaka
Использование этого метода требует, чтобы пользователь предоставил несколько двоичных файлов:
и поместите их в PATH
. samtools/bgzip/tabix
версии> = 1.14 и minimap2
версия> = 2,17, как они используются в разработке Medaka.
Установка по умолчанию способна работать на GPU (см. Использование GPU ниже) или на процессоре. Если вы используете medaka
исключительно на процессоре, и вам не нужна возможность работать на графическом процессоре, вы можете установить версию только для процессора с:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
Установка с Conda
Пакеты Bioconda Medaka не поддерживаются Oxford Nanopore Technologies.
Для тех, кто предпочитает менеджер пакетов Conda, Medaka доступен через канал Anaconda.org:
conda create -n medaka -c conda-forge -c nanoporetech -c bioconda medaka
Установки с этим методом будут объединять дополнительные инструменты, необходимые для запуска сквозного коррекционного рабочего процесса.
Установка из источника
Этот метод полезен только тогда, когда вышеуказанные методы не удались, поскольку он поможет в создании различных зависимостей. Маловероятно, что наши разработчики смогут оказать дополнительную помощь в ваших конкретных обстоятельствах, если вы установите, используя этот метод.
Medaka может быть установлен из своего источника довольно легко в большинстве систем.
Перед установкой Medaka может потребоваться установить некоторые обязательные библиотеки, которые лучше всего устанавливаются менеджером пакетов. На Ubuntu тезисы:
bzip2 g++ zlib1g-dev libbz2-dev liblzma-dev libffi-dev libncurses5-dev libcurl4-gnutls-dev libssl-dev curl make cmake wget python3-all-dev python-virtualenv
Кроме того, необходимо установить и установить GIT LFS перед клонированием репозитория.
Makefile предоставляется для извлечения, компиляции и установки всех прямых зависимостей в виртуальную среду Python. Чтобы настроить запуск среды:
# Note: certain files are stored in git-lfs, https://git-lfs.github.com/,
# which must therefore be installed first.
git clone https://github.com/nanoporetech/medaka.git
cd medaka
make install
. ./venv/bin/activate
Использование этого метода как samtools
, так и minimap2
созданы из источника и не должны быть предоставлены пользователем.
При строительстве из источника, чтобы установить версию только для процессора без возможности запуска на графическом процессоре, измените вышеуказанное:
MEDAKA_CPU=1 make install
Используя графический процессор
Поскольку версия 2.0 medaka
использует Pytorch. Предыдущие версии (v1.x) использовали Tensorflow.
Версия Pytorch по умолчанию, которая установлена при строительстве из источника или при установке через pip
может немедленно использовать графические процессоры через NVIDIA CUDA. Тем не менее, обратите внимание, что пакет torch
составлен с конкретными версиями библиотек CUDA и Cudnn; Пользователи направлены на страницы установки Torch для получения дополнительной информации. Cudnn может быть получен из архива Cudnn, в то время как Cuda из архива Cuda Toolkit.
Установка с Conda немного отличается. См. Таким образом, пакет Conda должен сделать что -то разумное на заказ на компьютер, на котором он устанавливается.
Как описано выше, если возможность работать на графическом процессоре не требуется, medaka-cpu
может быть установлен с помощью версии Pytorch только для процессора, которая не зависит от библиотек CUDA следующим образом:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
При использовании предварительно построенных пакетов, или
MEDAKA_CPU=1 make install
Если строительство из источника.
Заметки об использовании графического процессора
В зависимости от вашего GPU, medaka
может показать ошибки памяти при запуске. Чтобы избежать этого, размер партии вывода может быть уменьшен с значения по умолчанию, установив опцию -b
при запуске medaka_consensus
. Значение -b 100
подходит для графических процессоров 11 ГБ.
medaka
можно запустить, используя настройки по умолчанию через программу medaka_consensus
. .fasta
сборка .fastq
.fasta
. Программа использует как samtools
, так и minimap2
. Если Medaka была установлена с использованием метода из источника, они будут присутствовать в среде Medaka, в противном случае он должен быть предоставлен пользователем.
source ${MEDAKA} # i.e. medaka/venv/bin/activate
NPROC=$(nproc)
BASECALLS=basecalls.fa
DRAFT=draft_assm/assm_final.fa
OUTDIR=medaka_consensus
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC}
Переменные BASECALLS
, DRAFT
и OUTDIR
в вышеперечисленном, должны быть установлены соответствующим образом. Опция -t
указывает количество потоков ЦП для использования.
Когда medaka_consensus
закончил работу, консенсус будет сохранен до ${OUTDIR}/consensus.fasta
.
Гаплоидный вариант призыв
Вариант призыв к гаплоидным образцам включен через рабочий процесс medaka_variant
:
medaka_variant -i <reads.fastq> -r <ref.fasta>
который требует чтения в виде .fasta
или .fastq
и эталонной последовательности в качестве файла .fasta
.
Диплоидный вариант призыв
Диплоидный вариант, вызовный рабочий процесс, который был исторически реализован в пакете Medaka, был превзойден в точности и вычислите производительность другими методами, поэтому он устарел. Наша нынешняя рекомендация по выполнению этой задачи состоит в том, чтобы использовать CLAIR3 либо напрямую, либо через Oxford Nanopore Technologies, предоставленную следующей реализацией, доступной через Labs Epi2me.
Для достижения наилучших результатов важно указать правильную модель вывода, согласно используемому базовому выводу. Разрешенные значения можно найти с помощью medaka tools list_models
.
Недавние базовые камеры
Недавние версии BaseCaller аннотируют свои результаты своей модельной версией. В таких случаях Medaka может осмотреть файлы и попытаться выбрать подходящую модель для себя. Обычно это лучше всего работает в случае вывода BAM от базовых выступлений. Он также будет работать также для входа FASTQ при условии, что FASTQ был создан из вывода базового тока с использованием:
samtools fastq -T '*' dorado.bam | gzip -c > dorado.fastq.gz
medaka inference
попытается автоматически определить правильную модель, осмотрев свой входной файл BAM. Helper Scripts medaka_consensus
и medaka_variant
предпримут аналогичные попытки из их ввода FastQ.
Чтобы проверить файлы для себя, команда:
medaka tools resolve_model --auto_model <consensus/variant> <input.bam/input.fastq>
Напечатает модель, которую будет использовать автоматический выбор модели.
Бактериальное и плазмидное секвенирование
Для нативных данных с бактериальными модификациями, такими как бактериальные изоляты, метагеномные образцы или плазмиды, экспрессируемые в бактериях, существует модель исследования, которая показывает улучшенную консенсусную точность. Эта модель совместима с несколькими версиями базовых кабинетов для химических услуг R10. Добавив флаг --bacteria
бактериальная модель будет выбрана, если она совместима с входными базовыми точками:
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC} --bacteria
Будет использована модель устаревшего по умолчанию, если бактериальная модель не совместима с входными файлами. Выбор модели может быть подтвержден запуском:
medaka tools resolve_model --auto_model consensus_bacteria <input.bam/input.fastq>
который будет отображать модель r1041_e82_400bps_bacterial_methylation
если совместим или имя модели по умолчанию.
Когда автоматический выбор неудач
Если известно имени используемой модели BaseCaller, но было потеряно из входных файлов, модель BaseCaller может быть предоставлена Медаке напрямую. Однако он должен быть добавлен с помощью :consensus
или :variant
в зависимости от того, хочет ли пользователь использовать консенсус или вариант вызова модели Medaka. Например:
medaka inference input.bam output.hdf
--model [email protected]:variant
Будет использовать модель вызова Medaka Variant, подходящую для использования с моделью BaseCaller с именем [email protected]
.
Исторически модели Medaka следовали номенклатуре, описывающей как химические, так и базовые версии. Эти старые модели в настоящее время устаревают, пользователям рекомендуется перезаботиться о своих данных с более поздним версией базового качества до использования Medaka.
Программа medaka_consensus
хороша для простых наборов данных, но, возможно, не оптимальной для запуска больших наборов данных в масштабе. Более высокий уровень параллелизма может быть достигнут путем независимого запуска компонентных шагов medaka_consensus
. Программа выполняет три задачи:
minimap2
считываний с входной сборкой (через mini_align
medaka inference
)medaka sequence
) Три шага являются дискретными и могут быть разделены на части и запускаются независимо. В большинстве случаев, шаг 2. Это узкое место и может быть тривиально параллельно. medaka consensus
может быть предоставлена аргумент --regions
, который ограничит его действие определенными последовательностями сборки из вывода файла .bam
на шаге 1. Поэтому отдельные задания могут выполняться для партий последовательностей сборки одновременно. На последнем шаге medaka stitch
может принимать в качестве входного одного или нескольких файлов .hdf
, выводимых на шаг 2.
Итак, что -то подобное возможно:
# align reads to assembly
mini_align -i basecalls.fasta -r assembly.fasta -P -m
-p calls_to_draft.bam -t <threads>
# run lots of jobs like this:
mkdir results
medaka inference calls_to_draft.bam results/contigs1-4.hdf
--region contig1 contig2 contig3 contig4
...
# wait for jobs, then collate results
medaka sequence results/*.hdf polished.assembly.fasta
Не рекомендуется указывать значение --threads
превышающее 2 для medaka inference
поскольку эффективность масштабирования вычислений плохой. Также обратите внимание, что можно было увидеть, что medaka inference
использует ресурсы, эквивалентные <threads> + 4
, в качестве дополнительных 4 потоков используются для чтения и подготовки входных данных.
Медака была обучена корректировке черновых последовательностей вывода из ассемблера Flye.
Обработка черновой последовательности из альтернативных источников (например, вывод CANU или WTDBG2) может привести к различным результатам.
Исторические модели коррекции в Медаке были обучены исправлять выводы черновых последовательностей из ассемблера CANU с Racon, применяемым либо один раз, либо в четыре раза итеративно. Для современных моделей это не так, и мед из Медаки следует использовать непосредственно на выводе Flye.
Мы благодарим Джоанну Пинеда и Джареда Симпсона за предоставление образцов кода HTSLIB, которые помогали значительно разработать оптимизированный код генерации функций, и за тестирование кандидатов на выпуск версии 0.4.
Мы благодарим Девин утонуть за работу с использованием medaka
с его графическим процессором RTX 2080.
Лицензия и авторское право
© 2018- Oxford Nanopore Technologies Ltd.
medaka
распределяется в соответствии с условиями Oxford Nanopore Technologies plc. Общественная лицензия версия 1.0
Исследование
Исследования предоставляются в качестве технологических демонстрантов, чтобы обеспечить ранний доступ к функциям или стимулировать развитие сообщества инструментов. Поддержка этого программного обеспечения будет минимальной и будет предоставлена только непосредственно разработчиками. Запросы на функции, улучшения и дискуссии приветствуются и могут быть реализованы с помощью запросов разрыва и вытягивания. Как бы мы ни хотели исправить каждую проблему и кусок обратной связи, у разработчиков может быть ограниченный ресурс для поддержки этого программного обеспечения. Исследовательские выпуски могут быть нестабильными и подвергаться быстрой итерации Oxford Nanopore Technologies.