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

FASTA-Dateien einlesen

Nach dieser Lektion: Ich kann die Sequenzen einer FASTA-Datei mit Python einlesen.

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

Wie sieht eine FASTA-Datei aus?

Eine FASTA-Datei ist eine einfache Textdatei, in der eine oder viele Sequenzen mit Namen stehen. Fast jedes Werkzeug der Bioinformatik liest und schreibt dieses Format.

Wer eine FASTA-Datei mit Python einlesen kann, kann Sequenzen auswerten, ohne ein Programm von anderen zu brauchen. Genau das üben Sie hier.

Am Ende dieser Lektion

Notiz

Ich kann die Sequenzen einer FASTA-Datei mit Python einlesen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
FASTAein Textformat für Sequenzen mit Namen
Kopfzeiledie Zeile mit dem Namen, sie beginnt mit >>probe1
Datensatzeine Kopfzeile mit allen Sequenzzeilen darunter
Bezeichnerdas erste Wort der Kopfzeile, der Name des Datensatzes
Zeilenumbruchdas Zeichen, das eine Zeile beendet

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

Eine Kopfzeile beginnt mit einem Größerzeichen

In einer FASTA-Datei beginnt jeder Datensatz mit einer Kopfzeile. Sie startet mit dem Zeichen >, danach folgt der Name und oft eine kurze Beschreibung.

Darunter stehen die Basen. Lange Sequenzen sind auf mehrere Zeilen verteilt, damit keine Zeile zu breit wird. Die Zeilen gehören trotzdem zu einer einzigen Sequenz.

Beispiel: eine kleine FASTA-Datei Zeile für Zeile

ZeileInhaltWas sie ist
1>s1 erste ProbeKopfzeile, Name s1
2ACGTerster Teil von s1
3TTzweiter Teil von s1
4>s2 zweite ProbeKopfzeile, Name s2
5GGCganze Sequenz von s2

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

Datensätze zählen

Befehl
docker exec jupyter python3 -c "t='>s1 Probe\nACGT\nTT\n>s2 Probe\nGGC\n'; print(t.count('>'))"

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

Alle Basen zusammen zählen

Befehl
docker exec jupyter python3 -c "t='>s1 Probe\nACGT\nTT\n>s2 Probe\nGGC\n'; print(sum(len(z) for z in t.splitlines() if z[0] != '>'))"

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

Beim Einlesen entscheidet das erste Zeichen

Ein Programm liest die Datei Zeile für Zeile. Beginnt eine Zeile mit >, startet ein neuer Datensatz, und der Bezeichner ist das erste Wort danach.

Jede andere Zeile hängt das Programm an die Sequenz des letzten Datensatzes an. Alle Datensätze kommen in ein Dictionary: der Bezeichner als Schlüssel, die ganze Sequenz als Wert.

Zwei Datensätze in ein Dictionary lesen

Code: python
# Eine erfundene Datei als Text. Jede Zeile endet mit einem Zeilenumbruch.
text = ">s1 erste Probe\nACGT\nTT\n>s2 zweite Probe\nGGC\n"
daten = {}
name = ""
for zeile in text.splitlines():
    if zeile.startswith(">"):
        name = zeile[1:].split()[0]
        daten[name] = ""
    else:
        daten[name] = daten[name] + zeile
print(daten)
# Hängen Sie eine dritte Probe ">s3" mit der Zeile "AAAA" an den Text an.

Ein häufiger Fehler

Warnung

Viele nehmen nur die erste Zeile unter der Kopfzeile und verlieren den Rest der Sequenz. Dann ist die Sequenz zu kurz, ohne dass ein Fehler erscheint. Hängen Sie jede Zeile unter der Kopfzeile an, bis die nächste Kopfzeile kommt.

Leerzeichen und Leerzeilen gehören nicht zur Sequenz

Echte Dateien enthalten oft Leerzeilen und Leerzeichen am Zeilenende. Die Methode .strip() entfernt sie am Rand einer Zeile. Eine leere Zeile überspringen Sie.

Mit .upper() machen Sie aus kleinen Buchstaben große. So ist "acgt" dieselbe Sequenz wie "ACGT".

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