ProML — Protein Markup Language

Werbung
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
Herunterladen