MERIAN-SCHULE FREIBURG Bioinformatik
PerlPractical extraction and report languageInhalt1. Einfhrung
........................................................ Seite 2 2.
Grundlagen........................................................
Seite 3 3.
Kontrollstrukturen..............................................
Seite 5 4.
Variablen............................................................
Seite 7 5.
Filehandles.........................................................
Seite 10 6. Pattern Matching und Regulre Ausdrcke....... Seite
11
ANHANG
A:
Software............................................................
Seite 15 B: Variablen - Skalara, Arrays, Hashes ................
Seite 16 C: Ntzliche Perl-Skripts
...................................... Seite 17 D:
bungsaufgaben............................................... Seite
19 E:
Links.................................................................
Seite 25
Dr. Harald Bobeth
19.10.2011
Seite 1/25
MERIAN-SCHULE FREIBURG Bioinformatik
1. Perl Einfhrung1.1 Drei Beispiele 1. Umwandlung einer
Aminosurensequenz im Einbuchstabencode in eine Sequenz im
Dreibuchstabencode Skript: Eincode_zu_Dreicode.pl mit der Datei :
Chymotrypsin_B_1Code.txt 2. Extraktion von Teilinformationen aus
einer Datei im FASTA-Format Skript: Lesen_Mult_FASTA_hash.pl mit
der Datei: Presenilin_hum_prot_mult.fasta 3. Ermittlung einer
Konsensus-Sequenz Skript: Consensussequenz.pl mit derDatei:
aligned.fas 1.2 Strken der Programmiersprache Perl Auslesen von
Textdateien Manipulation von Textdateien
1.3 Geschichte Perl wurde 1987 von Larry Wall entwickelt. Es
geht die Geschichte, dass Wall vernetzte Rechner an der Ost- und
Westkste der USA betreuen musste. Dazu gehrte auch die Analyse von
Berichten und das Erstellen von bersichtslisten. Mit den bis dahin
herkmmlichen Programmiermitteln htte er dies nur mit groem
zeitlichen Aufwand verwirklichen knnen. Deshalb habe er eine neue
Programmiersprache erfunden: Pearl: Practical extraction and report
language Spter wurde das a im Namen weggelassen: Perl Sptter
bersetzen Perl mit: Pathologically eclectic rubbish lister Zur
Software siehe Anhang A Inhalt
Dr. Harald Bobeth
19.10.2011
Seite 2/25
MERIAN-SCHULE FREIBURG Bioinformatik
2. Perl Grundlagen2.1 Eingabe per Tastatur, Ausgabe auf dem
Bildschirm ffnen Sie mit dem Perl-Editor das Skript
Eingabe_Ausgabe.pl. Starten Sie das Programm (Run in Command Prompt
oder Shift + F9). Auf eine Registrierung wird verzichtet. Schlieen
Sie das MS-DOS-Fenster. Hinweis: Wie ein Programm gestarten wird,
wird im Folgenden nicht mehr extra aufgefhrt. Analysieren Sie das
Skript: In einem Perl-Skript unterscheidet man Anweisungen und
Kommentare. Wie kann PERL zwischen Kommentaren und Anweisungen
unterscheiden? Welche Aufgabe hat $skalart? Welche Auswirkungen hat
die Anweisung chomp? berprfen Sie dies, indem Sie die entsprechende
Zeile als Kommentar-Zeile ausweisen. Stellen Sie weitere
Eigenheiten fest. Programmier-Aufgabe: Schreiben Sie ein eigenes
kurzes Eingabe-Ausgabe-Skript (ohne Kommentare) und speichern Sie
es unter einem selbst gewhlten Namen ab. 2.2 Berechnungen
Analysieren Sie das Skript Berechnungen.pl Was bedeutet das Zeichen
$ vor einem Zeichen bzw. einer Zeichenfolge? Was bewirkt die Angabe
\n? Programmier-Aufgaben: 1. Nach Eingabe einer Zahl soll deren
Quadrat berechnet werden. Hinweis: Verwenden Sie statt der
Berechnung wie y = x * x die Funktionsschreibweise y = x2. Suchen
Sie im Internet, wie dies geht. 2. Nach Eingabe einer Zahl soll
deren Quadratwurzel berechnet werden. 2.3 Einfache Manipulationen
von Texten Analysieren Sie das Skript Text_String_Operationen.pl
selbststndig!
Dr. Harald Bobeth
19.10.2011
Seite 3/25
MERIAN-SCHULE FREIBURG Bioinformatik
Programmier-Aufgaben: 1. Geben Sie in das Perl-Skript eine aus
dem Internet gesuchte DNA-Sequenz ein und lassen Sie deren Lnge
bestimmen. Hinweis: $dna = atgcgt....gtaca; 2. Nach Eingabe eines
Wortes soll dieses unterstrichen auf dem Bildschirm ausgegeben
werden. Hinweis: Die Striche befinden sich eine Zeile tiefer.
Zusammenfassung Fassen Sie die wichtigsten Befehle, Operatoren usw.
in einer WORD-Datei tabellarisch zusammen und ergnzen Sie in
Zukunft Ihre Tabelle. 2.4 Einfache Ersetzungen: Ersetzen.pl Das
nachfolgende Skript ist eine Einfhrung in das groe Kapitel Pattern
Maching (vergl. Kapitel 6) Analysieren Sie das Skript Ersetzen.pl.
Welche neuen Operatoren erkennen Sie? Schreiben Sie sich die neuen
Befehle heraus.. Programmier-Aufgabe Schreiben Sie ein Programm,
das folgende Anforderungen erfllt: 1. Auf Aufforderung geben Sie
eine RNA-Sequenz mit 4 Nukleotiden ein. 2. Auf dem Bildschirm wird
ein entsprechender Ausschnitt aus einem DNADoppelstrang ausgegeben.
Diese Ausgabe soll folgende Form haben (Beispiel): 5-AGCT-3 IIII
3-TCGA-5 Speichern Sie das Programm unter RNA_in_DNA.pl ab. Wenn
der Benutzer fehlerhafte Eingaben macht, ist das Programm nicht
brauchbar. berlegen Sie, welche Fehler der Benutzer machen knnte.
An welchen Stellen msste das Programm ergnzt werden, damit
fehlerhafte Eingaben zurckgewiesen bzw. automatisch verbessert
werden. Benutzen Sie vorlufig die Umgangssprache.
Dr. Harald Bobeth
19.10.2011
Seite 4/25
MERIAN-SCHULE FREIBURG Bioinformatik
2.5 Ablaufsplanung Bei der Lsung grerer Aufgaben ist es
zweckmig, sich den Ablauf vorab genau zu berlegen und dies zu
dokumentieren. Man kann den Ablaufsplan in der Umgangssprache
formulieren. Es gibt aber auch mehrere genormte Programmablaufsplne
Internet: http://de.wikipedia.org/wiki/Programmablaufplan
http://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm Im Ordner
NSD ist ein Programm abgespeichert, mit dem man NSD-Diagramme auf
einfach Weise erstellen kann (siehe: NSD-Editor Kurzanleitung). Das
Diagramm kann in die Skriptsprache C umgewandelt werden und von
dort leicht als PerlSkript verndert werden. Inhalt
Dr. Harald Bobeth
19.10.2011
Seite 5/25
MERIAN-SCHULE FREIBURG Bioinformatik
3. Perl Kontrollstrukturen3.1 Bedingungen, Alternativen
Analysieren Sie das Skript Bedingung.pl. Notieren Sie sich die
Besonderheiten der Syntax.. (der Vergleichsoperator eq entspricht
ist gleich. ) Stellen Sie die Skriptzeilen als Programmentwurf dar.
berlegen Sie sich 3 Beispiele, wo dieser Skriptabschnitt eingesetzt
werden knnte. Im Skript if-if_statt_if-elsif.pl knnen Sie sehen,
wie die if-Anweisung falsch eingesetzt ist. Programmier-Aufgabe:
Verbessern Sie das Skript RNA_in_DNA.pl, so dass fehlerhafte
Eingaben zurckgewiesen bzw. automatisch verbessert werden. Benennen
Sie das verbesserte Skript RNA_in_DNA_2.pl. Skizzieren Sie einen
Programmentwurf. Welche Eingaben knnen automatisch verbessert
werden? Welche Eingaben mssen zurckgewiesen werden? 3.2
While-Schleifen, Do_until-Schleifen Analysieren Sie die Skripts
Schleifen1.pl und Schleifen2.pl. Welche Schleife ist Kopf, welche
fugesteuert? Ersetzen Sie $text = ja mit $text = nein und berprfen
Sie das unterschiedliche Verhalten der beiden Schleifen. berlegen
Sie sich Einsatzmglichkeiten und schreiben Sie ein neues Skript.
Skizzieren Sie dazu einen Programmentwurf. 3.3 For-Schleife Wenn
man wei, wie oft eine Schleife durchlaufen werden muss, whlt man
gern die sog. For-Schleife. Beispiel: Bilde die Fakultt einer
vorgegebenen Zahl n. n! = 1*2*3*.........n. Die Syntax der
For-Schleife lautet:
Dr. Harald Bobeth
19.10.2011
Seite 6/25
MERIAN-SCHULE FREIBURG Bioinformatik
for($i = 1;$i = 5, soll er eine entsprechende Fehlermeldung
ausgeben und eine erneute Zahleneingabe abwarten. Bei korrekter
Zahleneingabe soll am Schluss das Wort ENDE auf dem Bildschirm
erscheinen. Der Anwender soll eine positive Zahl eingeben. Der
Computer soll dann die Quadratwurzel dieser Zahl auf dem Bildschirm
ausgeben. Die entsprechende Funktion lautet: $x = sqrt($y). Bei
Eingabe einer negativen Zahl soll der Computer eine entsprechende
Fehlermeldung ausgeben und eine erneute Zahleneingabe abwarten. Bei
korrekter Zahleneingabe soll das Wort ENDE auf dem Bildschirm
erscheinen. Es soll ein Passwort eingegeben werden, das mindesten 8
Zeichen lang ist. Ist diese Bedingung nicht erfllt, soll der
Computer das Passwort mit einer entsprechenden Fehlermeldung
zurckweisen und auf eine erneute Passworteingabe warten. Hat das
Passwort die notwendige Lnge, soll auf dem Bildschirm das Wort
LOGIN erscheinen. Nach 10 falschen Eingaben soll abgebrochen
werden. Der Anwender soll ein neues Passwort beliebiger Lnge
generieren. Nach Eingabe des Passwortes soll er es zur berprfung
erneut eingeben. Stimmen beide Eingaben berein, soll auf dem
Bildschirm stehen: Neues Passwort angenommen. Stimmen die Eingaben
nicht berein, soll der ganze Vorgang wiederholt werden. Nach 10
falschen Eingaben soll abgebrochen werden. Primzahlen Geben Sie
eine natrliche Zahl als obere Grenze an und lassen Sie den Computer
alle Primzahlen bis zu dieser Grenze berechnen.
if
m
s_5 m
s_4 l
m
s_6 s
Gegeben sind die beiden alignierten DNA-Sequenzen.$S1=
TTTGTTCCCTAAATAGGGACTTGTATGAACGGCCACAAGAGGGCTTTACTGTCTCTTACTTCCAATCCGTGAAATTGACCTTCCCGTG
AAGAGGCGGGAATATAATAATAAGACGAGAAGACCCTATGGAGCTTTAATTAACCGACCCAAAGAGACCATATGAACCAACCGACAGGAACAACAAACCTCTATATGGGCCGGCAATTTAGGTTGGGGTGACCTCGGAGAATAAAACAACCTCCGAGTGATTTAAA
TCTAGACTAACCAGTCGAAAGTACTACATCACTTATTGATCCAAAAACCTTGATCAACGGAACAAGTTACCCTAGGGATAACAGCGCAA
TCCTATTTCAGAGTCCATATCGACAATGAGG $S2 =
TTTGTTCCCTAAATAGGGACTTGTATGAATGGCCACACGAGGGCTTTACTGTCTCTTACTTCCAATCCGTGAAATTGACCTTCCCGTG
AAGAGGCGGGAATACAACAATAAGACGAGAAGACCCTATGGAGCTTTAATTAACCGACCCAAAGAGACCCATCAATTTCAACCGACAGG
AACAACAAACCTCTGTATGGGCCGACAATTTAGGTTGGGGTGACCTCGGAGAACAGAACAACCTCCGAGTGATTTAAATCAAGACTAAC
CAGTCGAAAGTATTACATCACTTATTGATCCAAAAGTTTGATCAACGGAACAAGTTACCCTAGGGATAACAGCGCAATCCTATTTCAGA
GTCCATATCGACAAT-AGG
Berechnen Sie den Score des Alignments. Match = 1, Mismatsch =
0, Gap = -4. s_7 s Die werte fr Match, Mismatch und Gap sollen im
Skript eingegeben sein. Gegeben ist eine Nukleotidsequenz. $S =
TAAATCTAGCCCTACCAACCCTACACTCAATTCTCATATTATATTAAATCAA
AACATTCACTTACCAAAAAGTATAGGAGATAGAAATTTCACTAAGGCGCAA19.10.2011 Seite
22/25
Dr. Harald Bobeth
MERIAN-SCHULE FREIBURG Bioinformatik
TAGAGATAGTACCGCAAGGGAATGATGAAAGATAGTTTAATAGTAAAAAAT
AGCAAGGATTAACCCCTTTACCTTTTGCATAATGAATTAACTAGAAAAATCT
GACAAAGAGAACTATAGCCAGAAACCCCGAAATCAGACGAGCTATCTGATA
GTAATCCCCAGGATCAATTCATCTATGTGGCAAAATAGTGAAGAAACTTACA
GATAGAGGTGAAATACCAATCGAGCCTGATGATAGCTGGTTGTCCAGAAAT
AGAATTTTAGTTCTACCTAAAACTTACCACAAAAACAAAATAATTCCAATGT
AAGTTTTAGAGATATTCAAAAGGGGTACAGCTCTTTTGACCAAGGATACAAC
CTTGATTAGCGAGTAAATTCACCATTAATTTCATAGTTGGCTTAGAAGCAGC
CATCAATTAAGAAAGCGTTAAAGCTCAACAACCAACCAAACTAAAAAGATT
CCAAAATTAATTAATGATCTCCTAAACATAATACTGGACTAATCTATATAAA
TAGAAGAAATAATGTTAGTATAAGTAATAAGAAGTATTTCTCCCTGCATAAG
CTTATATCAGGTCGGATGCCCGCTGATAGTTAACAACCGAATAATTAAATAC
AAAAATAGAACCTTTATTATACCAATTGTTAACCCAACACAGGCATGCTTAA
GGGAAAGATTAAAAGAAGGAAAAGGAACTCGGCAAA. Berechnen Sie die prozentuale
Hufigkeit der Nukleotide und stellen Sie dies bersichtlich dar. s_8
m Fehlerhaftes Skript analysieren und verbessern Das Skript
fehler.pl soll zhlen, wie oft das Wort ein in jeder Zeile einer
Textdatei vorkommt. Es findet zwar die gesuchten Wrter, zhlt aber
falsch. Verbessern Sie das Programm. s_9 m Zufallszahlen Lassen Sie
den Computer mindestens 1000 mal wrfeln und prfen Sie, ob die
gewrfelten Zahlen gleich verteilt sind. s_10 s Die Variablen
$sequenz beinhalte eine Nukleotidsequenz im FASTA-Format. Diese
Sequenz soll auf dem Bildschirm in 10er-Blcken dargestellt werden.
Jede Zeile soll 3 bzw. 4 Blcke enthalten. Dies soll ber eine
Abfrage entschieden werden. Zu Beginn jeder Zeile sollen ber
Ziffern die Positionen von..bis notiert sein
Variablen v_1 m In einner Liste (z.B. einer Zeugnisliste sollen
die Ziffern durch das entsprechende Zahlwort ersetzt werden.
Beispiel: Deutsch: Chemie: Sport: 2 1 3 in Deutsch: Chemie: Sport:
gut sehr gut befriedigend
Dr. Harald Bobeth
19.10.2011
Seite 23/25
MERIAN-SCHULE FREIBURG Bioinformatik
v_2 m
Zufallszahlen Sie spielen gegen den Computer das Spiel Schere,
Stein, Papier. Schreiben Sie ein entsprechendes Skript.
v_3 m
Ein Benutzer gibt seinen Geburtstag in folgendem Format ein:
21.10.67. Unter der Voraussetzung, dass der Benutzer im 20.
Jahrhundert geboren wurde soll das Datum in folgender Form
ausgegeben werden: 31. Oktober 1967.
Datei-Handling d_1 m In der Datei text1.txt ist ein kurzes
Gedicht abgespeichert. Der Text soll zeilenweise auf dem Bildschirm
ausgegeben werden. Anschlieend sollen die einzelnen Zeilen des
Gedichtes durchnummeriert werden, alles auf dem Bildschirm
ausgegeben und unter einem neuen Dateinamen abgespeichert werden.
Die Datei test1.fasta ist im FASTA-Format abgespeichert. ffnen Sie
die Datei, entfernen Sie die erste Zeile und speichern Sie die
reine Sequenz als test1a.fata ab. Hinweis: arrays.pl
d_2 m
Pattern Matching p_1 m im Text, den Sie gerade lesen, beginnt
jeder Satz mit einem kleinen Buchstaben. verbessern sie den Text.
das Perl-Programm soll fr jeden Text geeignet sein. den
vorliegenden Text knnen Sie ber Copy Paste einer Variablen
zuordnen. ursprnglicher Text und verbesserter Text sollen auf dem
Bildschirm zu lesen sein.
p_2 Inhalt
Dr. Harald Bobeth
19.10.2011
Seite 24/25
MERIAN-SCHULE FREIBURG Bioinformatik
E: Internetadressen zu PerlZu Perl:
http://perl-seiten.bei.t-online.de/perl/perl_main.html
http://www.mathe2.uni-bayreuth.de/perl/inhalt.htm
http://www.ssw.uni-linz.ac.at/Teaching/Lectures/Sem/2000/Katzmayr/index.html
http://www.uni-kiel.de/rz/lehr/doku/perlkurs/
http://www.clug.de/vortraege/perl/perl-14-nov-1997.html
http://www.tekromancer.com/
http://www0.id.ethz.ch/Publikationen/Dokumentation/perl/index.html
http://www.cip.physik.uni-muenchen.de/~tf/perl/
http://www.uni-mainz.de/~pommeren/WWW-Kurs/Teil_III.html
http://de.wikipedia.org/wiki/Perl
http://userpage.fu-berlin.de/~corff/perl/perlkurs-1.html
http://www.inf.hs-zigr.de/~maetti01/?page=Studium/Perl
http://www.shadoware.de/computer/perl/
http://www.page-workshop.de/CGI-Perl/Tutorial/Start.htm
http://www.perlboard.de/perlguide/Inhalt.html
http://www.bergt.de/workshop/wolfdesign/html/cgi.htm
Zu Programmstrukturen
http://www.fh-meschede.de/public/willms/infoSkript/02/02_kontroll.pdf
http://hukla.prakinf.tu-ilmenau.de/Lehre/EP/Ws2000-01/Vor/vor.html
Inhalt
Dr. Harald Bobeth
19.10.2011
Seite 25/25