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

Paarweises Sequenzalignment

Nach dieser Lektion: Ich kann zwei Sequenzen mit einer Punktzahl ausrichten.

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

Wie ähnlich sind zwei Sequenzen?

Ein paarweises Sequenzalignment legt zwei Sequenzen so untereinander, dass möglichst viele gleiche Basen übereinander stehen. Die Punktzahl des Alignments sagt, wie ähnlich die beiden Sequenzen sind.

Zwei Sequenzen sind selten gleich lang. Das Alignment fügt deshalb bei Bedarf Lücken ein und rechnet aus, welche Anordnung die höchste Punktzahl hat.

Am Ende dieser Lektion

Notiz

Ich kann zwei Sequenzen mit einer Punktzahl ausrichten.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Alignmentzwei Sequenzen Spalte für Spalte untereinander gelegt
Trefferzwei gleiche Basen in einer Spalte+1
Fehlpaarungzwei verschiedene Basen in einer Spalte-1
Lückeein Strich statt einer Base, eine Einfügung oder Löschung-2
Alignment-Wertdie Summe der Punkte aller Spalten

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

Jede Spalte bekommt Punkte

In einem Alignment steht jede Base über einer anderen Base oder über einer Lücke, die als Strich geschrieben wird. Jede Spalte bekommt Punkte: ein Treffer gibt +1, eine Fehlpaarung -1 und eine Lücke -2.

Der Alignment-Wert ist die Summe aller Spalten. Das sind unsere Regeln für diese Lektion, andere Regeln folgen in der nächsten.

Beispiel: GATTACA gegen GA-TACA

SpalteObenUntenPunkte
1GG+1
2AA+1
3T--2
4TT+1
5AA+1
6CC+1
7AA+1

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

Einen Alignment-Wert ausrechnen

Befehl
docker exec jupyter python3 -c "a='GATTACA'; b='GA-TACA'; print(sum(1 if x==y else -2 if '-' in (x,y) else -1 for x,y in zip(a,b)))"

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

Dieselben Sequenzen ohne Lücke ausrichten

Befehl
docker exec jupyter python3 -c "print(sum(1 if x==y else -1 for x,y in zip('GATTACA', 'GCATGCA')))"

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 Tabelle findet die beste Anordnung

Probieren Sie nicht alle Anordnungen durch, das wären zu viele. Legen Sie eine Tabelle an: eine Zeile je Base der ersten Sequenz, eine Spalte je Base der zweiten.

Jede Zelle ist der beste Wert von drei Wegen: von links oben plus Treffer oder Fehlpaarung, von oben plus Lücke, von links plus Lücke.

Beispiel: die Tabelle für GAT gegen GT

ZeileStartGT
Start0-2-4
G-21-1
A-4-10
T-6-30

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

Die Tabelle von GAT gegen GT füllen

Code: python
# Die Tabelle für GAT gegen GT, Regeln: Treffer 1, Fehlpaarung -1, Lücke -2.
x = "GAT"
y = "GT"
zeilen = []
for i in range(len(x) + 1):
    zeilen.append([0] * (len(y) + 1))
for i in range(1, len(x) + 1):
    zeilen[i][0] = i * -2
for j in range(1, len(y) + 1):
    zeilen[0][j] = j * -2
for i in range(1, len(x) + 1):
    for j in range(1, len(y) + 1):
        if x[i - 1] == y[j - 1]:
            schritt = 1
        else:
            schritt = -1
        zeilen[i][j] = max(zeilen[i - 1][j - 1] + schritt, zeilen[i - 1][j] - 2, zeilen[i][j - 1] - 2)
for zeile in zeilen:
    print(zeile)
print("Wert:", zeilen[len(x)][len(y)])
# Ändern Sie y auf "GAT". Wie hoch ist der Wert jetzt?

Ein häufiger Fehler

Warnung

Viele füllen die erste Zeile und die erste Spalte mit Nullen. Dort stehen aber Lücken: Wer drei Basen gegen nichts ausrichtet, braucht drei Lücken und bekommt -6. Die Ränder sind also 0, -2, -4, -6 und so weiter.

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