Bioinformatik

Python für Biologen - In 4 Tagen
English Version
Nach einer Idee und mit Beispielen von Dr. Martin Jones -
pythonforbiologists.com
Einstiegsbeispiel,
python philipp09.py
zum Beispiel Zeile 1 und Spalte 12
Die Daten wurden von einem Plattenleser (Bild Bild) generiert.
Nächste Kurse
Deutsch:
21.2. - 25.2.2022
Online 9:00 - 16:00
19.9. - 23.9.2022
9:00 - 16:00
Raum 152 (früher 168), Morgenstelle 3
Englisch:
-.-.-
Online 9:00 - 16:00
max. 12 Teilnehmer
Alma Uni-Tuebingen
3 CP, aber keine Benotung!
Die gesamte Vorlesungsreihe steht auch als jupyter Notebook zur Verfügung.
jupyter Notebook.zip
Tag 1 - Einführung
Müssen Biologen programmieren lernen?
Programmieren gehört nicht zur Grundausbildung der Biologen.
Aber in manchen Bereichen ist Programmieren sehr hilfreich und sogar unabdingbar.
- Das Verständnis für Bioinformatik steigt.
Zu der wissenschaftlichen Arbeit in der Biologie gehört die Ermittlung und Auswertung von Daten.
Spezialisierte Programme helfen dabei (Übersicht Programme Molekularbiologie). Oft wird ein "Bioinformatiker" um Rat gefragt. Wenn die Grundlagen für Programmieren erlernt wurden, steigt das Verständnis, um die Probleme zu diskutieren.
Die Kommunikation mit den Informatikern verbessert sich.
Viele Programme sind ähnlich strukturiert,
kennt man sich in einer Programmiersprache aus, kann leicht eine andere erlernt werden.
- Kleine Programme können selbst geschrieben werden.
Mit kostenlosen Programmen, wie Python, R und Perl, können einfache Lösungen zu schwierigen Problemen gefunden werden.
- Programmieren ist ein kreativer Prozess und macht Spass.
Statt Software am Computer zu konsumieren, kann nach eigenen Bedürfnissen ein Programm angelegt werden.
Das ist ein kreativer Prozess. Die Arbeit macht Spaß.
Einsteigerprogrammiersprachen für Biologen
Es gibt eine Vielzahl von Programmiersprachen
Liste der Programmiersprachen
Welche Programmiersprachen kommen für Biologen in Frage?
- Excel Funktionen Kurs Excel
Excels Erfolg und Beliebtheit besteht darin, dass man keine Programmiersprache braucht.
Das leisten vor allem Excel Funktionen. Darüber hinaus können komplexere Probleme mit Excel Makros und der Programmiersprache VBA Kurs Excel bewältigt werden.
- R für Statistik, Datenanalyse, Microarrays, Bildauswertung Mikroskopie - Imaging
- Skriptsprachen Python und Perl
Dieser Kurs und Kurse ZDV Dr. Eberle Zentrum
- PHP, Webprogrammierung
Kurse ZDV
- MatLab
Webseite
Datenauswertung, Plots
Kostenlos für Tübinger Studenten (Campus Uni Tübingen Software)
Kurse WS 21 siehe ALMA 1 2
- Java, Einsatz auf verschiedenen Plattformen (Windows, MacOSX, Linux) möglich.
Entwicklung von einer Firma (Oracle) abhängig.
Kurse ZDV
- Die anderen höheren Programmiersprachen wie C++ C# usw. werden von Biologen selten gelernt und eingesetzt.
Kurse ZDV
Warum Python und nicht Perl und nicht R?
Die Aminosäuresequenzen der Proteine und die Basensequenzen der DNA sind ausgezeichnete Daten, um Abläufe zu programmieren.
Die Skriptsprache Perl wird und wurde dafür häufig eingesetzt
(Humangenomprojekt Lincoln D. Stein: How Perl Saved the Human Genome Project). Perl war sehr erfolgreich und weit verbreitet. Warum jetzt eine andere Programmiersprache wie Python, die ähnlich ist?
Perl hat eigentlich eine klare Struktur, lässt aber zu, dass unverständlicher Code produziert wird.
Perl wird daher mangelnde Lesbarkeit vorgeworfen (Wikipedia).
Perl lässt viele Freiheiten zu und ist daher weniger konsistent.
Viel hassen dafür Perl (Perl Most Disliked Programming Language 2017), andere liebe sie wegen den Freiheiten (Perl poetry).
Python dagegen bevorzugt eindeutige Lösungen.
"There should be one-- and preferably only one --obvious way to do it."
Python bietet eine bessere Lesbarkeit, daher hat sich vor allem für Anfänger Python etabliert (Wikipedia).
"Python ist die verbreitetste Einsteiger-Programmiersprache an US-Top-Universitäten", Heise Online 8.7.14
Python ist inzwischen an 1. Stelle im Programmiersprachen Ranking 2021 - https://www.tiobe.com/tiobe-index/ Heise online 13.10.21
Python ist die "most wanted" Programmiersprache - Heise online 9.4.19
Python wird "geliebt".
Eine ernste Konkurrenz zu Python ist R.
R ist wie Python eine Skriptsprache und leicht zu lernen.
In der Meinung vieler, ist aber Python umfassender anzuwenden.
R hat den Schwerpunkt in der Statistik und Datenauswertung.
Hier stehen für Python die leistungsfähige Pakete NumPy und pandas zur Verfügung.

Python weist eine klare Struktur auf,
Einrückungen machen Python übersichtlich -
Foto Python Software Foundation -
GNU General Public License. Wikimedia Commons
Kennzeichen von Python
- Einfach und übersichtlich
Python ist einfach und übersichtlich durch die Verwendung von möglichst wenigen Schlüsselwörtern.
Python besticht mit einer übersichtlicher Syntax.
Lesbarkeit steht in den Bemühungen für einen guten Code an erster Stelle. Es gibt die Erkenntnis, das ein Code nur einmal geschrieben, aber sehr oft gelesen wird.
Wie wird die Übersichtlichkeit erreicht?
- Übersichtlichkeit durch Einrückungen (Indentation)
- Ein Grundsatz von Python ist, dass es nur einen offensichtlichen Weg geben sollten, um ein Problem zu lösen.
Die Entwickler von Python achten darauf, dass es nur wenige Elemente für den Code gibt.
(PEP20 Zen of Python "There should be one-- and preferably only one --obvious way to do it."
"import this" gibt "Zen of Python" in der Eingabeaufforderung von Python aus - Geschichte ).

In der Python Eingabeaufforderung "import this" eingeben:
Zen of Python wird ausgegeben.
In dem Beitrag von Al Sweigart 2018 wird Zen of Python erklärt und kommentiert.
- Python wird als Skriptsprache eingesetzt.
Die Textdatei wird als Code direkt zur Ausführung gebracht (Intepreter).
- Variablen müssen nicht deklariert werden.
- Viele Schreibweisen sind zwingend vorgeschrieben, die zu einer Übersichtlichkeit beitragen.
Darüber hinaus gibt es stilistische Konventionen, Programmierer sollen sich daran halten, damit der Code leicht zu lesen und verständlich bleibt.
Diese sind in der Python Enhancement Proposal 8 - PEP8 Style Guide for Python Code aufgelistet.
Alle PEPs sind in www.python.org/dev/peps/ zudammengefasst.
Das Programm pycodestyle, überprüft den Code im Hinblick auf PEP8.
Mit autopep8 können die Änderungen sogar automatisch durchgeführt werden.
autopep8 --in-place pythondatei
Immer wiederkehrende Codeabschnitte werden in Funktionen festgehalten.
Dadurch werden Arbeitsabläufe einfacher.
- Objektorientierte Programmierung
Python ist wie die "höheren" Programmiersprachen (C, C++) eine komplexe Programmiersprache.
In diesem Kurs wird objektorientierte Programmierung an einem zusätzlichen Termin behandelt.
- Offenes, gemeinschaftsbasiertes Entwicklungsmodell (Python Software Foundation)
Auf der ganzen Erde arbeiten Entwickler kostenlos an der Fortführung von Python.
Diese Arbeit ist gut organisiert. Zuständig ist die gemeinnützige (non-profit corporation) Python Software Foundation.
Dadurch bleibt Python immer auf dem neuesten Stand.
Sicherheitslücken und Fehler werden schnell beseitigt.
- Große Standardbibliothek, plattformunabhängig
Die erstellten Programme laufen in Linux, MacOS und Windows gleichermaßen.
- Einbinden weiterer Module möglich.
Für Python gibt es spezielle Erweiterungen (packages). Diese werden zu sogenannten Modulen zusammengefasst.
Nur benötigte Module werden in das Programm eingebunden. Es gibt über 250 Standardmodule (Link)
Über Anaconda können über 7.500 Module für Python installiert werden.
- Entwicklungsumgebungen vorhanden
Entwicklungsumgebungen (IDE) für Python erleichtern das Programmieren.
Beim Eingeben des Codes werden Vorschläge gemacht.
Der Code kann überprüft werden.
- Für Python gibt es auf der ganzen Welt biologische Anwendungen, Dokumentationen und Tutorials
Spezielle Module und Bibliotheken, die in der Biologie eingesetzt werden, werden zusammengefasst.
Die bekanntesten Pakete für Biologen sind Biopython , PyCogen und PythonXY (nur Python 2, 2015 leider eingeschlafen).
Immer mehr Programme können mit Python programmiert werden.
Beispiele aus dem Grafikbereich sind Plugins für GIMP und ImageJ.
Die freie 3D-Grafiksoftware Blender (Wikipedia) kann mit Python programmiert werden.
In LibreOffice und OpenOffice können Makros mit Python programmiert werden. Das macht LibreOffice allerdings auch unsicher: Heise online 5.2.19 "Sicherheitsupdates: Gefährliche Makros für LibreOffice"
Python wird von Internetfirmen wie Google und YouTube eingesetzt (Quotes)
Es ist leicht im Internet entsprechende Dokumentationen und Tutorials zu finden.
Entwickelt wurde Python Anfang der 1990er Jahre von Guido van Rossum
(Wikipedia), Centrum Wiskunde & Informatica in Amsterdam.
Der Name geht auf die englische Komikergruppe Monty Python zurück.
Hat also eigentlich mit einer Schlange nichts zu tun - oder doch ? " John Cleese suggesting 'Python' as something slimy and slithery".

Monty Python - Silly Walk -
Wegmann, Street art silly walk, Verändert von Steinmetz, CC BY-SA 3.0
Wie wird Python ausgeführt?
Python muss nur auf Windows Rechnern installiert werden.
Dagegen ist Python bei den meisten Linux Distributionen (Debian, OpenSuse, Ubuntu,...) bereits installiert.
Auch auf Apple Mac Rechnern ist Python vorinstalliert. Allerdings seit MacOS 12.3 (2/2022) nicht mehr. Allerdings werden auch auf Linux und Apple Rechnern sehr oft Python Distributionen installiert (Anaconda)
Download und Installation von Python
Python kann von folgender Seite heruntergeladen werden.
www.python.org/
Es gibt 2 Versionen Python 2 und 3 (siehe unten). Python 2 wird ab 2020 nicht mehr unterstützt, daher sollte Python 3 herunterladen werden (Python2 or Python3).
Im Kurs wird ein "Python Paket" Anaconda eingesetzt, das zusammen mit vielen auch für Biologen brauchbaren Modulen installiert wird.
Die kostenlose Version von Anaconda (Download) ist auf den Kurscomputern installiert.
Das Anaconda Python-Paket ist zum Beispiel mit Modulen ausgestattet um Diagramme zu erstellen und aufwändige Datenanalysen zu erstellen (NumPy, pandas).
Außerdem wird die Entwicklungsumgebung Spyder installiert.
Mehrere verschiedene Python Pakete (Anaconda, Python(x,y) etc.) zu installieren ist keine gute Strategie.
Sie kämpfen dann um die Vorherschaft auf dem Rechner und am Ende geht kein Python mehr.
Möchte man trotzdem ein zusätzliches Python einsetzen, bietet sich auf Windowsrechnern das "portable" WinPython (WinPython) an.
WinPython bringt auch viele wichtige Module und die Entwicklungsumgebung Spyder mit
und braucht nicht installiert zu werden.
Es kann in einen beliebigen Ordner oder USB-Stick laufen, daher wird es "portable" bezeichnet.
Mehrere Version können so auf dem Rechner abgelegt werden.
WinPython kann darüber hinaus auch auf dem Rechner registriert werden, so dass die Systemvariablen von Windows auf das WinPython weisen.
Das früher in der Biologie viel benutzte freie Python(x,y) (Download) besteht nur für Python 2.7 (s.u.). Das Projekt ist leider 2015 eingeschlafen.
Ist Python installiert kann es sehr unterschiedlich ausgeführt werden. Es werden verschiedene Ansätze vorgestellt.
Python Konsole
Die einfachste Möglichkeit ist Python in einer Konsole ("Eingabeaufforderung" unter Windows) auszuführen.
Dazu wird im Terminal (Linux oder MacOSX) oder in der Eingabeaufforderung (Windows) der Text python eingeben.
Konsole Beispiel in Windows
- Windows-Taste + r
- "cmd" eintippen
- "python"

Python in der interaktiven Konsole ausführen - hier Windows 7
Es meldet sich Python mit der installierten Version*. Anschließend wird der Prompt >>> gezeigt.
Verlassen wird die Python Konsole wird mit exit().
Die Python Konsole ist nur für kleine Programme geeignet.
* Möglicherweise meldet Windows:
"Der Befehl 'python' ist entweder falsch geschrieben oder konnte nicht gefunden werden."
Bei der Installation wurde python dem Windows Systempfad (path) nicht bekannt gemacht.
Der Systempfad wird in der Systemsteuerung : System : Erweiterte Systemeinstellungen : Erweitert : Umgebungsvariablen : Systemvariabllen : path eingestellt.
Wenn der Systempfad nicht geändert werden soll, gehe auf der Konsole mit cd in den Python Ordner.
Zum Beispiel cd c:\Anaconda3\
oder cd C:\Program Files\Python
Und rufe dann python auf.
Bei Anaconda kann auch die Anaconda Eingabeaufforderung verwendet werden:
Windows Start -> Anaconda3 (64bit) -> Anaconda Prompt
IPython
Dokumentation
IPython ist eine interaktive Konsole mit noch mehr Funktionen.
IPython muss zusätzlich installiert werden. Bei Anaconda ist IPython bereits enthalten.
IPython kann in der Konsole mit dem Befehl "ipython" aufgerufen werden.
In Windows C:\<Pythonordner>\Scripts\ipython
Zur Installation von IPython werden am besten die Pakete Anaconda oder WinPython eingesetzt.
Installation und für weitere Informationen:
ipython.org
In der Entwicklungsumgebung (IDE) Spyder und JupyterLab gibt es für IPhyton ein eigenes Fenster.

Abb: Python in der Konsole ausgeführt
Welche Vorteile hat IPython im Vegleich zur Konsole?
- Ausgabe: Die Ein- und Ausgabe ist lesbarer durch farbige Schrift, z.B. werden Dictionaries bei der Ausgabe sinnvoll umgebrochen.
- Mit Zellen arbeiten
Mit Strg + Eingabe kann in einer 'Zelle' gearbeitet werden. Der Code wird erst mit Umschalten + Eingabe an den Intepreter geschickt. Dadurch kann strukturierter Code umgesetzt werden.
Unter Windows in der Eingabeaufforderung Strg + O verwenden.

- Tab Completion: Mit der Taste Tab kann nach einer bekannten Variablen, Funktionen oder Methoden mit den entsprechenden Anfangsbuchstaben gesucht werden.
Ähnliches funktioniert auch mit Dateipfaden. Wenn irgendwas wie der Anfang eines Dateipfad eingegeben wird (enthält "/" bei Linux und Mac), wird eine Liste der passenden Dateinamen ausgegeben.

- Introspection: Fragezeichen nach einer Variablen oder Funktion gibt Informationen aus.
Es kann auch mit Wildcard * gearbeitet werden.
- %run: Ein Python-Code in einer Datei kann innerhalb von IPython mit %run ausgeführt werden.
Beispiel, mit "%run test.py " wird die Datei test.py ausgeführt.
Ein beliebiger Konsolenbefehl wird mit ein vorangestellten "!" ausgeführt.
Beispiel
!ping 134.2.200.1
- Strg + Shift + V: Code kann mit Strg + Shift + V eingefügt werden.
Siehe auch die magic functions %paste und %cpaste .
- Tastaturkürzel: Es sind viel spezielle Tastenkürzel wirksam.
Am einfachsten wird das mit "%quickref " und "h " für die Hilfe aufgelistet.
- magic commands: Mit vorangestelltem "%" und "%%" können spezielle IPython-Befehle, die magic commands ausgeführt werde. Hier eine Übersicht
Mehr Informationen über einen Befehl kann mit "?" am Ende des Befehls erhalten werden.
%quickref listet alle magic commands auf.
- Suche in der Command History: Mit Strg + P (oder Pfeil nach unten), Strg + N (oder Pfeil nach oben) und Strg + R (reverse Suche) kann in bereits eingegbener Code erneut ausgeführt werden oder darin gesucht werden.
%hist listet die History auf
- Session aufzeichnen: mit %logstart, logstop und %logoff sowie %logstate kann die Eingabe und die Ausgabe aufgezeichnet werden.
Das nächste Eingabeaufforderung stellt ein Bindeglied ("Missing link") IPython zu Jupyter dar.
GUI Console: Es gibt noch eine weitere Variante von IPython.
Dazu in der Windows Eingabeaufforderung jupyter qtconsole eingeben( früher: ipython qtconsole --pylab=inline)
Es wird eine eigene grafische Oberfläche aufgemacht.
Wenn Windows Eingabeaufforderung nicht geht, am besten Anaconda Prompt dafür verwenden.

Abb: QtConsole
Jupyter Notebook - JupyterLab

Das alte IPython Notebook wurde als Jupyter Notebook weiterentwickelt und ist in dem aktuellen Anaconda Paket enthalten.
jupyter.org
Wikipedia
Übersicht. Der Name Jupyter leitet sich von den 3 Programmiersprachen Julia, Python und R ab.
Inzwischen ist noch Haskell und Ruby hinzugekommen, die mit Jupyter behandelt werden können.
Das bedeutet, dass in dem Notebook außer mit Python auch mit Julia, Haskell, Ruby oder R gearbeitet werden kann.
Im Menü Kernel wird das umgestellt, natürlich müssen die entsprechenden Programme installiert werden.
JupyterLab ist das Nachfolgeprodukt und wird im Moment parallel zu Jupyter Notebook entwickelt.
Jupyter Notebook ist eine geniale Methode um mit IPython zu arbeiten.
Das Notebook führt die IPython Console noch weiter. Es wird in einem Browser gearbeitet.
Das bietet die Möglichkeit mit einer übersichtlichen Oberfläche, mit Menüs und Tastenkürzel zu arbeiten.
ipython.org/notebook.html
Menü Help : Keyboard Shortcuts oder Taste H (Standard Tastaturkürzel)
Mac Tastenkürzel

Jupyter Notebook - Text und Code.
Nachdem Jupyter Notebook installiert wurde, wird das Programm in der Windows Konsole / Terminal mit
jupyter notebook
aufgerufen. Wenn Windows einen Fehler meldet, dann sind die Umgebungsvariablen nicht gesetzt. Dann in den Ordner wechseln in dem Python Jupyter installiert ist (zum Beispiel unter Windows mit cd C:\Anaconda3\Scripts).
Alternativ kann Anaconda Prompt verwendet werden. Dann klappt der Aufruf mit jupyter notebook
Jupyter kann unter Windows über Anaconda Programme gestartet werden.
Anaconda legt auch bei der Installation in Windows einen Link in Start - Programme - Anaconda ab.
Windows Start -> Anaconda3 (64bit) -> Jupyter Notebook
Nach dem Start von Jupyter öffnet sich im Standard-Browser (Edge, Firefox, Chrome,...) ein Fenster, in dem die Ordner und Dateien auf dem lokalen PC gezeigt werden.
Ausgangspunkt für Ordner ist der Profilordner des Benutzers.
Ein Arbeitsverzeichnis kann beim Aufruf eingestellt werden, indem vor dem Start des Jupyter Notebooks, mit cd in der Konsole der Ort eingestellt wird.
Das Verzeichnis kann auch beim Aufruf eingestellt werden (Beispiel Desktop für Windows).
jupyter notebook --notebook-dir=c:\Users\Benutzername\Desktop
Ein neues "Notebook" kann angelegt werden. Es ist in "Cells" gegliedert, die einzeln ausgeführt werden können (Umschalten + Enter)
Das "Notebook" wird mit der Dateiendung .ipynb gespeichert
Der Clou ist, dass die Sitzung in der .ipynb-Datei gespeichert wird und später wieder ausgeführt werden kann. Jupyter Notebook ist sehr gut geeignet, um die Beispiele im Kurs nachzuvollziehen.
Es kann außer Code auch normaler Text als Erklärung, Überschriften etc. eingegeben werden.
JupyterLab
JupyterLab soll das Notebook ablösen und wird parallel zu Jupyter Notebook entwickelt.
Für beide Versionen können die gleichen Dateien verwendet werden.
Bei JupyterLab handelt es sich um eine effektivere Benutzeroberfläche.
In der Windows Eingabeaufforderung oder im Anaconda Prompt wird JupyterLab mit jupyter lab aufgerufen.
Zwischen Jupyter Lab und Jupyter Notebook kann leicht gewechselt werden, indemm die Adressleiste
http://localhost:8888/tree für Notebook in http://localhost:8888/lab geändert wird.
Im Browser (Firefox, Chrome,..) öffnet sich ein neuer Tab.

JupyterLab - Text und Code.
Jupyter Notebook online
Mit Google Colaboratory ("Colab") können Python Programme im Browser (Chrome, Firefox, ...) ausgeführt werden
Hier ein Link zu einer kleinen Einführung.
colab.research.google.com/notebooks/intro.ipynb
Vorteil ist es muss Python mit allen benötigten Programmpaketen nicht auf dem lokalen Computer installiert werden. Ist online, daher von allen Computern zugänglich.
Colab ist frei für Studenten und Wissenschaftler.
Microsoft Azure Notebooks von Microsoft bietet die Möglichkeit auf ihren Servern mit dem Jupyter Notebook zu arbeiten
notebooks.azure.com/ Vorteil ist auf einem Rechner muss Python gar nicht installiert sein. Es ist Python (2.7 und 3.x Anaconda 4.x) R und F# installiert.
Alles findet auf dem Server statt.
Nachteil ist, man muss sich mit einem Microsoft Konto anmelden. Nach 60 Tagen Inaktivität wird alles gelöscht.
Für Schulen und Forschung gedacht. Im Moment ist alles frei, evtl. müssen in Zukunft entsprechende Dienste bezahlt werden.
Beispiel, öffentlicher Zugang, zum Testen, die Notebooks clonen.
lucassay01-dietersteinmetz.notebooks.azure.com
(Wenn der Link nicht mehr geht, habe ich das in den letzten 60 Tagen nicht mehr aktualisiert)
Tipp: Linux mit Windows und Anaconda Python
Es gibt das Problem, dass einige Python Module nur für Linux entwickelt wurden. Wie kann ich damit in Windows arbeiten?
Es ist möglich in Windows eine Virtuelle Umgebung für Linux einzurichten. Zum Beispiel VirtualBox von Oracle. Es gibt eine zweite Möglichkeit! In den letzten Jahren hat Microsoft eine Linux Umgebung in Windows eingerichtet und immer besser weiterentwickelt.
In Windows 10 kann das "Windows Subsystem for Linux" WSL aktiviert werden.
Es wird ein Bash Terminal eingerichtet, das zum Beispiel mit einem Ubuntu, Debian oder CentOS App erweitert wird.
Für Python und Jupyter Notebook kann Anaconda installiert werden.
Dies alles wird in einem schönen Blog von Hugo Ferreira beschrieben.
Code in einer Textdatei
Der Code liegt als Datei vor und soll ausgeführt werden. Wie geht das?

Python Code - Code in Microsoft Editor (engl. Notepad) .
Bei umfangreichen Code ist es übersichtlicher den Code in einer Textdatei mit der Endung .py zu speichern.
Der Code wird mit dem Progammaufruf für Python in der Eingabeaufforderung aufgerufen.
Bei Windows mit python.exe und der Name der Programm-Textdatei.
Der Pfad und die Endung .exe kann entfallen, da bei der geglücketen Installation von Python,
durch Eintragung in die Umgebungsvariablen, das alles klar gemacht wurde.
(Ändern der Umgebungsvariablen für Python)
Eingabeaufforderung öffnen, bei Windows mit Windows-Taste + R und "cmd" eingeben.
In unserem Beispiel gibt es in dem aktuellen Ordner eine Pythondatei mit dem Namen beispiel.py
Nun folgendes in der Eingabeaufforderung eingeben:
python beispiel.py
Das Programm beispiel.py wird aufgerufen. Wenn die Eingabeaufforderung nicht im gleichen Ordner steht wie die Datei,
muss der Pfad angegeben werden.
Zum Beispiel unter Windows, wenn sich die Datei in dem Ordner Temp befindet:
python C:\Temp\beispiel.py
Wenn Programme, die Argumente verwerten können, werden Argumente angegeben (s. u.).
Das sähe dann so aus
python C:\Temp\beispiel.py argument1 argument2
Vorrausgesetzt Python ist installiert, kann unter Windows auch auf eine Python-Datei doppelt geklickt werden.
Ein Fenster zur Eingabeaufforderung öffnet sich automatisch.
Das Programm wird ausgeführt.
In der Konsole wird das Ergebnis gezeigt und Schwupps schliesst sich das Fenster wieder automatisch, ohne dass das Ergebnis gesehen wird.
Daher ist es unter Windows besser die Eingabeaufforderung zuerst zu öffnen und wie oben python beispiel.py einzugeben. Ein Trick ist am Ende des Programms die Zeile
input()
einzugegeben, dann wartet das Programm auf eine Eingabe und das Fenster wird nicht automatisch geschlossen.
Es kann das Ergebnis gelesen werden und eine beliebige Eingabe schließt das Fenster wieder.
Auch in der Python-Konsole kann eine Pythondatei aufgerufen werden.
>>> execfile("C:/Temp/beispiel.py")
Hinweis: Unter Windows Schrägstriche nicht Backslash für den Pfad benutzen.
In IPython eine Pythondatei mit dem magic command %run aufrufen (IPython)
Texteditoren
Der Code wird mit einem einfachen Texteditor, wie zum Beispiel Windows Editor, Gnu Emacs, Vi, Nano (Linux) geschrieben.
Auf keinen Fall mit Word!
Besser ist es einen guter Texteditor zu verwenden.
Notepad++ (Windows)
notepad-plus-plus.org/
BBedit (MacOS, kostenlose Basisversion)
www.barebones.com/products/bbedit/
Atom(MacOS, Windows, Linux)
atom.io/
gedit (Linux)
Wikipedia
Hier werden die Befehle farbig gekennzeichnet, was eine große Hilfe bedeutet (Progammsprachauszeichnung).
Schließlich benutzen Python Entwickler spezielle Programme um Python zu entwickeln und auszuführen.
Das wird weiter unten unter Entwicklungsumgebungen erläutert.
Python Online und Webinterface
Inzwischen gibt es im Internet Anbieter, die eine Python Plattform online anbieten.
www.pythonanywhere.com/
Python muss auf dem Rechner nicht mehr installiert werden.
Die Dateien können über alle Rechner erreicht werden.
Schließlich kann auch eine Webanwendung mit Python realisiert werden.
Registrierung notwendig. Der grundlegende Dienst ist kostenlos. Für mehr muss bezahlt werden.
tutorialspoint
Es gibt noch eine Plattform in der viele (wirklich viele!) Programmiersprachen online ausgeführt weren können.
www.tutorialspoint.com/
Für Python 3
www.tutorialspoint.com/execute_python3_online.php
Python muss auf dem Rechner nicht installiert sein.
Python2 und Python3 sind möglich.
Um kleine Codes zu testen ganz brauchbar
Auch eine einfache IDE ist vorhanden
www.tutorialspoint.com/online_python_ide.php
Was geschieht wenn ich ein Python Programm starte?
Wie sind die genauen Abläufe, wenn in der Eingabeaufforderung (Konsole, Terminal) das Python Skript mit python beispiel.py gestartet wird?
Das Python Programm liegt als lesbarer Quellcode ("Source code") vor.
Dateiendung ist py. Die Dateiendung ist allerdings keine Voraussetzung um das Programm zu starten.
Es macht die Dateien übersichtlicher und ist daher zu empfehlen. (In Modulen ist die Dateiendung allerdings notwendig).
Wenn das Programm mit Python gestartet wird, wird die Datei in einen Bytecode ("Bytecode") umgewandelt.
Es wird von kompilieren gesprochen.
Dieser Bytecode ist nicht sichtbar, wird aber als Datei mit der Endung pyc gespeichert.
Der Bytecode wird anschließend mit der Python Virtuellen Maschine ("Python virtual machine") ausgeführt.
Quellcode (m.py) > Bytecode (m.pyc) > Python Virtuelle Maschine (PVM)
|
Bei anderen Programmiersprachen, wie zum Beispiel C++, muss der Code grundsätzlich zuerst mit einem Compiler übersetzt werden.
Der Compiler erstellt einen für die Plattform (zum Beispiel Windows) lesbaren Bytecode.
Dieser Bytecode auch Maschinencode genannt, wird verbreitet und kann zur Ausführung gebracht werden. Bekannt sind diese Dateien unter Windows als exe-Datei.
Diese Programme sind somit schneller, da der Schritt für die Kompilierung bei der Ausführung des Programms entfällt. Die Kompilierung wurde ja vorher schon gemacht.
Daraus ergeben sich für Python folgende Vor- und Nachteile im Vergleich zu einem kompilierten Programm (C++):
+ |
Bei Python kann der Quellcode immer gelesen und bearbeitet werden
(für Firmen, die die Software verkaufen wollen, ist das ein Nachteil)
|
+ |
Code läuft problemlos auf allen Plattformen (Windows, Mac, Linux)
|
- |
Code ist langsamer als C++ |
In Python gibt es Module, die in C++ geschrieben wurden,
wenn das der geschwindigkeitsbestimmende Schritt ist, sind die Programme genauso schnell.
Ein Beispiel ist das nummerische Python NumPy oder pandas. Dadurch können mit Python Matrizen und Tabellenberechnungen sehr schnell durchgeführt werden.
Es existieren auch verschieden schnelle Interpreter. Siehe auch CPython als Referenzinterpreter und PyPy ein schnellerer Intepreter.
Bei Python entfällt die Kompilierung bei der 2. Ausführung, sofern der Code nicht geändert wurde, da der Bytecode noch versteckt vorhanden ist.
Der Befehl um Python Code in einem Ordner zu kompilieren lautet:
python -m compileall .
Der Punkt . am Ende bedeutet alle Programmdateien werden kompiliert. Sonst statt . einen Dateinamen eingeben.
Die pyc-Datei ist nun im Ordner __pycache__ sichtbar. Wurde der Code nicht geändert, entfällt der Schritt der Compilation beim der nächsten Ausführung.
Weitere Infos:
www.python-kurs.eu/python3_skript_ausfuehren.php
Python Run Time Structure - Neeraj's Blog
Aus Pythonprogrammen Windows exe-Datei erstellen:
Es gibt einige Python Module mit deren Hilfe ausführbare Programme erstellt werden können. Vorteil ist, dass Python auf dem Rechner nicht installiert werden muss. Allerdings sind diese exe-Dateien sehr groß, da sie zusätzlich zum Progammcode alle nötigen Pythoncode enthalten müssen.
Windows, Linux: www.pyinstaller.org/index.html
Windows: www.py2exe.org/
Mac: pypi.python.org/pypi/py2app/
Entwicklungsumgebungen
Mit Editoren (Notepad) ein Python Programm zu entwickeln ist nicht sehr effektiv. Um Python-Code zu schreiben gibt es darauf spezialisierte Programme.
Entwicklungsumgebungen oder IDE ("integrated development environment") bieten eine Erleichterung bei der Eingabe von Code.
Außerdem sind weitere Funktionen, wie Debugger (Code Fehlerüberprüfung) vorhanden.
Eine gute Zusammenfassung gibt es im Hitchhikers Guide to Python.
IDLE
Die einfachste Enticklungsumgebung ist IDLE.
IDLE bedeutet Integrated DeveLopment Environment - der Name deutet auf Eric Idle, der Gründungsmitglied der Monty Python war!
IDLE ist bei der Standardinstallation von Python enthalten.
docs.python.org/3/library/idle.html
Für Anfänger ist IDLE brauchbar.

IDE - IDLE ist in Python Download enthalten
Tipp: Wenn Anaconda unter Windows in C:\Anaconda3 installiert wurde ist IDLE im Ordner C:\Anaconda3\Lib\idlelib versteckt.
Starten mit C:\Anaconda3\Lib\idlelib\idle.bat in der Eingabeaufforderung.
Spyder

Spyder wird unter Windows mit den Paketen Anaconda oder WinPython installiert.
www.spyder-ide.org
Eine kurze Einführung in Spyder gibt es unter
www.southampton.ac.uk/~fangohr/blog/spyder-the-python-ide.html
Spyder ist nicht die beste IDE, aber für Anfänger weniger verwirrend als zum Beispiel PyCharm.
Da wir uns auf die Python Struktur konzentrieren möchten und andere Arbeitsgruppen in der Biologie an der Uni Tübingen auch Spyder benutzen, setzen wir Spyder in diesem Kurs ein.
Spyder wird in der Windows Eingabeaufforderung oder in dem Mac/Linux Terminal mit spyder gestartet.
Anaconda legt bei der Installation unter Windows Start : Anaconda3 einen Spyder Link an.
Oder im Anaconda Navigator kann Spyder gestartet werden.

IDE - Spyder Version 4
Tipps für Spyder
Menü Help : Shortcuts summary
Strg + Leertaste -> Autovervollständigung, zum Beispiel bei Variablen, Methoden und Funktionen.
Strg + I -> der Hilfesystem Inspector wird für die gesuchte Funktion oder Methode geöffnet
Strg + S -> speichert aktuelle Seite.
Vorlage für eine neue Codeseite, siehe unten.
Dreifacher Klick mit der Maus markiert eine Zeile -> Zeile kann kopiert werden
Strg + Alt + Pfeil-nach-unten -> Dupliziert eine Zeile nach unten
Strg + 1 -> macht aus eine Zeile einen Kommentar und umgekehrt. Ein # wird davor gesetzt
PyCharm
Seit 2013 gibt es eine kostenlose Version von PyCharm der Firma JetBrains.
www.jetbrains.com/pycharm/
Die Community Version ist unter der Lizenz Apache 2 OpenSource frei erhältlich.
Die Software ist in Java geschrieben und daher auch unter Linux, Windows und MacOSX erhältlich.
Für Studenten wird ein interaktives Lernprogramm "PyCharm Education Edition" für Python angeboten:
www.jetbrains.com/pycharm-educational/
www.heise.de/newsticker/meldung/Python-IDE-JetBrains-veroeffentlicht-PyCharm-Version-fuer-Studenten-2441050.html
Geeignet um größere Projekte zu bearbeiten. Kostenpflichtige Zusatzfunktionen.
Vermutlich zur Zeit die beste Entwicklungsumgebung für Python.
Pyzo
Schnelle und einfache Open Source IDE für wissenschaftliche Python Entwicklung ("design is aimed at simplicity and efficiency").
www.pyzo.org/
Windows, Mac und Linux
Ist bei WinPython enthalten.
Eric
eric-ide.python-projects.org/
Wikipedia
Ein freies IDE für Python. Unterstützt Python 2 und 3. Vermutlich besser als Spyder
SciTe
Nützlich ist auch SciTe, das auch andere Programmiersprachen unterstützt.
www.scintilla.org/SciTE.html
Eclipse
Auch für die umfassende Entwicklerumgebung Eclipse gibt es ein Plugin, das PyDev.
pydev.org/
Microsoft Visual Studio
Wer sowieso in Windows entwickelt (.NET usw.) wird sich freuen, dass es jetzt für Visula Studio das "Python-Tools für Visual Studio" von Microsoft gibt.
Die Tools sind kostenlos und OpenSource.
visualstudio.microsoft.com/vs/features/python/
Python 2 oder Python 3

Lange gab es zwei Python! Python 2.7.18 und Python 3.10.2 können zurzeit unter www.python.org/downloads/ heruntergeladen werden. (Stand Feb. 2022). Aus gutem Grund ist 2.7 unter "specific release" versteckt.
Mit Python 3 wurden einige wesentliche Neuerungen durchgeführt. Leider ist Python 3 nicht abwärts kompatibel. Da es aber noch viel Programmcode in Python 2 gibt und viele Module und Pakete
nur für Python 2 erhältlich sind, muss manchmal noch mit Python 2 gearbeitet werden.
Es gibt ein Python-Skript um Python 2 Code in Python 3 Code zu verwandeln (2to3 - Automated Python 2 to 3 code translation)
Python 2.7 wird als Altlast ("legacy") bezeichnet. wiki.python.org/moin/Python2orPython3.
Allerdings sind viele Entwickler unglücklich mit Python 3 und halten eisern an Python 2 fest.
Die Version 2.7 wird die letzte Version von Python 2 sein, es wird kein Python 2.8 geben.
Sicherheitsupdate für Python 2 sind nur bis 2020 garantiert (siehe python.org). 2.7.18 soll ein code freeze sein. Nur Python3 wird wirklich weiter entwickelt.
Mit Hilfe magischer Befehlszeilen, siehe unten, können auch Python 3 Programme mit Python 2 (> Version 2.6) ausgeführt werden.
Damit Python 3 Skripte auch in Python 2 laufen, folgenden Code am Anfang des Python 2 Programms einsetzen:
from __future__ import division |
In Python 2 ist das Ergebnis einer Division von zwei ganzahligen Zahlen (2/3) auch eine ganzzahlige Zahl (integer). Im Beispiel das Ergebnis 0.
Das wird Ganzzahldivision (integer division or truncating division) bezeichnet. Python 3 hat eine Gleitkommazahl (float) zum Ergebnis. Im Beispiel ist das Ergebnis 0.666666. In Python 3 kann der Operator // für die Ganzzahldivision verwendet werden.
Hintergründe siehe diesen Artikel.
Eine ähnliche Anweisung gibt es auch für print, damit der Code für Python 3 kompatibel bleibt.
from __future__ import print_function |
Erläuterung unter print().
Coding, Sonderzeichen und Umlaute
Python3 soll grundsätzlich mit UTF-8 und alle Identifier mit ASCII und mit englischen Wörtern programmiert werden (PEP8)
Das bedeutet, keine Umlaute und Sonderzeichen im Code. Auch deutsche Bezeichnungen sollen vermieden werden.
Das folgende betrifft Python 2 und 3. Werden Sonderzeichen und Umlaute im Kommentar und Zeichenketten eingesetzt
am Anfang des Codes (1. oder 2. Zeile) folgendes einfügen:
Sollten die Umlaute (zum Beispiel print('Tübingen') immer noch nicht dargestellt werden, kann folgendes eingesetzt werden:
# -*- coding: iso-8859-1 -*- |
und zusätzlich für Python 2 noch
from __future__ import unicode_literals |
Damit werden alle Strings automatisch als Unicode-String interpretiert.
templare.py - diese Anweisung für Spyder automatisch für jede neue Datei ausgeben:
Diese Anweisungen kann in Spyder automatisch für jede neue Programmdatei eingefügt werden.
Spyder öffnen und mit dem Menü "Tools" die "Preferences" öffnen.
Den Punkt "Editor" Register "Advanced Settings" und die Schaltfläche "Edit templates for new modules " wählen.
Die Anweisungen einfügen und das template.py speichern
Literatur, Tutorials

Spitzweg 1850, Bücherwurm -
Carl Spitzweg artist QS:P170,Q164979, Carl Spitzweg 021,
Verändert von Steinmetz, CC0 1.0
Python Dokumentation
Beste Anlaufstelle ist immer noch die offizielle Pythondokumentation.
Python 3
docs.python.org/3/contents.html
Python 2
docs.python.org/2/contents.html
Literatur, Anfänger
Dr. Martin Jones, Python for Biologists, ISBN 9781492346135, bezug über Amazon.
Auch als eBook erhältlich
pythonforbiologists.com
Martin Jones hat für Biologen ein super Tutorial geschrieben:
pythonforbiologists.com/tutorial.html/
Dieser Kurs folgt dem Konzept von Martin Jones.
Vom gleichen Autor ist ein Anfängerbuch Python erschienen:
Martin Jones. 2015. "Python for complete beginners: A friendly guide to coding, no experience required"
Bernd Klein, 2014, Einführung in Python 3, Carl Hanser Verlag
Das Buch tritt mit dem Anspruch 'In einer Woche Programmieren lernen' an.
Das ist aber nur mit dem 1. Teil (bis S. 189) realisierbar.
Der Rest des Buches bietet viele Informationen für anspruchsvolle Programmierung.
Bernd Klein bietet Python Kurse an und seine Ausführungen sind auch gut verständlich und kompetent.
Einen Online-Kurs findet sich unter
www.python-kurs.eu/
Michael Kofler, 2019, Python Der Grundkurs, Rheinwerk Computing. Michael Kofler bekannt als (Linux) Computerbuchautor schafft es aus allen wichtigen Bereichen das wichtigste, kurz und systematisch zusammenzutragen.
Preiswertes Buch für Anfänger.
Weiterführende Literatur
Kenneth Reitz & Tanya Schlusser, 2017, Hitchhiker's Guide für Python.
Kein Programmierbuch, sonder das Buch über Python, Zusammenhänge, Installation, Guten Code schreiben, Python Projekte erstellen.
docs.python-guide.org/
Dr. Martin Jones, 2013, Advanced Python for Biologists,
pythonforbiologists.com
Fortsetzung des Klassikers "Python for Biologists".
Didaktisch hohes Niveau.
Vom gleichen Autor
2017 "Effective Python development for Biologists."
pythonforbiologists.com
2020 "Biological data exploration with Python, pandas and seaborn: Clean, filter, reshape and visualize complex biological datasets using the scientific Python stack"
pythonforbiologists.com/biological-data-exploration-book.html
Mitchell L Model, 2010, Bioinformatics Programming Using Python, O'Reilly, 1. Auflage
Für Fortgeschrittene
Allegra Via, Kristian Rother, Anna Tramontano, 2014, Managing Your Biological Data with Python, by Chapman and Hall/CRC.
Sehr viele Beispiele aus der Biologie, gut erklärt. Für völlige Anfänger weniger geeignet.
DataScience mit Numpy und Pandas
Jake VanderPlas, 2017, Data Science mit Python: Das Handbuch für den Einsatz von IPython, Jupyter, NumPy, Pandas, Matplotlib und Scikit-Learn (mitp Professional)
Auf GitHub finden sich viele Beispiele von ihm als Notebook
github.com/jakevdp/PythonDataScienceHandbook/tree/master/notebooks
Wes McKinney, 2012, Python for Data Analysis, O'Reilly.
Datenanalyse mit IPython und den Modulen NumPy und pandas
Sehr gute Einführung mit anschaulichen Beispielen. Leider keine biologische Beispiele
Tutorials, Online Python, Videos
Oliver Kohlbacher, Applied Bioinformatics Group - Online Vorlesung Timms
Vorlesung Bioinformatik für Lebenswissenschaftler, 2. Stunde
Vorlesung Bioinformatik für Lebenswissenschaftler, 3. Stunde
Vorlesung Bioinformatik für Lebenswissenschaftler, 4. Stunde
Vorlesung Bioinformatik für Lebenswissenschaftler, 5. Stunde
Dr. Martin Jones - Python for Biologists
pythonforbiologists.com/tutorial.html/
Programming Course for Biologists at the Pasteur Institute
http://www.pasteur.fr/formation/infobio/python/
Im Moment leider nicht mehr auffindbar.
Bernd Klein - Python Online
www.python-kurs.eu/
Dr. Chuck (Charles Severance) - Python for Everybody - Videos, Audios, Beispiele
www.py4e.com/
Codeacademy Python
Online Kurs, Registrierung notwendig, inzwischen kostenpflichtig
www.codecademy.com
Learnpython.org
Online Kurs, keine Registrierung
www.learnpython.org/
Hitchhiker's Guide für Python
Das ganze Drumherum in Python als Tutorial.
Auch als Buch erschienen (siehe oben)
docs.python-guide.org/
Hilfe im Internet
Wer ein Python Code Problem hat wird im Internet sehr schnell auf stackoverflow stoßen.
https://stackoverflow.com/
Hier treffen sich die Python Experten und können bei einem Problem helfen.
Wenn nicht das Problem vorher schon behandelt wurde.
Python an der Uni Tübingen
EDV-Kurse am ZDV - Einführung in Python
uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/dienstleistungen/sonstiges/schulungen/anmeldung/
Oliver Kohlbacher, Applied Bioinformatics Group - Online Vorlesung Timms
Vorlesung Bioinformatik für Lebenswissenschaftler, 2. Stunde
Vorlesung Bioinformatik für Lebenswissenschaftler, 3. Stunde
Vorlesung Bioinformatik für Lebenswissenschaftler, 4. Stunde
Vorlesung Bioinformatik für Lebenswissenschaftler, 5. Stunde
Dr. Eberle Zentrum für digitale Kompetenzen
Zentrale Einrichtung an der Uni Tübingen
dr-eberle-zentrum-fuer-digitale-kompetenzen/ueber-uns/
uni-tuebingen.de/einrichtungen/zentrale-einrichtungen/dr-eberle-zentrum-fuer-digitale-kompetenzen/lehrangebot/sommersemester-2022/
Wirtschaftswissenschaften
Computergestützte Methodenkompetenzvermittlung für Studienanfänger in den wirtschaftswissenschaftlichen Studiengängen
uni-tuebingen.de/universitaet/aktuelles-und-publikationen/
Modern Issues in Finance | B404 | Veranstaltung
Sprachwissenschaften - Seminar SS2017 Introduction to Python
campus.verwaltung.uni-tuebingen.de
Kenneth Berendsen, ZMBP - Motif Mapper for Python
uni-tuebingen.de/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/zentren/zmbp/res/plant-physiology/research-groups/harter/berendzen/motif-mapper-for-python/
Tobias Lachenmaier, Astrophysik Wissenschaftliches Programmieren mit Python SS2018
campus.verwaltung.uni-tuebingen.de
|