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

Motive und k-Mere in Sequenzen finden

Nach dieser Lektion: Ich kann ein Muster in einer Sequenz suchen und k-Mere zählen.

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

Wie findet man ein Muster in einer Sequenz?

Ein Motiv ist ein kurzes Muster, das in einer Sequenz vorkommt, zum Beispiel ACA. Um Motive zu finden, schneidet man die Sequenz in alle Stücke einer festen Länge und zählt sie. Diese Stücke heißen k-Mere.

Mit k-Meren lässt sich zeigen, welches Stück besonders oft vorkommt. Das ist die Grundlage vieler Suchverfahren.

Am Ende dieser Lektion

Notiz

Ich kann ein Muster in einer Sequenz suchen und k-Mere zählen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Motivein kurzes Muster, das gesucht wirdACA
k-Merein Stück der Länge k aus der SequenzACG
Fensterdas Stück, das Schritt für Schritt weiterrückt
Überlappungzwei Vorkommen, die sich Basen teilen
Häufigkeitwie oft ein k-Mer vorkommt

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

Ein Fenster schneidet alle k-Mere aus

Ein k-Mer ist ein Stück der Länge k. Um alle k-Mere einer Sequenz zu bekommen, schieben Sie ein Fenster der Länge k Base für Base weiter und schneiden jedes Stück aus.

Eine Sequenz der Länge n hat n minus k plus 1 Fenster. Bei ACGTACGT und k gleich 3 sind das 8 minus 3 plus 1, also 6.

Beispiel: k-Mere von ACGTACGT, k gleich 3

StartStückSchon gesehen?
0ACGNein
1CGTNein
2GTANein
3TACNein
4ACGJa, zum zweiten Mal
5CGTJa, zum zweiten Mal

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

Alle 3-Mere auflisten

Befehl
docker exec jupyter python3 -c "s='ACGTACGT'; k=3; print([s[i:i+k] for i in range(len(s)-k+1)])"

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 häufigsten 3-Mere zählen

Befehl
docker exec jupyter python3 -c "from collections import Counter; s='ACGTACGT'; print(Counter(s[i:i+3] for i in range(len(s)-2)).most_common(2))"

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 Motiv kann sich selbst überlappen

Um ein Motiv zu suchen, vergleichen Sie an jeder Stelle das Fenster mit dem Muster. Jede Übereinstimmung merken Sie sich mit ihrer Startstelle.

Dabei kann sich ein Motiv überlappen: In ACACACA beginnt ACA an den Stellen 0, 2 und 4. Die Vorkommen teilen sich Basen. Die Methode .count zählt solche Fälle nicht mit.

Alle Stellen eines Motivs finden

Code: python
# Alle Stellen suchen, auch wenn sich Vorkommen überlappen.
sequenz = "ACACACA"
muster = "ACA"
stellen = []
for i in range(len(sequenz) - len(muster) + 1):
    if sequenz[i:i + len(muster)] == muster:
        stellen.append(i)
print(stellen)
print("count findet:", sequenz.count(muster))
# Suchen Sie das Muster "CAC". Was liefern beide Zeilen?

Was count bei Überlappung zählt

Befehl
docker exec jupyter python3 -c "print('ACACACA'.count('ACA'))"

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 häufiger Fehler

Warnung

Viele nehmen count für die Zahl aller Vorkommen. Die Methode zählt nur Vorkommen, die sich nicht überlappen, und liefert in ACACACA die 2 statt der 3. Wenn Überlappungen zählen, schieben Sie das Fenster selbst Base für Base.

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