ZMBP

Wissenschaftlich Arbeiten mit Computer und Internet

Uni Tuebingen

Kursübersicht

Im Skript suchen

Bioinformatik


Python

Tag 1
1. Einführung
2. Strings
3. Dateien

Tag 2
4. Listen,Schleifen
5. Funktionen

Tag 3
6. Verzweigung
7. Reg.Exp.

Tag 4
8. Dictionaries
9. System/Input

Index


Impressum

Bioinformatik

Python für Biologen - In 4 Tagen

Nach einer Idee und mit Beispielen von Dr. Martin Jones -
http://pythonforbiologists.com/index.php/introduction-to-python-for-biologists

Einstiegsbeispiel, zum Beispiel Zeile 1 und Spalte 12
Die Daten wurden von einem Plattenleser generiert.


Nächster Kurs

12.2.18 - 16.2.18
10 - 16:00
Raum 168, Morgenstelle 3
max. 12 Teilnehmer
Anmeldung unter Campus Uni-Tuebingen
3 CP, aber keine Benotung!


Übungsaufgaben

Tag 1 - Einführung

Müssen Biologen programmieren lernen?

  • Nein!

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.

In vielen Bereichen der Biologie werden Daten ermittelt und ausgewertet.
Spezialisierte, kostenlose Programme oder von Firmen 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 bewältigen.
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 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
    Excel Makros und VBA Kurs Excel

  • Skriptsprachen Python und Perl
    Dieser Kurs und Kurse ZDV

  • R für Statistik, Microarrays, Bildauswertung Mikroskopie - Imaging

  • MatLab
    Webseite
    Datenauswertung, Plots
    Kostenlos für Tübinger Studenten (Campus Uni Tübingen Software)
    Kurse WS 17/18

  • PHP, Webprogrammierung
    Kurse ZDV

  • 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++ usw. werden von Biologen selten gelernt und eingesetzt.
    Kurse ZDV



Warum Python und nicht Perl?

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 stark eingesetzt.

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.

Python dagegen bevorzugt einfeutige 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 an 4. Stelle im Programmiersprachen Ranking Juli 2017 - https://www.tiobe.com/tiobe-index/
Python ist die "most wanted" Programmiersprache - Heise online 13.10.17

Für Python gibt es auf der ganzen Welt biologische Anwendungen, Dokumentationen und Tutorials

Für Python gibt es spezielle Module und Bibliotheken, die in der Biologie eingsetzt werden
Die bekanntesten Pakete sind Biopython , PyCogen und PythonXY.

Immer mehr Programme können mit Python programmiert werden.
Beispiele sind Plugins für GIMP (GIMPPython) und ImageJ oder das Animationsprogramm Blender (Wikipedia).

Entwickelt wurde Python Anfang der 1990er Jahre von Guido van Rossum, Centrum Wiskunde & Informatica in Amsterdam.

Der Name geht auf die englische Komikergruppe Monty Python zurück.
Hat also mit einer Schlange nichts zu tun.

Monty Python
Monty Python - Silly Walk - nach Wegmann Wikimedia Common




Kennzeichen von Python

  • Einfach und übersichtlich

Python ist einfach und übersichtlich durch möglichst wenige Schlüsselwörter und besticht mit einer übersichtlicher Syntax.
Ein Grundsatz von Python ist, dass es einen offensichtlichen Weg geben sollten, um ein Problem zu lösen. Und eindeutiger Code wird bevorzugt.
(PEP20 Zen of Python "There should be one-- and preferably only one --obvious way to do it.", "Explicit is better than implicit").
Python wird als Skriptsprache eingesetzt.
Die Textdatei wird als Code direkt zur Ausführung gebracht.
Variablen müssen nicht deklariert werden.

Viele Schreibweisen sind zwingend vorgeschrieben, die zu einer Übersichtlichkeit beitragen.
Darüber hinaus gibt es stilistische Konventionen, Entwickler sollen sich daran halten, damit der Code leicht zu lesen und verständlich bleibt.
Diese sind in der PEP8 aufgelistet.

  • Arbeitet mit Funktionen

Immer wiederkehrende Codeabschnitte werden in Funktionen festgehalten.
Dadurch werden Arbeitsabläufe einfacher.

  • Objektorientierte Programmierung

Python ist wie die "höheren" Programmiersprachen (C, C++) auch eine komplexe Programmiersprache.
In diesem Kurs wird objektorientierte Programmierung nicht 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.
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 UNIX, MacOS und Windows gleichermaßen.

  • Einbinden weiterer Module möglich.

Für Python gibt es spezielle Erweiterungen. Diese werden zu sogenannten Modulen zusammengefasst.
Nur benötigte Module werden in das Programm eingebunden.

  • Entwicklungsumgebungen vorhanden

Entwicklungsumgebungen (IDE) für Python erleichtern das Programmieren.

Python, Einrückungen machen Python übersichtlich
Python, Einrückungen machen Python übersichtlich - Foto Python Software Foundation - Cpython. Wikimedia Commons




Wie wird Python ausgeführt?

Python muss auf Windows Rechnern installiert werden.
Bei den meisten Linux Distributionen (Debian, OpenSuse, Ubuntu,...) ist Python bereits installiert.
Auch auf Apple Mac Rechnern ist Python vorinstalliert.

Download Python
Python kann von folgender Seite heruntergeladen werden.
https://www.python.org/

Im Kurs wird ein Python Paket eingesetzt, das zusammen mit vielen für Biologen brauchbaren Modulen installiert wird.
PythonX,Y (Download)
Dieses Python-Paket ist zum Beispiel mit den Modulen ausgestattet um Diagramme zu erstellen.
Außerdem wird die Entwicklungsumgebung Spyder installiert.
Großer Nachteil ist, dass das Paket und einige Module noch nicht für Python 3 vorbereitet sind (s.u.)

Ein anderes gutes Paket für Biologen ist Anaconda (Download).



Python Konsole

Python kann in einer interaktiven Konsole ("Eingabeaufforderung" unter Windows) ausgeführt werden.

Dazu im Terminal (Linux oder MacOSX) oder Eingabeaufforderung (Windows) 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.
Diese interaktive Python Konsole wird mit exit() verlassen.

Die interaktive Konsole ist nur für kleine Programme geeignet.
Oder als Taschenrechner.




IPython
Dokumentation
IPython ist eine interaktive Konsole mit noch mehr Funktionen
IPython kann in der Konsole mit dem Befehl "ipython" aufgerufen werden.

Zur Installation werden am besten die Pakete Anaconda oder Python xy eingesetzt.
Installation und für weitere Informationen:
http://ipython.org/index.html

In der Entwicklungsumgebung (IDE) Spyder gibt es für IPhyton ein eigenes Fenster.


IPython in der Konsole ausgeführt


Welche Vorteile hat IPython im Vegleich zur Konsole?

- Ausgabe: Die Ausgabe ist lesbarer, z.B. bei Dictionaries.

- 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 komplizierterer Code umgesetzt werden.
(Geht nicht in der Windows Eingabeaufforderung)

- Tab Completion: Mit der Taste Tab kann nach einer bekannten Variablen, 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 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.

- GUI Console: mit jupyter qtconsole (früher: ipython qtconsole --pylab=inline)
kann eine eigene grafische Oberfläche aufgemacht werden.

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

- Session aufzeichnen: mit %logstart, logstop und %logoff sowie %logstate kann die Eingabe und die Ausgabe aufgezeichnet werden.




Jupyter - IPython Notebook




IPython Notebook wird als jupyter Notebook weiterentwickelt und ist in dem aktuellen Anaconda Paket enthalten.
https://jupyter.org/
Übersicht.
jupyter leidet sich von den 3 Programmiersprachen Julia, Python und R ab.
Das bedeutet, dass in dem Notebook außer mit Python auch mit Julia oder R gearbeitet werden kann.
Im Menü Kernel wird das umgestellt, allerdings müssen die entsprechenden Programm installiert werden.

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.
http://ipython.org/notebook.html

Standard Tastaturkürzel
https://www.cheatography.com/weidadeyue/cheat-sheets/jupyter-notebook/

Mac Tastenkürzel




jupyter Notebook - Text und Code.


Nachdem jupyter oder Python Notebook installiert ist, am besten mit dem Paket Anaconda (jupyter) oder Python(x,y) (IPython), wird das Programm in der Konsole mit
jupyter notebook
(
früher: ipython notebook)
aufgerufen.

Anaconda legt auch bei der Installation in Windows einen Link in Start Programme Anaconda.

Im Standard-Browser öffnet sich ein Fenster, in dem die Ordner und Dateien auf dem lokalen PC gezeigt werden.
Ausgangspunkt für Ordner vorher mit cd in der Konsole bestimmen.

Ein anderes Arbeitsverzeichnis kann 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, das die Sitzung gespeichert wird und später wieder ausgeführt werden kann.
IPython 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.



Code in einer Textdatei


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 Textdatei.
Der Pfad und die Endung .exe kann entfallen, da meist bei der Installation von Python
durch Eintragung in die Umgebungsvariablen das klar gemacht wurde.

Eingabeaufforderung öffnen, bei Windows mit Windows-Taste + R und "cmd" eingeben.
In dem aktuellen Ordner gibt es eine Pythondatei mit dem Namen beispiel.py
Nun folgendes 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
python C:\Temp\beispiel.py

Zusätzlich könnten noch Argumente angegeben werden, die im Programm verarbeitet werden (s. u.).

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 input() einzugegeben, dann wartet das Programm auf eine Eingabe und das Fenster wird nicht automatisch geschlossen.
Es kann das Ergebnis gelesen werden und irgendeine Eingabe schließt das Fenster wieder.

Auch in der Python-Konsole kann eine Pythondatei aufgerufen werden.
>>> execfile("C:/Temp/beispiel.py")

Hinweis: Auch unter Windows Schrägstriche nicht Backslash für den Pfad benutzen.

In IPython eine Pythondatei mit dem magic command %run aufrufen (IPython)



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)
http://notepad-plus-plus.org/

BBedit (MacOS, kostenlose Basisversion)
http://www.barebones.com/products/bbedit/
Atom(MacOS, Windows, Linux)
https://atom.io/

gedit (Linux)
Wikipedia

Hier werden die Befehle farbig gekennzeichnet, was eine große Hilfe bedeutet (Progammsprachauszeichnung).



Tipp:
Es gibt noch eine andere witzige Art Python Code auszuführen.
Python online
http://www.tutorialspoint.com/execute_python3_online.php
Python muss auf dem Rechner nicht installiert sein.
Python2 und Python3 ist möglich.
Um kleine Codes zu testen ganz brauchbar


Schließlich benutzen Python Entwickler spezielle Programme um Python zu entwickeln und auszuführen.
Das wird weiter unten unter Entwicklungsumgebungen erläutert.



Was passiert wenn ich ein Python Programm startet?

Was passiert 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 wiederum entscheidend).

Wenn das Programm mit Python gestartet wird, wird die Datei in einen Bytecode ("Bytecode") umgewandelt.
Es wird von kompilieren gesprochen.

Diesen Bytecode sieht man normalerweise nicht, wird aber als Datei mit der Endung pyc gespeichert.

Der Bytecode wird mit der Python Virtuellen Maschine ("Python virtual machine") zum Laufen gebracht - das Programm wird 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 Programm 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.

Bei Python entfällt die Kompilierung nur bei der 2. Ausführung, sofern der Code nicht geändert wurde, da der Bytecode noch irgendwo vorhanden ist.



Daraus ergeben sich für Python folgende Vor- und Nachteile im Vergleich zu kompilierten Programmen (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++,
aber es gibt Module, die in C++ geschrieben wurden,
wenn das dergeschwindigkeitsbestimmende Schritt ist, sind die Programme genauso schnell.

Weitere Infos:

http://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 Pythonprogrammcode enthalten.

Windows, Linux: http://www.pyinstaller.org/index.html

Windows: http://www.py2exe.org/

Mac: https://pypi.python.org/pypi/py2app/




Entwicklungsumgebungen

Editoren (Notepad) sind nur sehr einfache Programme, 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 - und Eric Idle war Gründungsmitglied der Monty Python!
IDLE ist bei der Standardinstallation von Python enthalten.
https://docs.python.org/3/library/idle.html
Für Anfänger ist IDLE brauchbar.

IDE - IDLE

IDE - IDLE ist in Python Download enthalten



Spyder


Spyder wird unter Windows mit den Paketen Python(X,Y) und Anaconda oder dem portablen WinPython installiert.
Dokumentation Spyder

Eine kurze Einführung in Spyder gibt es unter
http://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.


IDE - Spyder


Tipps für Spyder

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 + D -> Dupliziert eine Zeile


PyCharm

Seit 2013 gibt es eine kostenlose Version von PyCharm der Firma JetBrains.
https://www.jetbrains.com/pycharm/
Die Community Version ist unter der 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:
https://www.jetbrains.com/pycharm-educational/

http://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 IDE für Python.


Eric

http://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.
http://www.scintilla.org/SciTE.html



Eclipse

Auch für die umfassende Entwicklerumgebung Eclipse gibt es ein Plugin, das PyDev.
http://pydev.org/


Microsoft Visual Studio 215

Wer sowieso in Windows entwickelt (.NET usw.) wird sich freuen, dass es jetzt für Visula Studio 2015 das "Python-Tools für Visual Studio" gibt.
Die Tools sind kostenlos und OpenSource.
https://www.visualstudio.com/de-de/features/python-vs.aspx





Python 2 oder Python 3

Und nun eine unerfreuliche Nachricht. Im Moment gibt es zwei Python!
Python 2.7.13 und Python 3.6.2 können zurzeit unter https://www.python.org/downloads/ heruntergeladen werden.
(Stand Juli. 2017).

Mit Python 3 wurden einige wesentliche Neuerungen durchgeführt. Leider ist Python 3 nicht abwärts kompatibel.
Das es aber viele Programme in Python 2 gibt und viele Module und Pakete wie zum Beispiel Python XY
nur für Python 2 erhältlich sind, muss noch mit Python 2 gearbeitet werden.

Python 2.7 wird als Altlast ("legacy") bezeichnet. https://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).
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.

Im Kurs wird Python 2.7 aus der Distribution Python(X,Y) eingesetzt (Informationen).

Damit alle Skripte laufen, bitte folgenden Code am Anfang des Programms einsetzen:

from __future__ import division

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

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:

# -*- coding: utf-8 -*-


Sollten die Umlaute (zum Beispiel print('Tübingen') immer noch nicht dargestellt werden, kann folgendes eingesetzt werden:

# -*- coding: iso-8859-1 -*-




Anweisung für Spyder
Diese Anweisungen könne 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 - Foto nach Iryna Harpy Wikimedia Commons

Python Dokumentation

Beste Anlaufstelle ist immer noch die offizielle Pythondokumentation.

Python 3
https://docs.python.org/3/contents.html

Python 2
https://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
https://pythonforbiologists.com/python-books/
Martin Jones hat für Biologen ein super Tutorial geschrieben:
http://pythonforbiologists.com/index.php/introduction-to-python-for-biologists/
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
http://www.python-kurs.eu/



Weiterführende Literatur

Dr. Martin Jones, 2013, Advanced Python for Biologists,
http://pythonforbiologists.com/index.php/books/
Fortsetzung des Klassikers "Python for Biologists".
Didaktisch hohes Niveau.
Vom gleichen Autor
2017 "Effective Python development for Biologists."
https://pythonforbiologists.com/python-books/


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.

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

Ruediger-Marcus Flaig, 2008, Bioinformatics Programming in Python:
A Practical Course for Beginners, Wiley-VCH Verlag GmbH & Co. KGaA
Ich kenne das Buch leider nicht, daher keine Bewertung.



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
http://pythonforbiologists.com/index.php/introduction-to-python-for-biologists/

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
http://www.python-kurs.eu/

Dr. Chuck (Charles Severance) - Videos, Audios, Beispiele
http://www.pythonlearn.com/

Codeacademy Python
Online Kurs, keine Registrierung notwendig
https://www.codecademy.com/en/tracks/python

TryPython
Interaktiver Kurs, Registrierung nötig, Plugin MS Silverlight bzw. Moonlight nötig.
http://www.trypython.org/

Learnpython.org
Online Kurs, keine Registrierung
http://www.learnpython.org/



Python an der Uni Tübingen

KIS - Kurs am ZDV - Einführung in Python
https://www.kis.uni-tuebingen.de/kis4/kursliste.php?suchbegriff=python&name=1&submit=suchen

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

Oliver Kohlbacher, Applied Bioinformatics Group - Introduction to Python - Linksammlung
http://abi.inf.uni-tuebingen.de/Teaching/tutorials/introduction-to-python

Jan Benda - Einführung in wissenschaftliche Datenverarbeitung
https://campus.verwaltung.uni-tuebingen.de/lsfpublic/rds?state=verpublish&status=init&vmfile=no&moduleCall=webInfo&publishConfFile=webInfo&publishSubDir=veranstaltung&veranstaltung.veranstid=141536

Kenneth Berendsen, ZMBP - Motif Mapper for Python
http://www.uni-tuebingen.de/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/zentren/zmbp/plant-physiology/research-groups/harter/berendzen/motif-mapper-for-python.html

Sprachwissenschaften - Seminar SS2017 Introduction to Python
https://campus.verwaltung.uni-tuebingen.de/lsfpublic/rds?state=verpublish&status=init&vmfile=no&publishid=131914&moduleCall=webInfo&publishConfFile=webInfo&publishSubDir=veranstaltung

Chris Culy, Seminar für Sprachwissenschaften
http://www.sfs.uni-tuebingen.de/~cculy/courses/S2014/ModelsSem/resources.html

Python Package achrolab, Psychologie
http://www.empg2014.uni-tuebingen.de/achrolab/





Dieter Steinmetz, Universität Tübingen, ZMBP - Kursübersicht - Im Skript suchen