medaka
ist ein Tool, um Konsensussequenzen und Variantenaufrufe aus Nanopore -Sequenzierungsdaten zu erstellen. Diese Aufgabe wird unter Verwendung von neuronalen Netzwerken durchgeführt, die einen Stapel einzelner Sequenzierungslesungen gegen eine Referenzsequenz angewendet haben, hauptsächlich entweder eine Entwurfsbaugruppe oder eine Datenbankreferenzsequenz. Es liefert hochmoderne Ergebnisse, die die mit Sequenzgraph-basierten Methoden und Signalmethoden übertreffen und gleichzeitig schneller sind.
© 2018- Oxford Nanopore Technologies Ltd.
.fasta
oder .fastq
)Zum Erstellen von Entwurfsversammlungen empfehlen wir Flye.
Medaka kann auf verschiedene Arten installiert werden.
Installation mit PIP
Offizielle binäre Veröffentlichungen von Medaka sind auf PYPI erhältlich und können mit PIP installiert werden:
pip install medaka
Auf zeitgenössischen Linux- und MacOS -Plattformen installiert dies eine vorkompilierte Binärin, auf anderen Plattformen kann eine Quellverteilung abgerufen und zusammengestellt werden.
Wir empfehlen, Medaka in einer virtuellen Umgebung zu verwenden, nämlich:
python3 -m venv medaka
. ./medaka/bin/activate
pip install --upgrade pip
pip install medaka
Erfordert der Benutzer mit dieser Methode mehrere Binärdateien an:
und platzieren Sie diese in den PATH
. samtools/bgzip/tabix
-Versionen> = 1.14 und minimap2
-Version> = 2.17 werden empfohlen, da diese in der Entwicklung von Medaka verwendet werden.
Die Standardinstallation hat die Fähigkeit, auf einer GPU (siehe unter Verwendung einer GPU unten) oder auf der CPU auszuführen. Wenn Sie medaka
ausschließlich auf der CPU verwenden und nicht in der Lage sind, auf GPU auszuführen, möchten Sie möglicherweise die CPU-Version mit: nur mit:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
Installation mit Conda
Die Bioconda Medaka -Pakete werden von Oxford Nanopore Technologies nicht unterstützt.
Für diejenigen, die den Conda -Paketmanager bevorzugen, ist Medaka über den Anaconda.org -Kanal erhältlich:
conda create -n medaka -c conda-forge -c nanoporetech -c bioconda medaka
Installationen mit dieser Methode bündeln die zusätzlichen Tools, die zum Ausführen eines End-to-End-Korrektur-Workflows erforderlich sind.
Installation von Quelle
Diese Methode ist nur dann nützlich, wenn die oben genannten Methoden fehlgeschlagen sind, da sie beim Aufbau verschiedener Abhängigkeiten hilft. Es ist unwahrscheinlich, dass unsere Entwickler in Ihren spezifischen Umständen weitere Unterstützung leisten können, wenn Sie diese Methode installieren.
Medaka kann in den meisten Systemen ganz einfach aus seiner Quelle installiert werden.
Vor der Installation von Medaka muss möglicherweise einige Voraussetzungsbibliotheken installiert werden, die am besten von einem Paketmanager installiert wurden. Auf Ubuntu sind die Thesen:
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
Zusätzlich ist es erforderlich, GIT -LFS zu installieren und einzurichten, bevor das Repository kloniert wird.
Es wird ein Makefile zur Verfügung gestellt, um alle direkten Abhängigkeiten in eine virtuelle Python -Umgebung zu holen, zu kompilieren und zu installieren. Um den Umgebungslauf zu richten:
# 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
Mit dieser Methode werden sowohl samtools
als auch minimap2
aus der Quelle erstellt und müssen vom Benutzer nicht bereitgestellt werden.
Wenn Sie aus der Quelle erstellen, um eine Nur-CPU-Version zu installieren, ohne die in der GPU ausgeführte Kapazität auszuführen, ändern Sie die oben genannten an:
MEDAKA_CPU=1 make install
Mit einer GPU
Seit Version 2.0 verwendet medaka
Pytorch. Frühere Versionen (v1.x) verwendeten Tensorflow.
Die Standardversion von Pytorch, die beim Erstellen aus der Quelle oder beim Installieren über pip
installiert ist, kann über NVIDIA CUDA sofortig verwendet werden. Beachten Sie jedoch, dass das torch
gegen bestimmte Versionen der CUDA- und CUDNN -Bibliotheken zusammengestellt wird. Die Benutzer werden auf die Taschenlampen -Installationsseiten gerichtet, um weitere Informationen zu erhalten. Cudnn kann aus dem Cudnn -Archiv erhalten werden, während Cuda aus dem Cuda -Toolkit -Archiv.
Die Installation mit Conda ist etwas anders. Siehe die Dokumentation von [Conda-forge] https://conda-forge.org/docs/user/Tipsandtricks/#installing-cuda- fabrierte Packages-Like-Tensorflow-and-Pytorch). Zusammenfassend sollte das Conda -Paket dem Computer, auf dem es installiert wird, etwas vernünftiges tun.
Wie oben beschrieben, kann medaka-cpu
mit einer CPU-Version von Pytorch, die nicht von den CUDA-Bibliotheken abhängt, wie folgt mit einer CPU-Version von Pytorch abhängig, wenn die Fähigkeit zum Ausführen von GPU erforderlich ist:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
Wenn Sie die vorgefertigten Pakete verwenden, oder
MEDAKA_CPU=1 make install
Wenn Sie aus der Quelle bauen.
GPU -Nutzungsnotizen
Abhängig von Ihrer GPU kann medaka
beim Ausführen aus Speicherfehlern herauskommen. Um diese zu vermeiden, kann die Inferenz -Stapelgröße vom Standardwert reduziert werden, indem die Option -b
beim Ausführen medaka_consensus
festgelegt wird. Ein Wert -b 100
ist für 11 GB GPUs geeignet.
medaka
kann mit seinen Standardeinstellungen über das medaka_consensus
-Programm ausgeführt werden. Eine Baugruppe im .fasta
-Format und eine Basisabteilung in .fasta
oder .fastq
-Formaten sind erforderlich. Das Programm verwendet sowohl samtools
als auch minimap2
. Wenn Medaka mit der From-Source-Methode installiert wurde, müssen diese in der Medaka-Umgebung vorhanden sein, da sie sonst vom Benutzer bereitgestellt werden müssen.
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}
Die Variablen BASECALLS
, DRAFT
und OUTDIR
im obigen sollten angemessen festgelegt werden. Die Option -t
gibt die Anzahl der zu verwendenden CPU -Threads an.
Wenn medaka_consensus
abgeschlossen ist, wird der Konsens auf ${OUTDIR}/consensus.fasta
gespeichert.
Haploide Variante Call
Die Variante fordert Haploide Proben durch den medaka_variant
Workflow:
medaka_variant -i <reads.fastq> -r <ref.fasta>
Dies erfordert die Lesevorgänge als .fasta
oder .fastq
und als Referenzsequenz als .fasta
-Datei.
Diploide Variante Berufung
Die diploide Variante, die den Workflow nennt, der historisch innerhalb des Medaka -Pakets implementiert wurde, wurde in Genauigkeit und Berechnung der Leistung mit anderen Methoden übertroffen und wurde daher veraltet. Unsere aktuelle Empfehlung für die Ausführung dieser Aufgabe ist die Verwendung von Clair3 entweder direkt oder über die Oxford Nanopore -Technologien, die die NextFlow -Implementierung zur Verfügung gestellt haben, die über EPI2ME -Labors verfügbar ist.
Für die besten Ergebnisse ist es wichtig, das korrekte Inferenzmodell gemäß der verwendeten Bascaller anzugeben. Zulässige Werte können durch Ausführen medaka tools list_models
gefunden werden.
Jüngste Basisgeräte
Neuere Basiscaller -Versionen kommentieren ihre Ausgabe mit ihrer Modellversion. In solchen Fällen kann Medaka die Dateien inspizieren und versuchen, ein geeignetes Modell für sich selbst auszuwählen. Dies funktioniert in der Regel am besten bei der BAM -Ausgabe von Basokalern. Es funktioniert auch für die Fastq -Eingabe, vorausgesetzt, der Fastq wurde aus der Basiscaller -Ausgabe unter Verwendung:
samtools fastq -T '*' dorado.bam | gzip -c > dorado.fastq.gz
Der Befehl medaka inference
versucht, ein korrektes Modell automatisch zu bestimmen, indem er seine BAM -Eingabedatei inspiziert. Die Helfer -Skripte medaka_consensus
und medaka_variant
werden ähnliche Versuche aus ihrem Fastq -Eingang unternehmen.
Um Dateien selbst zu inspizieren, den Befehl:
medaka tools resolve_model --auto_model <consensus/variant> <input.bam/input.fastq>
Drucken Sie das Modell, das die automatische Modellauswahl verwendet.
Bakterien- und Plasmidsequenzierung
Für native Daten mit bakteriellen Modifikationen wie bakteriellen Isolaten, metagenomischen Proben oder Plasmiden, die in Bakterien exprimiert werden, gibt es ein Forschungsmodell, das eine verbesserte Konsensgenauigkeit zeigt. Dieses Modell ist mit mehreren Basiscaller -Versionen für die R10 -Chemie kompatibel. Durch Hinzufügen des Flags --bacteria
Das Bakterienmodell wird ausgewählt, wenn es mit den Eingangsbasisabrechnungen kompatibel ist:
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC} --bacteria
Ein Legacy -Standardmodell wird verwendet, wenn das Bakterienmodell nicht mit den Eingabedateien kompatibel ist. Die Modellauswahl kann durch Laufen bestätigt werden:
medaka tools resolve_model --auto_model consensus_bacteria <input.bam/input.fastq>
Dadurch wird das Modell r1041_e82_400bps_bacterial_methylation
angezeigt, falls kompatibel oder der Standardmodellame sonst.
Wenn die automatische Auswahl nicht erfolgreich ist, und ältere Basisgeräte
Wenn der Name des verwendeten Bascaller -Modells bekannt ist, jedoch aus den Eingabedateien verloren gegangen ist, kann das Basiscaller -Modell Medaka direkt zur Verfügung gestellt werden. Es muss jedoch entweder mit :consensus
beigefügt werden oder :variant
entsprechend, ob der Benutzer das Konsens- oder Varianten -Ruf -Modell von Medaka verwenden möchte. Zum Beispiel:
medaka inference input.bam output.hdf
--model [email protected]:variant
Verwendet das Medaka -Variante -Aufrufmodell, das für die Verwendung mit dem Basicaller -Modell mit dem Namen [email protected]
geeignet ist.
Historisch gesehen folgten Medaka -Modelle einer Nomenklatur, die sowohl die Chemie- als auch die Basisgerichtsversionen beschreibt. Diese alten Modelle sind jetzt veraltet, Benutzer werden ermutigt, ihre Daten vor der Verwendung von Medaka mit einer neueren Basecaller -Version wiederherzustellen.
Das Programm medaka_consensus
eignet sich gut für einfache Datensätze, ist jedoch möglicherweise nicht optimal für das Ausführen großer Datensätze im Maßstab. Ein höheres Maß an Parallelität kann erreicht werden, indem die Komponentenschritte von medaka_consensus
unabhängig ausgeführt werden. Das Programm führt drei Aufgaben aus:
mini_align
, der ein dünner Schleier über minimap2
ist)medaka inference
)medaka sequence
) Die drei Schritte sind diskret und können getrennt und unabhängig laufen. In den meisten Fällen ist Schritt 2 der Engpass und kann trivial parallelisiert werden. Das medaka consensus
kann ein Argument --regions
geliefert werden, das seine Aktion auf bestimmte Montagesequenzen aus der .bam
-Dateiausgabe in Schritt 1 beschränkt. Daher können einzelne Jobs für Stapel von Montagesequenzen gleichzeitig ausgeführt werden. Im letzten Schritt kann medaka stitch
eine oder mehrere der .hdf
-Dateien, die in Schritt 2 ausgegeben werden.
Zusammenfassend ist also so etwas möglich:
# 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
Es wird nicht empfohlen, einen Wert von --threads
von mehr als 2 für medaka inference
anzugeben, da die Effizienz der Berechnung über dies hinaus schlecht ist. Beachten Sie auch, dass medaka inference
auch gesehen werden kann, dass die Ressourcen verwendet werden, die mit <threads> + 4
entsprechen, da zusätzliche 4 Threads zum Lesen und Vorbereiten von Eingabedaten verwendet werden.
Medaka wurde geschult, um die Ausgabe von Sequenzen aus dem Flye Assembler zu korrigieren.
Die Verarbeitung einer Entwurfssequenz aus alternativen Quellen (z. B. der Ausgabe von CANU oder WTDBG2) kann zu unterschiedlichen Ergebnissen führen.
Historische Korrekturmodelle in Medaka wurden geschult, um die vom Canu -Assembler auszuführenden Entwurfssequenzen mit Racon entweder einmal oder iterativ angewendet zu haben. Für zeitgenössische Modelle ist dies nicht der Fall und Medaka sollte direkt für die Ausgabe von Flye verwendet werden.
Wir danken Joanna Pineda und Jared Simpson für die Bereitstellung von HTSLIB -Code -Proben, die die Entwicklung des optimierten Codes für die Funktion zur Erzeugung von Features und den Testen der Version 0,4 -Release -Kandidaten erheblich unterstützten.
Wir danken Devin ertrinken für die Arbeit von medaka
mit seiner RTX 2080 GPU.
Lizenz und Urheberrecht
© 2018- Oxford Nanopore Technologies Ltd.
medaka
wird unter den Bedingungen der Oxford Nanopore Technologies Plc verteilt. Öffentliche Lizenzversion 1.0
Forschungsveröffentlichung
Forschungsveröffentlichungen werden als technologische Demonstranten bereitgestellt, um einen frühen Zugang zu Merkmalen zu gewährleisten oder die Entwicklung von Tools zu stimulieren. Die Unterstützung für diese Software ist minimal und wird nur direkt von den Entwicklern bereitgestellt. Feature -Anfragen, -verbesserungen und -diskussionen sind willkommen und können durch Gaber- und Zuganfragen implementiert werden. So sehr wir auch jedes Problem und jede Feedback -Feedback -Nutzer beheben möchten, haben die Entwickler möglicherweise nur begrenzte Ressourcen für die Unterstützung dieser Software. Forschungsfreisetzungen können instabil sein und von Oxford Nanopore Technologies schnell iteriert werden.