Programmiersprachen in der Bioinformatik



Ähnliche Dokumente
Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

0. Einführung. C und C++ (CPP)

Objektorientierte Programmierung

Algorithmen mit Python

Algorithmen und Programmieren II Einführung in Python

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Objektorientierte Programmierung OOP

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

doubleslash Net-Business GmbH

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Informatik 1 Tutorial

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

TISIS - Industrie 4.0. Ereignis, Ort, Datum

Zeichen bei Zahlen entschlüsseln

Einführung in die Programmiersprache Python

Programmierkurs Java

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

C++ mit. Microsoft Visual C Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.

Programmiersprachen und Programmierkonzepte

How to do? Projekte - Zeiterfassung

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Die Post hat eine Umfrage gemacht

C# im Vergleich zu Java

Datentypen: Enum, Array, Struct, Union

Fünf einfache Schritte

Allgemeines zu Datenbanken

Übungsblatt: Protein interaction networks. Ulf Leser and Samira Jaeger

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

Macher Solutions Produktinformation SAP Crystal Reports 2011

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Codes und Informationsgehalt

Lua. June 9, Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )

S-Verein VereinshomepagePLUS

Professionelle Seminare im Bereich MS-Office

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Programmierung für Mathematik (HS13)

Homologie und Sequenzähnlichkeit. Prof. Dr. Antje Krause FH Bingen / akrause@fh-bingen.de

Bioinformatik: Hype oder Hoffnung?

Einführung in Eclipse und Java

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Die Invaliden-Versicherung ändert sich

Neue Funktionalität in mobidas 1.3. erp Serie

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Einführung in PHP. (mit Aufgaben)

Audiospektrum- Analyse mit Mikrocontrollern

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

2. Negative Dualzahlen darstellen

Robot Karol für Delphi

Mikrocontroller Grundlagen. Markus Koch April 2011

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

Was meinen die Leute eigentlich mit: Grexit?

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Herzlich willkommen im Modul Web-Engineering

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Java Script für die Nutzung unseres Online-Bestellsystems

Präsentation Von Laura Baake und Janina Schwemer

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Informatik 12 Datenbanken SQL-Einführung

Lokale Installation von DotNetNuke 4 ohne IIS

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Umfrage. Didaktischer Kommentar. Lernplattform

Internet Explorer Version 6

EIDAMO Webshop-Lösung - White Paper

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Handbuch Social Linkbuilding Automatik-Software

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Professionelle Seminare im Bereich MS-Office

Lehrer: Einschreibemethoden

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java

Online-Publishing mit HTML und CSS für Einsteigerinnen

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Nicht über uns ohne uns

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

Informatik I Tutorial

Transkript:

Programmiersprachen in der Bioinformatik

Bioinformatik In der Biologie immer größere Datenmengen (z.b. Genome, Proteinsequenzen) Sequenzanalyse, Strukturvorhersage Informationen in Datenbanken abrufbar machen Nur mit Hilfe von Computertechnik möglich

Sinnvolle (schnell, relativ unkompliziert) Verwendung von Computern für individuelle Probleme nur durch individuelle Programme Diese müssen eigens erstellt werden (Unter Anderem) Aufgabe der Bioinformatiker Mittels Programmiersprachen

Übersicht Programmiersprachen in der Bioinformatik Java, C/C++, Perl, Python und andere Jede Sprache hat ihre eigenen Vorzüge und Nachteile. Es gibt nicht DIE Programmiersprache. Es werden wahrscheinlich immer verschiedene höhere Programmiersprachen koexistieren

Verwandtschaft der Programmiersprachen

Java Grundlagen allen bekannt (Objektorientierung etc.) Verwendung in der Bioinformatik Bioinformatiker schreiben Programme für bestimmte Probleme/Aufgaben Diese werden in der Regel von Biologen genutzt Java bietet gute Möglichkeiten der GUI-Erstellung So können auch Wissenschaftler ohne computertechnisches Wissen die Programme einfach nutzen

Biojava Open Source Projekt, Version 3.0 Java Framework für die Verarbeitung biologischer Daten Im Grunde Sammlung von wichtigen Methoden: z.b. Reader/Writer für geläufige Dateiformate (Fasta, PDB, etc.), Suchalgorithmen oder Sequenzalignments, Strukturalignments berechnen und vieles mehr www.biojava.org (CookBook 3.0)

Java basierte Programme in der Bioinformatik TIGR MultiExperiment Viewer (MEV) Vielzahl an Experimenten zur Analyse eines Genexpression- Musters(Open-Source) WebMol Analysiert Molekularstrukturinformationen Verwendet Java3D zur Visualisierung und Manipulation von komplexen Proteinstrukturen. Apollo Ermöglicht die Visualisierung und manuelle Annotation und die Erstellung von möglichen Genstrukturen Wurde verwendet für die Annotation des Fruchtfliegengenoms und Teilen des menschlichen Genoms verwendet

C Entstehung C: Anfang der 1970er Jahre im Zusammenhang mit dem BS Unix bei AT&T Bell Laboratories: Dennis Ritchie Unmittelbarer Vorgänger ist B (K. Thompson, 1970, ebenfalls bei Unix-Entwicklung) Wird auch als Kreuzung von Assembler und Pascal bezeichnet: ähnlich strukturiertes Programmieren wie in Pascal, fast so maschinennah wie Assembler

C C ist "universell" einsetzbar - FORTRAN z.b. nur für wissenschaftlich-technische Berechnungen Hat sich aufgrund seines eng begrenzten Sprachumfangs durchgesetzt. PL/I oder ALGOL68 dagegen nicht, weil zu komplex Trotzdem sehr große Flexibilität

Das alles führt dazu, dass C im Grunde Spielraum besitzt für alles zwischen hochportablem Code und sehr maschinennahem, nicht portablem Code ("höherer Assembler")

Beispielcode C

C++ Mitte der 1980er Jahre ebenfalls bei AT&T Bell Labs: B. Stroustrup. Erweiterung von C um die Möglichkeit der objektorientierten Programmierung und einige Verbesserungen bezüglich des Sprachumfangs von C C ist (nicht exakte) Teilmenge von C++

Bio++ Ist eine C++ Bibliothek für Sequenzanalyse, Phylogenetik, Populationsgenetik und molekulare Evolution http://biopp.univ-montp2.fr/ Momentan Version 2.0.2

Beispielcode C++

Eigenschaften von C/C++ Große Verbreitung Gute Standardisierung (Sprache und Laufzeitsystem) Software relativ leicht portierbar Programme sind laufzeiteffektiv Compiler für alle relevanten Plattformen

Viele gute Programmiersysteme (Java: Eclipse, etc.; C/C++: Code::Blocks, C-Free, Eclipse, etc.) CASE-Tool Unterstützung (Computer Aided Software Engineering) Strukturiertes Programmieren ebenso möglich wie unstrukturiertes

Python Objektorientiert Von Guido van Rossum entwickelt Mehrere Programmierparadigmen unterstützt Open source

Anwender/Anwendungen Google Ubuntu Bit Torrent NASA: u.a. Mission Control Center

Module Große Standardbibliothek Programm anderer Sprachen als Modul Schnell und leicht eigene Module schreiben

Syntax Ziel: möglichst einfach und übersichtlich Keine Konstanten- und Variablendeklaration Einrückung als Blockbegrenzung Kein Semikolon Kein Datentyp BOOLEAN

>>> len("gattaca") 7 >>> "GAT" + "TACA" GATTACA' >>> "A" * 10 'AAAAAAAAAA' >>> "G" in "GATTACA" True >>> "GAT" in "GATTACA" True >>> "AGT" in "GATTACA" False >>> "GATTACA".find("ATT") 1 >>> "GATTACA".count("T") 2 >>>

>>> "GATTACA".lower() 'gattaca' >>> "gattaca".upper() 'GATTACA' >>> "GATTACA".replace("G", "U") 'UATTACA' >>> "GATTACA".replace("C", "U") 'GATTAUA' >>> "GATTACA".replace("AT", "**") 'G**TACA' >>> "GATTACA".startswith("G") True >>> "GATTACA".startswith("g") False >>>

>>> seq = raw_input("enter a DNA sequence: ") Enter a DNA sequence: ATGTATTGCATATCGT >>> seq.count("a") 4 >>> print "There are", seq.count("t"), "thymines" There are 7 thymines >>> "ATA" in seq True >>> substr = raw_input("enter a subsequence to find: ") Enter a subsequence to find: GCA >>> substr in seq True

Biopython Tools zu biologischen Berechnungen Werkzeuge für Operationen auf Sequenzen Schnittstellen für andere biologischen Module

Perl Practical Extraction and Report Language Von Larry Wall 1987 entwickelt Plattformunabhängige, interpretierende Programmiersprache Mehrere Programmierparadigmen unterstützt glue -language

Prinzipien Mehrere Wege There is more than one way to do it Einfach und Möglich Perl makes easy jobs easy and hard jobs possible

Syntax Variablen Skalare Datentypen: $zahl = 50; $zahl = 0,01; $zahl = 1e-2; $name = Günther

Syntax Arrays: @array = (1, 2, drei, $vier) Hash-Tabellen werden mit % gekennzeichnet

Wichtige Module CGI: CGISchnittstelle für WebServer LWP: Bibliothek für Internetzugriffe MySQL: Schnittstell zu MySQLDatenbank

Laufzeitvergleich Laufzeit für Algorithmus für globales Alignment Input: 2 Sequenzen: 3216bp und 3217bp

Laufzeitvergleich Laufzeit für Neighbor-Joining Input: 76 DNA-Sequenzen

Speicherbedarf

Andere Programmiersprachen in der Bioinformatik Ruby Skriptsprache, BioRuby FORTRAN C# Höhere Programmiersprache, PROMOT Höhere Programmiersprache, BioC#