Falk Schubert — ProML Allgemein ProML — Protein Markup Language • Diplomarbeit von Daniel Hanisch, Oktober 2000 • aktuelle Version 1.2, wird aber nicht weiterentwickelt • Ziel: effiziente, einfache Speicherung von Proteindaten • Darstellung von Proteinfamilien und ihrer Substrukturen • für effizienteres Threading und Clustering • über CSS in neueren Browsern darstellbar Falk Schubert — ProML Proteine in der Informatik Was sind Proteine? • Bausteine des Lebens • Hauptbestandteil jeder Zelle (50%) • Makromoleküle (Polymere) • Primär-, Sekundär-, Tertiärstruktur • Aminosäuren sind Grundbausteine der Primärstruktur • 100 bis 4500 Aminosäuren • durch Erbgut kodiert • Produkt der Translation Falk Schubert — ProML • hohe Variabilität • Schlüsselrolle in intra- und interzellulären Prozessen • Aminosäuren über Peptidbindung verbunden Proteine in der Informatik Falk Schubert — ProML Proteine in der Informatik Falk Schubert — ProML Proteine in der Informatik • verschiedene Eigenschaften von Aminosäuren • ähnliche Aminosäuren oft austauschbar • Tertiärstruktur bestimmt Funktionsweise • Funktion durch Schlüssel-Schloß-Prinzip (geometrisch, chemisches, Induced-Fit vs. Rigid Body) • Teilstrukturen der Sekundärstruktur: α-Helices, β-Strands und Loops • Primärstruktur bestimmt Tertiärstruktur Falk Schubert — ProML Proteine in der Informatik Falk Schubert — ProML Anwendungen in der Informatik Röntgenkristallographie • Linus Pauling (1951) • Protein in Kristallform • Röntgenstrahlen durchleuchten Kristall • Atome beugen Röntgenstrahlen • Berechnung der Atomkoordinaten aus Ablenkung Falk Schubert — ProML Anwendungen in der Informatik Strukturvorhersage • aus gegebener Primärstruktur berechne Tertiärstruktur • neuronale Netze • Hidden-Markov-Modelle • Drug-Design • verschiedene Dockings: Protein-Protein, Protein-Ligand, Protein-DNA • Protein-Protein-Docking: Protein A + Protein B ⇒ Komplex AB Falk Schubert — ProML Anwendungen in der Informatik Strukturvergleich Was soll gespeichert werden? Wie soll etwas gespeichert werden? Falk Schubert — ProML Anwendungen in der Informatik Was soll gespeichert werden? • Atomkoordinaten • Auflösung der Koordinaten • Info über Untersuchungsmethode • Aminosäuresequenz • allgemeine Infos (Verfasser, Berichte, . . . ) • Bindungen Falk Schubert — ProML Anwendungen in der Informatik Wie soll etwas gespeichert werden? • abhängig von Anwendung: Visualisierung, Berechnungen, Strukturvergleich • flexibel, damit ein Format für alle Anwendungen • Gruppierung der viele Informationen • effizientes Finden/Auslesen der Informationen • erweiterbar für zukünftige Anwendungen Strukturvorhersage, Energie- Falk Schubert — ProML Anwendungen in der Informatik Alternativen • PDB, mmCif (flat file) • BioML, CML, PROXIML (XML) • Informationen zum Teil in Fließtext • viele existierende Parser für bestehende Programme • Parseraufwand und Parserfehler Falk Schubert — ProML ProML ProML Eine Protein-Beschreibungssprache für effizientes Threading und Clustering Falk Schubert — ProML ProML Struktur eines ProML-Dokumentes • gültig für ProML.dtd“ ” • Element PROML ist Wurzel des Elementbaumes • zwei Abschnitte: IDENTITY-Sektion und DATA-Sektion • in IDENTITY-Section ein odere mehrere Proteine (Referenzeinheiten) definiert • in DATA-Section Eigenschaften der Referenzeinheiten definiert • thematische Sortierung der Eigenschaften durch STRUCTURAL-Elemente • innerhalb STRUCTURAL-Elemente sind Eigenschaftbäume Falk Schubert — ProML Struktur eines ProML-Dokumentes IDENTITY-Section • Definition gespeicherter Proteine • kleinste Sinneinheiten = Referenzeinheiten • Definition in Baumstruktur (Referenzbaum) • Gruppierung möglich (Referenzgruppe) • Angabe der Proteinanzahl • Länge der Primärsequenz • keine numerische Angaben in XML Falk Schubert — ProML Struktur eines ProML-Dokumentes ProML-Element Bedeutung IDENTITY Wurzel des Referenzbaumes REFSYSTEM Blatt des Referenzbaumes REFGROUP GROUP Innerer Knoten des Referenzbaumes · Gruppe von Referenzeinheiten DSCR Textuelle Beschreibung SEQUENCELENGTH Länge der Referenzsequenz NUMSEQS Anzahl der Sequenzen Falk Schubert — ProML Struktur eines ProML-Dokumentes <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE PROML SYSTEM ’file:///home/falk/studium/ws2002/xml/ProML.dtd’> <?xml-stylesheet href=’file:///home/falk/studium/ws2002/xml/ProML.css’ ... <PROML> <IDENTITY id="PDB_1amp" pdbId="1amp"> <DSCR> Demofile containing 2 pdb-files </DSCR> <REFGROUP id="10"> <DSCR> one group containing 2 files </DSCR> <REFSYSTEM id="100"> <DSCR>Generated from PDB-Entry 1amp </DSCR> <SEQUENCELENGTH n="291" /> </REFSYSTEM> <REFSYSTEM id="101"> <DSCR>modified 1amp </DSCR> </REFSYSTEM> </REFGROUP> </IDENTITY> ... </PROML> Falk Schubert — ProML Struktur eines ProML-Dokumentes <!ELEMENT PROML (IDENTITY, DATA)> <!ATTLIST PROML xmlns:xlink CDATA #FIXED ’http://www.w3.org/1999/xlink’ > <!ELEMENT IDENTITY (DSCR, (NUMSEQS? | (REFGROUP | REFSYSTEM)+ ), SEQUENCELENGTH?, GROUP* )> <!ATTLIST IDENTITY id ID #IMPLIED pdbId CDATA #IMPLIED verboseId CDATA #IMPLIED> <!ELEMENT REFSYSTEM (DSCR, NUMSEQS?)> <!ATTLIST REFSYSTEM id ID #IMPLIED> <!ELEMENT REFGROUP (DSCR, ( REFGROUP | REFSYSTEM )+)> <!ATTLIST REFGROUP id ID #IMPLIED> <!ENTITY % group ’(ALLSEQS | GREF | SREF | OUTREF | GROUP)’> <!ELEMENT GROUP (DSCR?, (%group;)+ )> <!ATTLIST GROUP id ID #IMPLIED> ... Falk Schubert — ProML Struktur eines ProML-Dokumentes DATA-Section • Aussagen über Objekte aus IDENTITIY-Section • baumartige Strukurierung im Themenbaum • einige Knoten schon vorgegeben • einige Eigenschaftbäume schon vorgegeben Falk Schubert — ProML Struktur eines ProML-Dokumentes ProML-Element Bedeutung DATA Wurzel des Themenbaums STRUCTURAL Knoten des Themenbaums PRIMSTRUCT konstanter Knoten des Themenbaums PTREE Wurzel des Eigenschaftsbaums CONSENSUS Knoten des Eigenschaftsbaums SUBGRAPH Blätter des Eigenschaftsbaums UNION Blätter des Eigenschaftsbaums Falk Schubert — ProML Struktur eines ProML-Dokumentes <DATA> <PRIMSTRUC> <PRIMSEQUENCE> <PS_PTREE> <PS_CONSENSUS> <ALLSEQS /> <PREF ref="100"/> <AMINOLIST>MPPITQQATVTAWLPQVDASQITTTTTTTTTAAAATTTTTT... </PS_CONSENSUS> <PS_CONSENSUS> <ALLSEQS /> <PREF ref="101"/> <AMINOLIST>MPPITQQATVTAWLPQVDASQITGTISSLESFTNRFYTTTS... </PS_CONSENSUS> </PS_PTREE> </PRIMSEQUENCE> </PRIMSTRUC> ... Falk Schubert — ProML ... <STRUCTURAL id="222" desc="beliebige Eigenschaft"> <SREF ref="100"/> <CATH num="1" c="2" a="3" t="4" h="5" id="9999"/> </STRUCTURAL> ... </DATA> Struktur eines ProML-Dokumentes Falk Schubert — ProML Struktur eines ProML-Dokumentes <!ELEMENT DATA (PRIMSTRUC?, SECSTRUC?, TERSTRUC?, GEOMCONSTR?, STRUCTURAL*)> <!ENTITY % customPTree ’| PTREE’> <!ENTITY % pTrees ’(PTREE | PS_PTREE | SS_PTREE | DC_PTREE | ... <!ENTITY % singleProp ’((%group;) , (%anyProperty;))’> <!ELEMENT STRUCTURAL (STRUCTURAL* | %singleProp; | (%pTrees;)* )> <!ATTLIST STRUCTURAL id ID #IMPLIED desc CDATA #IMPLIED> <!ENTITY % propNode ’(CONSENSUS | UNION | SUBGRAPH)’> <!ELEMENT PTREE ( DSCR?, %propNode; )> <!ATTLIST PTREE allowTags CDATA #FIXED "%anyProperty;"> <!ENTITY % propNodeTemplate ’(%group;)’> <!ELEMENT CONSENSUS (%propNodeTemplate; , (%anyProperty; | PREF)* , ... <!ELEMENT UNION (%propNodeTemplate; , (%anyProperty; | PREF)*)> <!ELEMENT SUBGRAPH (%propNodeTemplate; , GPMAT , (%anyProperty; | PREF)*)> ... Falk Schubert — ProML Datentypen in ProML Identifikatoren und Referenzen • realisiert über Attribute von ProML-Elementen (ID-Attribute) • verschiedene Referenzelemente: ? GREF ist Referenz für Gruppen ? PREF ist Referenz für Eigenschaft im Eigenschaftsbaum ? weitere sind IDREF, SREF, OUTREF Falk Schubert — ProML <GROUP id="1"> <GROUP id="11"> <SREF ref="aad2"/> <SREF ref="aad3"/> <SREF ref="aad4"/> <SREF ref="aad5"/> <GROUP/> <OUTREF ref="pdb2"/> <GROUP/> <!ENTITY % group ’(ALLSEQS | GREF | SREF | OUTREF | GROUP)’> <!ELEMENT GROUP (DSCR?, (%group;)+ )> <!ATTLIST GROUP id ID #IMPLIED> <!ELEMENT ALLSEQS EMPTY> Datentypen in ProML Falk Schubert — ProML Datentypen in ProML einfache Inhaltstypen • mit DTD keine Datentypen spezifizierbar • Abhilfe“ durch spezielle Elemente ” • ganze Zahlen <!ELEMENT INT EMPTY> <!ATTLIST INT n NMTOKEN #REQUIRED> • Fließkommazahlen <!ELEMENT DOUBLE EMPTY> <!ATTLIST DOUBLE n NMTOKEN #REQUIRED> Falk Schubert — ProML <!ELEMENT PROB EMPTY> <!ATTLIST PROB n NMTOKEN #REQUIRED> • Fließtext <!ELEMENT TEXT (#PCDATA)> • Boolean <!ENTITY % boolean ’(TRUE | FALSE)’> <!ELEMENT TRUE EMPTY> <!ELEMENT FALSE EMPTY> Datentypen in ProML Falk Schubert — ProML <RELATION> <RE> <INT n="19" /> <RE/> <RE> <DOUBLE n="3.14" /> <RE/> <RELATION/> Datentypen in ProML Falk Schubert — ProML Datentypen in ProML Sequenzausschnitte und -positionen • Referenzierung bestimmter einzelner Positionen mit SP-Element • Referenzierung bestimmter Sequenzabschnitten mit SI-Element • semantische Bedingungen müssen extern geprüft werden: 0 ≥ ps 0 ≥ p,pe < SEQU EN CELEN GT H Falk Schubert — ProML <STRUCTURAL id="StructuralCore"> <SREF ref="X1ubsA" /> <PROPSEQ> <SI ps="16" pe="23" /> <SI ps="32" pe="51" /> <SI ps="80" pe="101" /> <SI ps="109" pe="165" /> <SI ps="170" pe="177" /> <SI ps="191" pe="236" /> <SI ps="256" pe="266" /> </PROPSEQ> </STRUCTURAL> Datentypen in ProML Falk Schubert — ProML <!ENTITY % scope ’(SP | SI | GLOBALSCOPE)’> <!ELEMENT SP EMPTY> <!ATTLIST SP id ID #IMPLIED p NMTOKEN #REQUIRED> <!ELEMENT SI EMPTY> <!ATTLIST SI id ID #IMPLIED ps NMTOKEN #REQUIRED pe NMTOKEN #REQUIRED> <!ELEMENT GLOBALSCOPE EMPTY> Datentypen in ProML Falk Schubert — ProML Datentypen in ProML Dreidimensionale Koordinaten • zur Speicherung von Atomkoordinaten • in Listen zusammengefaßt <!ELEMENT C3D EMPTY> <!ATTLIST C3D X NMTOKEN #REQUIRED Y NMTOKEN #REQUIRED Z NMTOKEN #REQUIRED> <!ELEMENT C3DSEQ ((C3D | GAP)*)> <!ATTLIST C3DSEQ type CDATA ’CBeta’ id ID #IMPLIED> Falk Schubert — ProML Datentypen in ProML Distanz • Definition von Abständen als geometrische Eigenschaft • DISTINTERVAL-Element erlaubt Distanzschwankungen <!ENTITY % distanceUnit ’(Angstroem | nm | pm)’> <!ENTITY % distance ’(DIST | DISTINTERVAL)’> <!ELEMENT DIST EMPTY> <!ATTLIST DIST n NMTOKEN #REQUIRED unit %distanceUnit; ’Angstroem’> <!ELEMENT DISTINTERVAL EMPTY> <!ATTLIST DISTINTERVAL ds NMTOKEN #REQUIRED de NMTOKEN #REQUIRED> Falk Schubert — ProML Datentypen in ProML Sequenzen • wegen hohen Speicherbedarfes 3 verschiedene Sequenztypen • Eigenschaftslisten: beliebige ProML-Elemente • Listsequenzen: Zeichenkette <!ELEMENT AMINOLIST (#PCDATA)> <!ATTLIST AMINOLIST id ID #IMPLIED> • Scope-Sequenzen: Liste von Listsequenzen mit Positionsangaben Falk Schubert — ProML Datentypen in ProML weitere Eigenschaften • multiple alignments: faßt mehrere Sequenzen zusammen • Frequenzprofile: komprimierter Vergleich von Sequenzen • Relationen: allgemeiner Eigenschaftstyp Falk Schubert — ProML Anwendung auf relevante Proteinmerkmale Primärstrukur • grundlegendste Eigenschaft von Proteinen • als Listsequenzen realisiert • AMINOLIST-Element vordefiniert • zusätzliche Angabe von ProSite-Mustern Falk Schubert — ProML Anwendung auf relevante Proteinmerkmale <!ELEMENT PROSITE (TEXT, SI?)> <!ATTLIST PROSITE id ID #IMPLIED> <!ELEMENT PROSITESEQ <!ATTLIST PROSITESEQ id ID ((PROSITE | GAP)*)> #IMPLIED> <!ELEMENT PROSITESECT (PR_PTREE*)> <!ATTLIST PROSITESECT xmlns:xlink CDATA #FIXED ’http://www.w3.org/1999/xlink’ xlink:type CDATA #FIXED ’simple’ xlink:href CDATA #FIXED ’http://www.expasy.ch/prosite’> • direkte Links zur PROSITE -Datenbank möglich Falk Schubert — ProML Anwendung auf relevante Proteinmerkmale Sekundärstrukur • Kategorisierung der Sekundärstruktur (Loop, α-Helix, β-Blatt) • vordefinierte Elemente: SECSCSEQ, SECFREQPROF, SECMULTALIGN • ähnlich wie Primärsequenz gespeichert <!ELEMENT STE ( SI? )> <!ATTLIST STE type CDATA ’Helix’ id ID #IMPLIED> Falk Schubert — ProML <SECTOPSEQ> <STE type="Helix"> <SI ps="170" pe="177" /> <STE/> <STE type="Loop"> <SI ps="177" pe="199" /> <STE/> <STE type="Beta"> <SI ps="400" pe="477" /> <STE/> <SECTOPSEQ/> • werden in Eigenschaftssequenz gespeichert Anwendung auf relevante Proteinmerkmale Falk Schubert — ProML Anwendung auf relevante Proteinmerkmale Tertiärstrukur • bestimmt durch Atomkoordinaten • Strukturinformation als Gruppierungskriterium • meist nicht alle Atomkoordinaten gespeichert • als Eigenschaftssequenz realisiert <!ELEMENT C3DSEQ ((C3D | GAP)*)> <!ATTLIST C3DSEQ type CDATA ’CBeta’ id ID #IMPLIED> • Typ der Atomkoordinaten spezifizierbar Falk Schubert — ProML • CATH-Klassifikation berücksichtigt • zur Unterstützung von Threading -Verfahren <!ELEMENT CATH EMPTY> <!ATTLIST CATH num CDATA #REQUIRED C CDATA #IMPLIED A CDATA #IMPLIED T CDATA #IMPLIED H CDATA #IMPLIED id ID #IMPLIED> Anwendung auf relevante Proteinmerkmale Falk Schubert — ProML Anwendung auf relevante Proteinmerkmale Geometrische Bedingungen • schränken Kandidatenmenge ein • Schwefelbrücken stabilisieren Proteine und sind Indikatoren • ProML-Element als Relation zwischen 2 Aminosäuren <!ELEMENT SB ((RELTABLE | RE+) )> <!ATTLIST SB allowTags CDATA #FIXED ’SP, SP’ id ID #IMPLIED> Falk Schubert — ProML Anwendung auf relevante Proteinmerkmale • Schwefelbrücken auch zueinander in Beziehung • dient zur Klassifikation • dafür vordefinierte Eigenschaftsbäume <!ENTITY % sb_propNode ’(SB_CONSENSUS | SB_UNION | SB_SUBGRAPH)’> <!ELEMENT SB_PTREE (DSCR?, %sb_propNode; )> • allgemeine Distanzbedingungen lassen sich angeben <!ELEMENT DISTCONSTR ((RELTABLE | RE+) )> <!ATTLIST DISTCONSTR allowTags CDATA #FIXED ’SP, SP, DIST’ id ID #IMPLIED> Falk Schubert — ProML Operationen auf ProML-Dokumenten Operationen auf ProML-Dokumenten • bessere Verarbeitung von ProML-Dokumenten in Programmen • Knoten in Eigenschaftsbäumen je nach Anforderung konvertierbar • Mechanismen zur Vereinigung von ProML-Dokumenten • Vereinigung von IDENTITY-Sections einfach • Vereingung von Eigenschaftsbäumen zusätzliche Informationen • Extrahierung von Teilen aus komplexem ProML-Dokument möglich Falk Schubert — ProML Vorteile vs. Nachteile Vorteile • weitere spezielle ProML-Elemente leicht hinzufügbar • Daten von mehreren Proteinen in einem Dokument • Vergleich von mehreren Proteinen in einem Dokument • gute Lesbarkeit und Editierbarkeit Falk Schubert — ProML Vorteile vs. Nachteile Nachteile • zum Teil starker Overhead ⇒ speicherintensiv • viele redundante Definitionen • viele semantische Bedingungen müssen extern überprüft werden