Bioinformatik für Biochemiker - Applied Bioinformatics Group ...
Bioinformatik für Biochemiker - Applied Bioinformatics Group ... Bioinformatik für Biochemiker - Applied Bioinformatics Group ...
Bioinformatik für Biochemiker Oliver Kohlbacher WS 2009/2010 15. Zusammenfassung Abt. Simulation biologischer Systeme WSI/ZBIT, Eberhard Karls Universität Tübingen Bioinformatik – Definition Bioinformatik verwendet Methoden der Mathematik, Statistik und Informatik zur Analyse und Interpretation von biologischen, biochemischen und biophysikalischen Daten. Bioinformatik Mathematik, Informatik Lebens- wissenschaften Bioinformatik Physik, Chemie 1
- Seite 2 und 3: Bioinformatik - Gebiete • Sequenz
- Seite 4 und 5: O-Notation • Die O-Notation sagt
- Seite 6 und 7: Dynamische Programmierung • Die 0
- Seite 8 und 9: Problemdefinition Multiples Sequenz
- Seite 10: PDB - Der erste Eintrag! PDB-Format
- Seite 13 und 14: ROSETTA • Modell - Torsionswinkel
<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