Automatisierung der Sequenzbearbeitung (Stadens pregap4 und gap4)
Zuletzt verändert am 24. Juli 2026 • 3 Min. Lesezeit • 555 WörterVor einiger Zeit habe ich ein Skript geschrieben, das versucht, den Großteil der Arbeit zu automatisieren, die damit verbunden ist, Sequenzen von unserem ABI-Sequenzer in eine gap4-Datenbank zu übertragen.
!/bin/sh rm *.seq *.log Log\ file.txt for i in ls .ab1; do echo "Umbenennung von $i" mv $i echo $i | sed “s/
./\1.ab1/" done ls *.ab1 *.txt > tracefile.list pregap4 -nowin -config /home/jeltsch/bin/pregap4_gap4.conf -fofn tracefile.list gap4 test.0.auxIch habe das Skript in ~/bin abgelegt; es soll aus dem Verzeichnis heraus aufgerufen werden, in dem sich die Sequenzen befinden. In der Regel werden die ab1-Trace-Dateien eines einzelnen Sequenzierungslaufs von unserem Rechner in einem Verzeichnis zusammen mit einigen (für mich) bedeutungslosen Protokolldateien usw. gespeichert. Zunächst löscht das Skript unnötige Dateien aus dem Verzeichnis; anschließend kürzt es die Dateinamen auf 27 Zeichen plus die Endung .ab1. Komischerweise kommt pregap4 gut mit längeren Dateinamen zurecht, aber gap4 hat damit Probleme. Anschließend werden alle verbleibenden Dateien in eine Liste (tracefile.list) aufgenommen, die von pregap4 eingelesen wird. pregap4 wird nicht-interaktiv verwendet. Es bezieht seine Anweisungen (die Konfiguration der Module) aus einer Konfigurationsdatei (die in meinem Fall ebenfalls in ~/bin gespeichert ist). „pregap4“ ruft den „gap4“-Shotgun-Assembler auf und speichert die Messdaten in einer „gap4“-Datenbank. Leider habe ich noch nicht herausgefunden, wie man dieser Datenbank automatisch einen aussagekräftigen Namen zuweisen kann. Derzeit haben sie alle denselben Namen und lassen sich nur anhand ihres Speicherorts in einem anderen Verzeichnis identifizieren. Es wäre sinnvoll, ihnen automatisch einen eindeutigen Namen zuzuweisen, z. B. das Datum, an dem die Assemblierung durchgeführt wurde, oder etwas Ähnliches. Nachdem all dies erledigt ist, wird gap4 aufgerufen und lädt die neu erstellte Datenbank zur manuellen Überprüfung und Bearbeitung.Der Großteil unserer Sequenzierungen dient der Überprüfung neu erstellter Vektoren. Daher wissen wir in der Regel genau, welche Sequenz wir erwarten. Wenn (was leider nicht der Fall ist) jemand ein Programm zur Dokumentation seiner Konstrukte verwendet, das vollständige Sequenzinformationen enthält (wie beispielsweise das Gene Construction Kit), sollten die Trace-Dateien automatisch mit dieser „erwarteten“ Sequenz abgeglichen werden.Derzeit erreiche ich dies, indem ich die DNA-Sequenz aus dem Gene Construction Kit (GCK) als reine Textdatei exportiere (anscheinend könnte ich auch das EMBL-Format verwenden) und diese Datei zusammen mit der ab1-Trace-Datei in dasselbe Verzeichnis lege, bevor ich das Skript starte. Dadurch wird sie wie jede andere Sequenz behandelt und die Sequenz-Reads werden daran ausgerichtet. Es gibt jedoch einige Einstellungen, die ich gerne automatisch beim Aufruf von gap4 vornehmen würde, da ich bei der manuellen Überprüfung des Alignments in gap4 immer dieselbe Abfolge von Klicks durchführe: Anzeige aller vorwärtsgerichteten Leserahmen: Ich gehe davon aus, dass die „erwartete Sequenz“ – da sie die längste ist – in der Assemblierung immer in Vorwärtsrichtung vorliegt und die Leserahmen somit stets vorwärts ausgerichtet sind. Dies ergibt sich daraus, dass ich (zur besseren Lesbarkeit) die Vektorsequenz in GCK stets so ausrichte, dass sich die CDS des GOI in einem Vorwärts-Leserahmen befindet.Das Hervorheben von Diskrepanzen durch Hintergrundfarbe sollte aktiviert sein. Unterschiede zwischen Groß- und Kleinschreibung sollten nicht als Diskrepanzen behandelt werden. Da die Qualität unserer Sequenzierung mäßig ist, sind die Standardwerte meist zu streng, als dass gap4 die Lesungen in dasselbe Contig einordnen könnte. Daher finde ich meist interne Wiederholungen und trage diese manuell ein. Dies sollte sich in der Gap4-Assemblierung automatisch einstellen lassen, aber ich bin noch nicht dazu gekommen, herauszufinden, wie das geht.