Frage:
Warum haben BAM-Dateien, die mit verschiedenen Tools erstellt wurden, unterschiedliche Dateigrößen?
medbe
2017-06-03 04:38:14 UTC
view on stackexchange narkive permalink

Ich habe eine BAM von Picard erstellt. Ich möchte Ausrichtungen nach Flags mit der Ansicht samtools filtern. Ich habe jedoch festgestellt, dass sich die Ausgangs-BAM von meiner Eingangs-BAM unterscheidet, auch wenn ich keine Filter anwende. Sind BAMs, die mit verschiedenen Werkzeugen hergestellt werden, auch unterschiedlich groß? Wie kann ich überprüfen, ob zwei BAMs gleich sind?

Hallo medbe, danke, dass du deine Frage gestellt hast, die gut zu dieser Bioinformatik-Seite passt. Um die Antworten zu verbessern, die Sie erhalten, kann es hilfreich sein, Ihre Frage zu bearbeiten und eine Geschichte daraus zu erstellen. Was hat Sie dazu veranlasst, Alignments nach Flags zu filtern? Warum ist es wichtig, dass die BAM-Dateien ein anderes Format haben?
Können Sie genau erläutern, wie sich die Ausgabe von samtools / picard unterscheidet? Ist es nur die Dateigröße oder fehlen Daten in den optionalen Feldern des Ausrichtungsabschnitts?
Zwei antworten:
#1
+7
Matt Bashton
2017-06-03 17:14:12 UTC
view on stackexchange narkive permalink

Es ist zu beachten, dass bei der Ausgabe von komprimiertem BAM, wie es die meisten Tools standardmäßig tun, möglicherweise unterschiedliche Komprimierungsstufen und / oder unterschiedliche Bibliotheken oder Versionen dieser Bibliotheken verwendet werden, um (De-) Komprimierung durchzuführen führen zu unterschiedlichen Dateigrößen. Zusätzlich wird die koordinatensortierte BAM mehr als die unsortierte BAM komprimieren. Die aktuelle Version von Picard verwendet HTSJDK, das wiederum java.util.zip.Deflater / Inflater verwendet. Aktuelle Versionen von samtools sollten die Bibliothek HTSlib verwenden, die wiederum davon abhängt die Standard-Zlib-Bibliothek. Sie können die Auswirkungen verschiedener Implementierungen von zlib auf die Dateigröße und Ausführungszeit beim Benchmarking des samtools-Teams sehen.

In Ihrem Fall ist dies jedoch der beste Weg, um festzustellen, ob Es gibt einen Unterschied zwischen den BAM-Dateien, indem die Auswirkungen unterschiedlicher Komprimierungsstufen oder Bibliotheken, die für die Komprimierung verwendet werden, ausgeschlossen und beide BAM-Dateien als unkomprimiert gespeichert werden. Sowohl samtools als auch Picard haben Optionen zum Deaktivieren oder Ändern der Komprimierungsstufen, da der BAM-Komprimierungsstandard BGZF zusätzlich zum gzip-Format implementiert ist und wie bei gzip die Möglichkeit geerbt hat, die Komprimierungsstufe von 0 auf 9 zu ändern. Mit

samtools view -bu können Sie unkomprimierte BAM-Ausgaben erstellen (dies ist auch praktisch für das Weiterleiten in andere Programme, da Zeit beim Komprimieren und Dekomprimieren eines Streams gespart wird). Beachten Sie auch, dass samtools sort eine -l INT -Einstellung hat, bei der INT zwischen 0 gesetzt werden kann (Komprimierung aus, wie bei -u ) 1 ( für schnellste Komprimierung, aber erhöhte Dateigröße) oder -9 (für maximale Komprimierung mit erhöhter Laufzeit). Einige der Auswirkungen einer längeren Laufzeit für höhere Komprimierungseinstellungen können mithilfe des Arguments - @ verbessert werden, mit dem Sie die Anzahl der zusätzlichen Threads festlegen können, die für die BAM-Komprimierung verwendet werden. Standardmäßig verwenden samtools keine.

Picard-Werkzeuge haben eine allgemeine Einstellung COMPRESSION_LEVEL , die für die meisten Werkzeuge gilt, die diese Einstellung auf 0 setzen. COMPRESSION_LEVEL = 0 sollte die Komprimierung deaktivieren.

Wenn Sie also das zuerst verwendete Picard-Tool mit COMPRESSION_LEVEL = 0 erneut ausführen, können Sie überprüfen, ob die Datei in der Ansicht samtools nicht weiter geändert wurde -bu . Die Annahme hier ist, dass wenn beide Dateien genau den gleichen Inhalt haben, sie unkomprimiert die gleiche Größe haben sollten, natürlich, wenn sie geringfügige Unterschiede in Bezug auf die Formatierung von Leerzeichen aufweisen, können sich die Dinge immer noch unterscheiden.

#2
+4
gringer
2017-06-03 05:20:02 UTC
view on stackexchange narkive permalink

Es ist unwahrscheinlich, dass zwei verschiedene Zuordnungswerkzeuge genau dieselbe Ausrichtung, Punktzahl und Übereinstimmungszeichenfolge für dieselbe Sequenz liefern, die derselben Referenz zugeordnet ist. Bei einigen Sequenz- / Referenzausrichtungen ist es unmöglich zu bestimmen, welche die "beste" Ausrichtung ist, und geringfügige Unterschiede im Code können große Auswirkungen auf die ausgewählte Ausrichtung haben.

Selbst wenn der tatsächliche Zuordnungsort und die tatsächliche Übereinstimmung übereinstimmen Zeichenfolgen sind genau gleich (z. B. wenn Sie ein Tool wie Picard zum Filtern von BAM / SAM-Dateien verwenden). Verschiedene Tools enthalten bei jeder Zuordnung unterschiedliche Metadaten. Dies ist in der SAM-Dateiformatspezifikation durch Hinzufügen optionaler Felder jenseits der 11. Spalte zulässig. In diesen Feldern können einige optionale Standard-Tags verwendet werden, und es können auch zusätzliche benutzerdefinierte nicht standardmäßige Tags verwendet werden. Es ist sehr wahrscheinlich, dass Picard den Ausrichtungen in der BAM / SAM-Datei zusätzliche Metadaten hinzufügt.

Eine zusätzliche Komplikation besteht darin, dass die zugrunde liegende SAM -Ausrichtung (und die Metadaten) sein könnten identisch, aber die BAM -Datei kann immer noch unterschiedliche Dateigrößen haben. Ein Grund dafür ist, dass die Komprimierungsmethoden für BAM-Dateien geändert werden können. Beispielsweise können Ausrichtungswerkzeuge eine schnelle Komprimierungsmethode auswählen, während Filterwerkzeuge eine Methode auswählen, die zu einer besseren Komprimierung führt.

Das Überprüfen der Ausrichtungsähnlichkeit ist schwieriger als nur das Vergleichen von Dateien auf Binärebene und Ihrer Eine bestimmte Anwendung (oder ein bestimmter Kontext oder eine bestimmte Geschichte) ändert die beste Vergleichsmethode. Es wäre hilfreich zu wissen, warum Sie BAM-Dateien vergleichen möchten, um eine bessere Antwort auf Ihre Frage zu erhalten.



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...