Zugriffsmethoden in BioDatenbanken Vorlesungsplan 1. 2. Übersicht Datenmodelle • • • 3. 4. 5. 6. 7. Textdateien, Entry-Modell Relationale DB XML Genom-DB Genexpressions-DB Protein-DB Pathway-DB Publikations-DB 1. 8. 9. 10. OWL & Ontologien Zugriff und Anfragesysteme Datenintegration von Bio-DB Webservices Sommersemester 2005/06 Sommersemester 2005/06 Alexander Hinneburg Seite 539 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Martin-Luther-Universität Halle-Wittenberg Navigation Navigation: Beispiel Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 541 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 540 Seite 542 Swiss-Prot: Eingabe Sommersemester 2005/06 Alexander Hinneburg Swiss-Prot: Ausgabe (Auszug) Seite 543 Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 544 GDB-Eintrag PIR-Eintrag Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 545 * http://gdbwww.dkfz-heidelberg.de/ Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 546 Gene-Card DMD OMIM •SNPs, Mutationen, ... •Link u.a. zu OMIM ID: 300377 Sommersemester 2005/06 Sommersemester 2005/06 Alexander Hinneburg Seite 547 Sommersemester 2005/06 Alexander Hinneburg Seite 548 Martin-Luther-Universität Halle-Wittenberg Martin-Luther-Universität Halle-Wittenberg PDB Stichwortsuche / Suchformulare Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 549 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 550 SRS (Sequence Retrieval System) Sommersemester 2005/06 Alexander Hinneburg Seite 551 SRS: Konzept (1) Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg SRS: Konzept (2) Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 552 Martin-Luther-Universität Halle-Wittenberg SRS: Konzept (3) Seite 553 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 554 SRS: Zugriff auf relationale Datenbanken Sommersemester 2005/06 Alexander Hinneburg Seite 555 SRS: Datenzugriff (1) Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 556 Martin-Luther-Universität Halle-Wittenberg SRS - Datenzugriff (2) SRS Anfrage Sprache • Anfragen können an vielen Stellen direkt formuliert werden, z.B. Results -> Search using a query expression • Anfrage-Syntax – Stringsuche: [Menge-Mengenattribut:Suchmuster], Menge kann eine Datenbank, DB-Gruppe, Index, Index-Gruppe oder Suchausdruck sein – z.B. [pir-des:elestase], oder [swissprot-AllText:duchenne*] – Wildcards: [swissprot-aut:sanger,f*!coulson,a*] – Reguläre Ausdrücke: [swissprot-aut:/mue?ller/] – Zahlenbereiche: [swissprot-SeqLength#400:500] – mehrere DBs: [{swissprot swissnew sptrembl}-des:kinase], [dbs={swissprot swissnew sptrembl}-des:kinase] &[dbs-org:human] Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 557 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 558 SRS Anfrage Sprache SRS Anfrage Sprache • Einfache Anfragen kombinieren: – operand operator operand … – z.B. verlinken: [swissprot-AllText:duchenne*] > pdb • Mehrfache Links • Operatoren – logisch: | oder, & und, ! aber nicht – Links: • > liefere die linken Einträge, < liefere die rechten Einträge • Komplexe Verweise: (q = [{swissprot swissnew}des:kinase])!(q<swissnew) – Hierarchische Suche • >^ liefere Teilbaum-Einträge definiert durch linke Seite • >_ liefere Blatt-Einträge des Teilbaums definiert durch linke Seite Sommersemester 2005/06 Alexander Hinneburg Seite 559 – [swissprot-AllText:duchenne*] >omim OMIM-Einträge zu denen man direkt von SwissProt-Einträgen mit Begriff “duchenne” gelangt – [swissprot-AllText:duchenne*] >pdb >omim wie oben, doch SwissProt und OMIM müssen über PDB verlinkt sein – [swissprot-id:acha_human] > prosite > swissprot Suche nach Eintrag “acha_human”, Link nach Prosite (Protein Fam.) “neuronal acetylcholine receptors”, Link zu Swissprot Einträgen => Sequenzen aus einer Proteinfamilie – [swissprot-id:gshr_caeel] > prodom > pdb kein direkt Link von „gshr_caeel” zur PDB, aber über ProDom (Protein Domainen), Ergebnis homologe Proteine zu „gshr_caeel” Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg SRS Anfrage Sprache – [swissprot-keywords:transmembrane] alle Einträge mit Keyword Transmembr. – [swissprot-ftkey:transmem] Menge von Untereinträgen mit Typ transmem • Einträge und Untereinträge können über Links kombiniert werden – [swissprot-org:human] > [swissprot-ftkey:transmem] Menge der Transmembransegemente in menschlichen Proteinen – [swissprot-org:human] < [swissprot-ftkey:transmem] Menge der menschlichen Proteine mit Transmembransegmenten – [swissprot-ftkey:transmem] > parent Konvertierung der Untereinträge zu den zugehörigen Einträgen – [swissprot-ftkey:transmem] > parent | [swissprot-key:transmembrane] Einträge mit Transmembransegementen oder mit dem Schlüsselwort “transmembrane” Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 560 SRS Anpassung • Einträge und Untereinträge Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 561 • Komplizierte Anfragen können vordefiniert werden • Perl-ähnlich Sprache ICARUS • Beispiel: Suche einen Swissprot-Eintrag nach Zugriffsnummer oder Beschreibung $CannedQuery:[sampleQuery prompt:|Sample canned query options:{ $AppOpt:[ac prompt:'Access number' defStr: 'Q1'] $AppOpt:[des prompt:'Description' defStr:'cancer'] } queryStr: @"[swissprot-des:($des)*]|[swissprot-acc:($ac)*]" ] • Das @ zeigt, das die Anfrage zur Laufzeit bearbeitet wird. • Datei mit Anfragedefinition wird ähnlich wie ein HTML Link in SRS-Seite eingebunden. Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 562 Aufruf von SRS aus HTML Seiten Schnittstellen für Analyse-Tools • Wegtz kann als CGI Programm direkt als HTML Link aufgerufen werden • Einfaches Anzeigen von Einträgen – wgetz?-e+[embl-id:rnelas] – wgetz?-e+[{embl%20emblnew}-acc:X012345] – Die Option –e lässt wegtz volle Einträge anzeigen • Anzeigen von Mengen – wgetz?[embl-all:elastase] – wgetz?swissprot – wgetz?swissprot+-lv+30+-bv+31 (-lv Anzahl Einträge pro Seite, -bv erster Eintrag – wgetz?swissprot+-lv+30+-bv+31+-view+SequenceSimple zeigt ZusatzInfos mit Hilfe eines vordef. Views – wgetz?swissprot+-lv+30+-bv+31+-view+SequenceSimple+-ascii+rs+||+-cs+@@ Wie oben aber als HTML Tabelle Sommersemester 2005/06 Alexander Hinneburg Seite 563 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Martin-Luther-Universität Halle-Wittenberg Eigenschaften von Internet Functions (IFs) Beispiel-Szenario Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 565 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 564 Seite 566 Internet Function Definition Language (IFDL) Sommersemester 2005/06 Alexander Hinneburg Hyper Text Query Language (HTQL) Seite 567 Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg Beispiel für IF-Ausführung (GenBank) Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 568 Martin-Luther-Universität Halle-Wittenberg Seite 569 Beispiel für IF-Ausführung (2) Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 570 Beispiel für IF-Ausführung (3) Sommersemester 2005/06 Alexander Hinneburg Seite 571 Anwendung: LifeDB Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg LifeDB Anfrageverarbeitung: Architektur Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 572 Martin-Luther-Universität Halle-Wittenberg Seite 573 LifeDB Anfrageverarbeit.: Architektur (2) Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 574 RUDF/IF: Zusammenfassung Sommersemester 2005/06 Alexander Hinneburg Seite 575 Deklarative Anfragesprachen in Bio-Datenbanken Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg Beispiel: BioSQL Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 576 Martin-Luther-Universität Halle-Wittenberg BioSQL Core Seite 577 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 578 BioSQL Feature BioSQL und BioPython • BioSQL liefert API für mehrere Programmiersprachen Python, Perl, Ruby, Java, ... • Zugriff auf BioSQL DB aus Python Sommersemester 2005/06 Sommersemester 2005/06 Alexander Hinneburg Seite 579 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Martin-Luther-Universität Halle-Wittenberg DiscoveryLink DiscoveryLink Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 581 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 580 Seite 582 DiscoveryLink • DiscoveryLink Wrapper sind in C++ implementiert und werden dynamisch geladen • Anfragen werden mittels SQL formuliert • Definition eines Servers auf den mittels Wrapper zugegriffen wird • Schemadefinition eines Wrappers Sommersemester 2005/06 Alexander Hinneburg Seite 583 Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg DiscoveryLink • Anfragen werden optimiert • Erste Phase: Zugriff auf einzelne Tabellen optimieren • Predikate an Datenquellen delegieren Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 584 Martin-Luther-Universität Halle-Wittenberg Seite 585 DiscoveryLink • Zweite Phase: Joins zwischen Tabellen optimieren (links -> rechts) Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 586 DiscoveryLink DiscoveryLink • Komplexere Anfragen Sommersemester 2005/06 Alexander Hinneburg Seite 587 Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg SQL92: Bewertung für Bio-Datenbanken Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 588 Martin-Luther-Universität Halle-Wittenberg Seite 589 Typsystem von SQL:2003 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 590 Large Objects Sommersemester 2005/06 Alexander Hinneburg Large Objects (2) Seite 591 Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg SQL/MM (Multimedia and Applications Packages)* Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 592 Martin-Luther-Universität Halle-Wittenberg SQL/MM (2) Seite 593 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 594 SQL/MM (3) Sommersemester 2005/06 SQL:2003: Bewertung Alexander Hinneburg Seite 595 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Martin-Luther-Universität Halle-Wittenberg XML-basierte Anfragesprachen XQuery: FLWOR Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 597 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 596 Seite 598 XQuery: Bio-Beispiel XQuery: FLWOR (2) Sommersemester 2005/06 Alexander Hinneburg Seite 599 Sommersemester 2005/06 Martin-Luther-Universität Halle-Wittenberg XQuery: Bio-Beispiel (2) Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Alexander Hinneburg Seite 600 Martin-Luther-Universität Halle-Wittenberg XQuery: Bio-Beispiel (3) Seite 601 Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 602 XML/XQuery: Bewertung Sommersemester 2005/06 Alexander Hinneburg Martin-Luther-Universität Halle-Wittenberg Seite 603