Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Bewertung und Lückenstrafen im Alignment

Nach dieser Lektion: Ich kann die Bewertung ändern und erklären, wie sich das Alignment dadurch verändert.

Lektion, 60 Min.2 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Warum ändert die Bewertung das Alignment?

Bei einem Sequenzalignment bestimmen die Bewertungsregeln, welche Anordnung gewinnt. Vor allem die Lückenstrafe entscheidet, ob eine Lücke sich lohnt oder ob lieber Fehlpaarungen in Kauf genommen werden.

Außerdem unterscheidet man globale und lokale Alignments. Nach dieser Lektion können Sie die Regeln ändern und erklären, warum sich das Ergebnis ändert.

Am Ende dieser Lektion

Notiz

Ich kann die Bewertung ändern und erklären, wie sich das Alignment dadurch verändert.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Bewertungsregeldie Punkte für Treffer, Fehlpaarung und Lücke+1, -1, -2
Lückenstrafedie Punkte, die eine Lücke kostet
Globales Alignmentrichtet beide Sequenzen vom Anfang bis zum Ende aus
Lokales Alignmentsucht nur das ähnlichste Teilstück
Alignment-Wertdie Summe der Punkte aller Spalten

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Lückenstrafe entscheidet, ob eine Lücke sich lohnt

Eine Lücke kann viele Treffer retten, weil sie eine Verschiebung ausgleicht. Sie kostet aber Punkte. Ist die Lückenstrafe klein, benutzt das Alignment viele Lücken. Ist sie hoch, nimmt es lieber Fehlpaarungen in Kauf.

Ein Beispiel: ACGTTGCA gegen ACGTGCAT. Die Tabelle zeigt, welche Anordnung bei welcher Strafe gewinnt.

Beispiel: dieselben Sequenzen, drei Lückenstrafen

LückenstrafeMit zwei LückenOhne LückeSieger
-150mit Lücken
-230mit Lücken
-4-10ohne Lücke

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Anordnung mit Lücken bewerten

Befehl
docker exec jupyter python3 -c "a='ACGTTGCA-'; b='ACG-TGCAT'; print([sum(1 if x==y else L if '-' in (x,y) else -1 for x,y in zip(a,b)) for L in (-1,-2,-4)])"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Anordnung ohne Lücke bewerten

Befehl
docker exec jupyter python3 -c "a='ACGTTGCA'; b='ACGTGCAT'; print([sum(1 if x==y else L if '-' in (x,y) else -1 for x,y in zip(a,b)) for L in (-1,-2,-4)])"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein lokales Alignment sucht nur das ähnlichste Stück

Ein globales Alignment richtet beide Sequenzen komplett aus, vom ersten bis zum letzten Zeichen. Ein lokales Alignment sucht nur das ähnlichste Teilstück und ignoriert den Rest.

Beim lokalen Verfahren sinkt keine Zelle der Tabelle unter 0, und der Wert ist die größte Zahl der ganzen Tabelle. Der Rand besteht aus Nullen, denn man darf überall neu anfangen.

Global und lokal im Vergleich

Code: python
# Ein erfundenes gemeinsames Stück mitten in zwei verschiedenen Sequenzen.
x = "TTTACGTACGTAAA"
y = "GGACGTACGTGG"
for lokal in [False, True]:
    rand = -2
    if lokal:
        rand = 0
    zeilen = []
    for i in range(len(x) + 1):
        zeilen.append([i * rand] + [0] * len(y))
    for j in range(1, len(y) + 1):
        zeilen[0][j] = j * rand
    beste = 0
    for i in range(1, len(x) + 1):
        for j in range(1, len(y) + 1):
            schritt = -1
            if x[i - 1] == y[j - 1]:
                schritt = 1
            wert = max(zeilen[i - 1][j - 1] + schritt, zeilen[i - 1][j] - 2, zeilen[i][j - 1] - 2)
            if lokal and wert < 0:
                wert = 0
            zeilen[i][j] = wert
            if wert > beste:
                beste = wert
    if lokal:
        print("lokal:", beste)
    else:
        print("global:", zeilen[len(x)][len(y)])
# Ändern Sie y auf "TTTACGTACGTAAA". Was zeigen jetzt beide Werte?

Ein häufiger Fehler

Warnung

Viele vergleichen Alignment-Werte, die mit verschiedenen Regeln entstanden sind. Eine 5 mit der Lückenstrafe -1 ist nicht besser als eine 3 mit -2. Werte lassen sich nur vergleichen, wenn die Regeln dieselben sind.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.