Frage:
Unterschied zwischen BWA-Backtrack und BWA-MEM
DDRRpy
2017-05-16 23:41:23 UTC
view on stackexchange narkive permalink

Viele meiner Kollegen empfehlen, BWA-MEM anstelle der normalen alten BWA zu verwenden. Das Problem ist, dass ich nicht verstehe, warum und das Lesen der BWA-Manpage nicht hilfreich zu sein scheint.

Was ist der Unterschied zwischen BWA und BWA-MEM? Und in welchen Fällen würden Sie einen über den anderen setzen?

Sie sollten die Veröffentlichungen [BWA] (https://www.ncbi.nlm.nih.gov/pubmed/19451168) und [BWA mem] (https://arxiv.org/abs/1303.3997) lesen.
Dieses Dokument: https://arxiv.org/abs/1303.3997
Mögliches Duplikat: https://bioinformatics.stackexchange.com/questions/418/why-is-bwa-mem-the-standard-algorithm-when-using-bwa
Zwei antworten:
#1
+12
Karel Brinda
2017-06-07 20:34:52 UTC
view on stackexchange narkive permalink

TL; DR:

BWA-Backtrack basiert auf Backtracking. Dieser Ansatz ist nur dann geeignet, wenn die Unterschiede zwischen den Lesevorgängen und der Referenz bestehen ist niedrig oder wenn Sie alle besten Treffer finden oder alle möglichen Ausrichtungen bis zu einer bestimmten Anzahl von Fehlern auflisten möchten.

In allen anderen Situationen ist BWA-MEM dank seiner ausgeklügelten Strategie so gut wie möglich vorzuziehen Gehen Sie auf der Grundlage maximaler exakter Übereinstimmungen besser mit Fehlern um und wechseln Sie automatisch zwischen lokalen und globalen Ausrichtungsmodi.

Lange Beschreibung:

Ich möchte einige bereitstellen algorithmische Einsicht, da ich glaube, dass dies in diesem Fall sehr nützlich sein kann. Sowohl BWA-Backtrack als auch BWA-MEM verwenden dieselbe Indexierungsstrategie (stark abhängig vom BWT-Index), aber die tatsächlichen Algorithmen sind sehr unterschiedlich.

BWT-Index (und auch andere Volltextindizes wie Suffix-Arrays oder Suffix-Bäume) können leicht genaue Übereinstimmungen finden (stellen Sie sich Strg + vor F-ähnliche Suche in einem Texteditor), aber jede d Unterschiede zwischen dem Lesevorgang und der Referenz, wie z. B. Sequenzierungsfehler oder genomische Varianten, machen die Situation kompliziert. Man muss dann irgendwie ungenaue Übereinstimmungen in exakte Übereinstimmungen umwandeln, und alle drei BWA-Mapper (beachten Sie, dass es auch BWA-SW gibt, aber es ist veraltet) verwenden ganz andere Strategien.

BWA-Backtrack sucht nach Teilzeichenfolgen der Referenz, die dem gesamten Lesevorgang (Ende-zu-Ende) mit einem als Backtracking bezeichneten Algorithmus ähnlich sind. Zunächst werden Vorkommen des Lesevorgangs ohne "Korrekturen" durchsucht. Wenn nichts gefunden wird, werden alle möglichen Einzelbearbeitungen berücksichtigt. dann zwei Änderungen usw. Um die Zuordnung effizient zu gestalten, möchte man normalerweise mit der zuerst gefundenen Ausrichtung aufhören, da dies die beste ist. Bei Bedarf ist es auch möglich, die anderen gleich guten Ausrichtungen zu finden oder alle Ausrichtungen bis zu einer bestimmten Bearbeitung aufzulisten Entfernung oder mit einer gewissen Abweichungsrate (siehe die Option -N von BWA-backtrack).

Es stellt sich heraus, dass Die zum Auffinden einer Ausrichtung erforderliche Zeit kann exponentiell in der Anzahl der Fehler sein, was wahrscheinlich das Hauptproblem von Backtracking-basierten Ansätzen ist. Um großen Overhead aufgrund unterschiedlicher Lesevorgänge zu vermeiden, muss die Anzahl der zulässigen Fehler auf eine vernünftige Anzahl begrenzt werden (siehe maxDiff in der BWA-Manpage) und betrachten Sie die anderen Lesevorgänge als nicht ausgerichtet. Im Fall von BWA-Backtrack beträgt die minimal erforderliche Identitätsstufe ~ 97% mit den Standardoptionen (siehe Option -n).

Tatsächlich ist der Algorithmus komplizierter und verwendet verschiedene Heuristiken wie Seed-and-Extend oder Z-Dropoff, um die Berechnung schnell genug zu machen (zum Preis einer geringeren Genauigkeit). Wenn Sie an weiteren Details interessiert sind, werden all diese Tricks im -Papier ausführlich beschrieben.

BWA-MEM verwendet eine ganz andere Strategie. Es erkennt lange exakte Übereinstimmungen zwischen dem Lesevorgang und der Referenz und kettet sie dann in lokale oder globale Ausrichtungen, je nachdem, was in diesem speziellen Fall angemessener ist. Eine solche automatische lokal-globale Umschaltung kann sehr leistungsfähig sein und BWA-MEM funktioniert gut mit verschiedenen Datentypen (kurze Lesevorgänge, lange Lesevorgänge, niedrige Fehlerraten, hohe Fehlerraten usw.).

#2
+9
Michael Hall
2017-05-17 03:49:39 UTC
view on stackexchange narkive permalink

Um die Einführung in BWA in sourceforge zu zitieren:

BWA ist ein Softwarepaket zum Zuordnen von Sequenzen mit geringer Divergenz zu einer großen Sequenz Referenzgenom, wie das menschliche Genom. Es besteht aus drei Algorithmen: BWA-Backtrack, BWA-SW und BWA-MEM. Der erste Algorithmus ist für Illumina-Sequenz-Reads bis zu 100 bp ausgelegt, während die restlichen zwei für längere Sequenzen zwischen 70 bp und 1 Mbp lagen. BWA-MEM und BWA-SW haben ähnliche Funktionen wie Long-Read-Unterstützung und Split-Alignment. BWA-MEM, das neueste, wird jedoch im Allgemeinen für qualitativ hochwertige Abfragen empfohlen, da es schneller und genauer ist. BWA-MEM bietet auch eine bessere Leistung als BWA-Backtrack für Illumina-Lesevorgänge mit 70 bis 100 Bp.

Kurz gesagt, für alles, wo Sie Leselängen über 70 Bp haben, ist BWA-MEM schneller und genauer .

Eine wichtige Ergänzung ist, dass BWA-MEM Lesevorgänge aggressiver aufteilt. Während BWA-ALN (wenn ich mich richtig erinnere) eine Ende-zu-Ende-Ausrichtung für die Verankerung erfordert, ermöglicht BWA-MEM Teilausrichtungen. Verwenden Sie praktikabel das Flag `-M` für bwa mem, wenn Sie die Ausrichtungen mit älteren oder älteren Geräten verarbeiten weniger Mainstream-Programme, wenn sie das zusätzliche Leseflag der BAM noch nicht verstehen.
@Manuel: Welche spezifischen Programme haben Sie im Sinn, die `-M` benötigen? Diese Flagge wurde für die Verwendung mit Picard <1,96 hinzugefügt, das mittlerweile uralt ist. Picard selbst hat seit vier Jahren nicht mehr von dieser Flagge profitiert oder benötigt. Siehe auch https://github.com/lh3/bwa/pull/26


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...