27.06.2013 Aufrufe

Bioinformatik für Biochemiker - Applied Bioinformatics Group ...

Bioinformatik für Biochemiker - Applied Bioinformatics Group ...

Bioinformatik für Biochemiker - Applied Bioinformatics Group ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Bioinformatik</strong><br />

<strong>für</strong> <strong>Biochemiker</strong><br />

Oliver Kohlbacher<br />

WS 2009/2010<br />

15. Zusammenfassung<br />

Abt. Simulation biologischer Systeme<br />

WSI/ZBIT, Eberhard Karls Universität Tübingen<br />

<strong>Bioinformatik</strong> – Definition<br />

<strong>Bioinformatik</strong> verwendet Methoden der<br />

Mathematik, Statistik und Informatik<br />

zur Analyse und Interpretation von<br />

biologischen, biochemischen und<br />

biophysikalischen Daten.<br />

<strong>Bioinformatik</strong><br />

Mathematik,<br />

Informatik<br />

Lebens-<br />

wissenschaften<br />

<strong>Bioinformatik</strong><br />

Physik,<br />

Chemie<br />

1


<strong>Bioinformatik</strong> – Gebiete<br />

• Sequenzbasierte <strong>Bioinformatik</strong><br />

– Assemblierung<br />

– Sequenzsuche/-vergleich<br />

– Comparative Genomics<br />

– ....<br />

• Strukturelle <strong>Bioinformatik</strong><br />

– Proteinstrukturvorhersage<br />

– Wirkstoffentwurf () Chemoinformatik)<br />

– ...<br />

• Biologische Informationssyteme<br />

– Datenintegration und biologische Datenbanksysteme<br />

– Modellierung biologischer Daten<br />

– …<br />

• Systembiologie<br />

– Computational Proteomics<br />

– Computational Metabolomics<br />

– Biologische Netzwerke<br />

– …<br />

• ...<br />

Algorithmen<br />

• Bevor man ein Programm schreibt, muss man wissen<br />

was der Rechner tun soll!<br />

• Die Beschreibung einer Methode zur Lösung der<br />

gegebenen Aufgabenstellung nennt man Algorithmus<br />

• Dementsprechend sind Kochrezepte oder<br />

Bedienungsanleitungen nichts anderes als<br />

Algorithmen<br />

• Ein Programm ist eine formale Umsetzung eines<br />

Algorithmus in einer Programmiersprache<br />

• Da Rechner nur Maschinencode ausführen können,<br />

sind Compiler oder Interpreter notwendig, die das<br />

Programm aus der Programmiersprache in<br />

Maschinencode umsetzen, der dann ausgeführt wird<br />

Algorithmen, Code, Rechner<br />

Programm-<br />

code<br />

Algo-<br />

rithmus<br />

Compiler/<br />

Interpreter<br />

Maschinen-<br />

code<br />

Eingabe-<br />

daten<br />

Ausgabe-<br />

daten<br />

2


Betriebssystem, Shell und GUI<br />

• Jedes Programm (Applikation,<br />

“Befehl”) braucht eine<br />

Schnittstelle zum Rechner<br />

• Unterste Schnittstelle:<br />

Betriebssystem<br />

• Betriebssystem stellt<br />

Applikationen (Programmen,<br />

“Befehlen”) Grundfunktionalität<br />

zur Verfügung<br />

– Verwaltung von Dateien<br />

– Zugriff auf Benutzerdaten<br />

Python – Schleifen<br />

Programm<br />

Betriebs-<br />

system<br />

Rechner<br />

(Hardware)<br />

• Python kennt For-Schleifen, bei denen eine Schleifenvariable eine<br />

Folge von Werten durchläuft und <strong>für</strong> jeden dieser Werte der<br />

Rumpf ausgeführt wird<br />

• Der Kopf definiert dabei die Schleifenvariable und die möglichen<br />

Werte<br />

• Der Rumpf wird vom Kopf durch Einrückung unterschieden<br />

• Der Rumpf kann eine oder mehrere Zeilen Code enthalten<br />

• Die Funktion range(Wert) erzeugt dabei eine Liste von Wert<br />

Zahlen, die bei 0 anfangen und jeweils um eins erhöht werden<br />

for i in range(10):<br />

print i<br />

• Dieses kurze Programm gibt dementsprechend die Zahlen von 0<br />

bis 9 aus<br />

Laufzeitanalyse<br />

for i in range(n):<br />

for j in range(n):<br />

for k in range(n):<br />

a = a + …<br />

for i in range(n):<br />

a = a + …<br />

for i in range(5*n):<br />

a = a + …<br />

for i in range(10*n):<br />

a = a + …<br />

• Möchte man die Laufzeit zweier Programme analysieren, so „zählt“<br />

man üblicherweise die Rechenoperationen die auszuführen sind.<br />

• Interessant ist dabei der Vergleich, wie die Zahl mit der Größe der<br />

Eingabe (z.B. Sequenzlänge n variiert)<br />

• In den obigen Beispielen können wir zum Beispiel die Anzahl der<br />

Additionen („a = a + …“) betrachten.<br />

Beispiel: n = 3 n = 20<br />

Links: 3 * 3 * 3 = 27 Additionen 20 * 20 * 20 = 8000<br />

Rechts: 3 + 15 + 30 = 48 Additionen 20 + 100 + 200 = 320<br />

3


O-Notation<br />

• Die O-Notation sagt nichts darüber aus, ob eine bestimmte<br />

Problemgröße mit einem Algorithmus lösbar ist!<br />

• Statt dessen trifft sie eine Aussage darüber, wie der Algorithmus<br />

beim Übergang zu immer größeren Probleminstanzen skaliert<br />

• Algorithmen mit besserer Komplexität können (und sind es auch<br />

oft) <strong>für</strong> sehr kleine Probleminstanzen langsamer sein<br />

Strings und Sequenzen<br />

• Formale Definitionen<br />

• Sequenzdatenbanken<br />

• Einige Grundbegriffe<br />

der Informatik<br />

• Alignments<br />

– Definition<br />

– Distanzfunktionen<br />

– Dotplots<br />

Strings und Sequenzen<br />

Definition:<br />

Ein Alphabet Σ ist eine endliche Menge von Zeichen.<br />

Sequenzen sind Zeichenreihen über Σ.<br />

Dabei ist:<br />

Σ 0 := {ε} (ε steht <strong>für</strong> die leere Sequenz)<br />

Σ n ist die Menge aller Worte der Länge n auf Σ<br />

Σn+1 := {aA | a 2 Σ, A 2 Σ n }<br />

Σ * ist die Menge aller Sequenzen (aller Längen) über Σ.<br />

Beispiel:<br />

DNA-Sequenzen sind definiert über dem Alphabet<br />

Σ DNA = {A,C,G,T}<br />

Protein-Sequenzen sind definiert über<br />

Σ P = {A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y}<br />

4


Alignment mit DP<br />

• Alignmentalgorithmen<br />

– Trivial<br />

– Dyn. Programmierung<br />

• Scoringmatrizen<br />

• Begriff der Komplexität<br />

• Implementierung<br />

• Tools<br />

– Alignments<br />

– Dotplots<br />

Ähnlichkeit und Distanz<br />

Merkl, Waack, <strong>Bioinformatik</strong> interaktiv<br />

• Wie kann man die Ähnlichkeit zweier Sequenzen<br />

beschreiben?<br />

• Einfachste Möglichkeit: „Zählen“ identischer Zeichen<br />

GATCGTTCG<br />

|| |||<br />

CATGGTTGA<br />

• Problem: Was bei Sequenzen unterschiedlicher Länge?<br />

GATCGTTCG GATCGTTCG GATCGTTCG<br />

||| | ||| |<br />

---GGTTGA G---GTT-GA -GGTTGA--<br />

Ähnlichkeit: (Anzahl Matches)<br />

3 5 0<br />

Analog die Distanz (Anzahl Mismatches):<br />

6 5 9<br />

Alignments<br />

• Beispiel: Berechnen des Scores zweier Alignments von<br />

A = ACGTAGTAGCA und B = ACTTAGTACGT<br />

ACGTAGTAGC-A ACGTAGTA-GCA<br />

|| | ||| | | || | || | |<br />

ACTT-GTACGTA ACTTG-TACGTA<br />

Beobachtung:<br />

Die Alignments der Präfixe der Länge vier von A und B<br />

sind identisch. Damit auch die Scores der Alignments<br />

dieser Präfixe.<br />

) Wir berechnen die Scores vieler Teilalignments<br />

immer wieder!<br />

Idee:<br />

Merke die besten Scores dieser Teilalignments und<br />

berechne sie nicht ständig neu.<br />

5


Dynamische Programmierung<br />

• Die 0. Spalte/Zeile der<br />

Matrix beschreibt<br />

Alignments die mit einem<br />

Gapzeichen beginnen<br />

• Gemäß unserer Überlegung<br />

über Präfixalignments gilt<br />

<strong>für</strong> die Matrixelemente:<br />

• Damit ergibt sich der Inhalt<br />

einer Zelle der Matrix aus<br />

den Werten der drei<br />

Nachbarzellen links, oben<br />

und links oben<br />

Beispiel:<br />

• A = ACGT, m = 4<br />

• B = AGC, n = 3<br />

-<br />

A<br />

C<br />

G<br />

T<br />

- A G C<br />

D 0,0<br />

Dynamische Programmierung<br />

• Traceback der T-Matrix<br />

– Diagonal: Matche zwei<br />

Zeichen<br />

– Horizontal: matche Zeichen<br />

aus B mit Gap<br />

– Vertikal: matche Zeichen aus<br />

A mit Gap<br />

• Beispiel:<br />

Diagonal von (1,1) nach (0,0)<br />

ACGT<br />

A-GC<br />

Datenbanken - Definition<br />

Beispiel:<br />

• A = ACGT, m = 4<br />

• B = AGC, n = 3<br />

D m,n<br />

- A G C<br />

- 0 1 2 3<br />

A 1 0 1 2<br />

C 2 1 1 1<br />

G 3 2 1 2<br />

T 4 3 2 2<br />

Datenbank (DB):<br />

eine Datensammlung, die nach<br />

bestimmten Kriterien organisiert ist.<br />

6


ENTREZ<br />

BLAST – w-mere<br />

• Für jede Anfrage S konstruiert BLAST zunächst eine Liste aller in<br />

S vorkommenden w-mere, dann eine Liste aller dazu ähnlichen<br />

w-mere (gemäß Scoringmatrix)<br />

• Nach diesen w-meren wird dann in D gesucht<br />

• Da keine Gaps zugelassen werden und nur direkte Identität mit<br />

sehr kurzen Sequenzen getestet werden muss, geht dies sehr<br />

schnell<br />

S<br />

BLAST-Ausgabe<br />

BLASTP 2.2.8 [Jan-05-2004]<br />

w-mere aus S Ähnliche k-mere<br />

Treffer in D<br />

Treffer in D<br />

Datenbanksequenz D<br />

Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro<br />

A. Schaffer,<br />

Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman<br />

(1997),<br />

"Gapped BLAST and PSI-BLAST: a new generation of protein<br />

database search<br />

programs", Nucleic Acids Res. 25:3389-3402.<br />

Query= 1HSO:B CLASS I ALCOHOL DEHYDROGENASE 1, ALPHA SUBUNIT<br />

(374 letters)<br />

Database: Arabidopsis_chr1.fasta<br />

7493 sequences; 3,192,001 total letters<br />

Searching...............done<br />

7


Problemdefinition<br />

Multiples Sequenzalignment<br />

(MSA, multiple sequence alignment, Profil)<br />

• Gegeben: k Sequenzen<br />

• Gesucht:<br />

– Alignment aller k Sequenzen<br />

– Möglichst optimal bezüglich einer Distanz- oder Scoringfunktion<br />

WIN1_SOLTU AQQCGRQKGGALCSGNLCCSQFGWCGSTPEFCSPSQGCQSRC<br />

HEVE_HEVBR AEQCGRQAGGKLCPNNLCCSQWGWCGSTDEYCSPDHNCQSNC<br />

CHIX_PEA AEQCGSQAGGAVCPNGLCCSKFGFCGSTDPYCGD..GCQSQC<br />

CHI2_ORYSA AEQCGSQAGGAVCPNCLCCSQFGWCGSTSDYCGA..GCQSQC<br />

CHI1_ORYSA GEQCGSQAGGALCPNCLCCSQYGWCGSTSDYCGA..GCQSQC<br />

AGI_URTDI AQRCGSQGGGGTCPALWCCSIWGWCGDSEPYCGR..TCENKC<br />

Anwendung – Strukturkonservierung<br />

WIN1_SOLTU AQQCGRQKGGALCSG.NLCCSQFGWCGSTPEFCSPSQGCQ.SRC<br />

HEVE_HEVBR AEQCGRQAGGKLCPN.NLCCSQWGWCGSTDEYCSPDHNCQ.SNC<br />

CHIX_PEA AEQCGSQAGGAVCPN.GLCCSKFGFCGSTDPYCGD..GCQ.SQC<br />

CHI2_ORYSA AEQCGSQAGGAVCPN.CLCCSQFGWCGSTSDYCGA..GCQ.SQC<br />

CHI1_TOBAC AEQCGSQAGGARCPS.GLCCSKFGWCGNTNDYCGPG.NCQ.SQC<br />

HEVL_ARATH GQQCGRQGGGRTCPG.NICCSQYGYCGTTADYCSPTNNCQ.SNC<br />

CHIT_DIOJA .QNCQ.......CDTTIYCCSQHGYCGNSYDYCGP..GCQAGPC<br />

CHIP_BETVU AQNCG.......CAP.NLCCSNFGFCGTGTPYCGVG.NCQSGPC<br />

CHIA_MAIZE AQNCG.......CQP.NFCCSKFGYCGTTDAYCGD..GCQSGPC<br />

AGI1_WHEAT AQRCGEQGSNMECPN.NLCCSQYGYCGMGGDYCGK..GCQNGAC<br />

AGI_ORYSA AQTCGKQNDGMICPH.NLCCSQFGYCGLGRDYCGT..GCQSGAC<br />

AGI_URTDI AQRCGSQGGGGTCPA.LWCCSIWGWCGDSEPYCGR..TCE.NKC<br />

„One or two homologous sequences whisper …<br />

a full multiple sequence alignment shouts out<br />

loud.“ (Arthur Lesk, 1996)<br />

CLUSTALW – Überblick<br />

S 1<br />

S 2<br />

-<br />

.<br />

D 1,2<br />

-<br />

D 1,3 D 2,3 -<br />

D 1,2<br />

D 1,3<br />

D 1,4 D 2,4 D 3,4 -<br />

S 1<br />

S 2<br />

S 3<br />

S 4<br />

• Globales Alignment<br />

• Distanzmatrix<br />

• Konstruktion eines Leitbaums<br />

• Profilalignment entlang des<br />

Baums<br />

8


Sequenzlogos<br />

• Profile lassen sich auf einfache Weise mit Hilfe sogenannter<br />

Sequenzlogos visualisieren<br />

• Dabei zeichnet man an jeder Position der Sequenz die<br />

möglichen Buchstaben, wobei die Buchstabenhöhe<br />

proportional zum Informationsgehalt ist<br />

• Dadurch lassen sich die motivrelevanten Teile des Profils direkt<br />

ablesen<br />

• Beispiel:<br />

TATA-Box-<br />

Sequenzen aus<br />

Hefe<br />

Protein-Strukturvorhersage<br />

Problemdefinition:<br />

Gegeben Sequenz, finde Struktur<br />

...LGFCYWS...<br />

Proteinstruktur – Überblick<br />

Primärstruktur<br />

Sekundärstruktur<br />

Tertiärstruktur<br />

Quartärstruktur<br />

http://www.lecb.ncifcrf.gov/~toms/sequencelogo.html<br />

Sequenz: ...LGFCYWS...<br />

9


PDB – Der erste Eintrag!<br />

PDB-Format<br />

Beispiel: ATOM-Records <strong>für</strong> VAL<br />

Röntgenstrukturen<br />

ATOM 1 N VAL 1 -2.900 17.600 15.500 enthalten 1.00 0.00 nur Schweratome<br />

2 1MBN 72<br />

ATOM 2 CA VAL 1 -3.600 16.400 15.300 1.00 0.00 2 1MBN 73<br />

ATOM 3 C VAL 1 -3.000 15.300 16.200 Valin 1.00 (VAL) 0.00 enthält 2 1MBN dann 74<br />

ATOM 4 O VAL 1 -3.700 14.700 17.000 1.00 0.00 2 1MBN 75<br />

sieben Atome:<br />

ATOM 5 CB VAL 1 -3.500 16.000 13.800 1.00 0.00 2 1MBN 76<br />

ATOM 6 CG1 VAL 1 -2.100 15.700 13.300 N, 1.00 CA, C, 0.00 O – Rückgrat 2 1MBNP 4<br />

ATOM 7 CG2 VAL 1 -4.600 14.900 13.400 1.00 0.00 2 1MBNL 8<br />

ATOM 8 N LEU 2 -1.700 15.100 16.000 CB, 1.00 CG1, 0.00 CG2 – 1 Seitenkette<br />

1MBN 79<br />

ATOM 9 CA LEU 2 -.900 14.100 16.700 1.00 0.00 1MBN 80<br />

ATOM 10 C LEU 2 -1.000 13.900 18.300 1.00 0.00 1MBN 81<br />

ATOM 11 O LEU 2 -.900 14.900 19.000 1.00 0.00 1MBN 82<br />

ATOM 12 CB LEU 2 .600 14.200 16.500 1.00 0.00 1MBN 83<br />

ATOM 13 CG LEU 2 1.100 14.300 15.100 1.00 0.00 1 1MBN 84<br />

ATOM 14 CD1 LEU 2 .400 15.500 14.400 1.00 0.00 1 1MBNL 9<br />

Record- Nummer + Name +<br />

typ Name des Nummer<br />

Atoms des Rests<br />

BALLView<br />

X Y Z<br />

Koordinaten<br />

10


Threading<br />

Gesucht<br />

Zuordnung der Zielsequenz zu Positionen in<br />

der Schablonenstruktur<br />

) Sequenz-Struktur-Alignment<br />

CCP vs. CP<br />

Beispiel<br />

Grau: 1IVM<br />

Gelb: 1IVM gethreaded auf 1LZY<br />

...LGFCYWS...<br />

...ILVGCIL...<br />

Lengauer, Zimmer, In: <strong>Bioinformatics</strong>: From Genomes to Drugs, T. Lengauer (Hrsg.), Wiley, 2002<br />

Blau: 1LZY<br />

Gelb: 1IVM gethreaded auf 1LZY<br />

12


ROSETTA<br />

• Modell<br />

– Torsionswinkelraum, reduziert auf<br />

Fragmente<br />

– Seitenketten auf C β reduziert<br />

• Potenzialfunktion<br />

– Wahrscheinlichkeitsbasiert (Bayes-Ansatz)<br />

• Algorithmus<br />

– Simulated Annealing:<br />

MMC mit linear sinkender Temperatur<br />

– Feste Anzahl Schritte (10000)<br />

ROSETTA – Ergebnisse CASP5<br />

Loop-Datenbanken<br />

• Clustering liefert<br />

große Zahl sehr<br />

ähnlicher Fragmente<br />

• Cluster werden<br />

üblicherweise auf<br />

einzelne<br />

Repräsentanten<br />

reduziert<br />

• Methoden<br />

– Hierarchisches<br />

Clustering<br />

– Nächste Nachbarn<br />

Fechteler, Dengler, Schomburg, J. Mol. Biol. (1995), 253, 114-131<br />

13


Rotamere<br />

• Torsionswinkel werden nicht<br />

unabhängig voneinander<br />

angenommen<br />

• Es existieren ausgezeichnete<br />

Winkelbereiche die Konformeren<br />

im Torsionsraum entsprechen<br />

• Da diese Konformere durch<br />

Rotation um Torsionswinkel<br />

entstehen, nennt man sie Rotamere<br />

Rotamere von LYS<br />

• Rotamere:<br />

Seitenkettenkonformationen<br />

minimaler Energie<br />

Was Ihnen vorenthalten wurde…<br />

• Sequenzanalyse<br />

– Assemblierung von Genomen<br />

– Genomvergleich<br />

– RNA-Struktur<br />

– Metagenomik<br />

– …<br />

• Expressionsanalyse<br />

– Transkriptomik (Microarrays)<br />

– Proteomik<br />

– …<br />

• Systembiologie<br />

– Regulatorische Netzwerke<br />

– Interaktomik<br />

– Metabolomik<br />

– …<br />

• Strukturbioinformatik<br />

– Proteinähnlichkeit<br />

– Molecular Modeling<br />

– Wirkstoffentwurf<br />

– Protein-Protein<br />

Interaktionen<br />

– …<br />

• Sonstiges<br />

– Immunoinformatik<br />

– Populationsdynamik<br />

– …<br />

Weiterführende Veranstaltungen<br />

• Vorlesung „Informatik I + II“ (WS/SS)<br />

• Vorlesungen „Drug Design 1“ und „Drug Design 2“ (WS<br />

10/11, SS 11, Englisch)<br />

• Vorlesung „Computational Immunomics“<br />

(SS 10, Englisch)<br />

• Praktikum „<strong>Applied</strong> Structure-Based Drug<br />

Design“ (Blockprakt., jedes Semester)<br />

• Vorlesung Grundlagen der <strong>Bioinformatik</strong> (jedes SS)<br />

• Vorlesung <strong>Bioinformatik</strong> I + II (WS/SS)<br />

• Praktikum Datenintegration (Blockprakt.)<br />

14

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!