Biologiska databanker Hur lagras informationen? (hög nivå) Hur accessar man informationen? (användarnivå) • biologisk data i elektronisk format • exempel: SWISS-PROT, EMBL, DDBJ, PDB, GENBANK, KEGG, ACEDB • används dagligen i forskningen 1 1 tgctacccgc gcccgggctt ctggggtgtt ccccaaccac ggcccagccc tgccacaccc 61 cccgcccccg gcctccgcag ctcggcatgg gcgcgggggt gctcgtcctg ggcgcctccg 121 agcccggtaa cctgtcgtcg gccgcaccgc tccccgacgg cgcggccacc gcggcgcggc 181 tgctggtgcc cgcgtcgccg cccgcctcgt tgctgcctcc cgccagcgaa agccccgagc 241 cgctgtctca gcagtggaca gcgggcatgg gtctgctgat ggcgctcatc gtgctgctca 301 tcgtggcggg caatgtgctg gtgatcgtgg ccatcgccaa gacgccgcgg ctgcagacgc 361 tcaccaacct cttcatcatg tccctggcca gcgccgacct ggtcatgggg ctgctggtgg 421 tgccgttcgg ggccaccatc gtggtgtggg gccgctggga gtacggctcc ttcttctgcg 481 agctgtggac ctcagtggac gtgctgtgcg tgacggccag catcgagacc ctgtgtgtca 541 ttgccctgga ccgctacctc gccatcacct cgcccttccg ctaccagagc ctgctgacgc 601 gcgcgcgggc gcggggcctc gtgtgcaccg tgtgggccat ctcggccctg gtgtccttcc 661 tgcccatcct catgcactgg tggcgggcgg agagcgacga ggcgcgccgc tgctacaacg 721 accccaagtg ctgcgacttc gtcaccaacc gggcctacgc catcgcctcg tccgtagtct 781 ccttctacgt gcccctgtgc atcatggcct tcgtgtacct gcgggtgttc cgcgaggccc 841 agaagcaggt gaagaagatc gacagctgcg agcgccgttt cctcggcggc ccagcgcggc 901 cgccctcgcc ctcgccctcg cccgtccccg cgcccgcgcc gccgcccgga cccccgcgcc 961 ccgccgccgc cgccgccacc gccccgctgg ccaacgggcg tgcgggtaag cggcggccct 1021 cgcgcctcgt ggccctacgc gagcagaagg cgctcaagac gctgggcatc atcatgggcg 1081 tcttcacgct ctgctggctg cccttcttcc tggccaacgt ggtgaaggcc ttccaccgcg 1141 agctggtgcc cgaccgcctc ttcgtcttct tcaactggct gggctacgcc aactcggcct 1201 tcaaccccat catctactgc cgcagccccg acttccgcaa ggccttccag ggactgctct 1261 gctgcgcgcg cagggctgcc cgccggcgcc acgcgaccca cggagaccgg ccgcgcgcct 1321 cgggctgtct ggcccggccc ggacccccgc catcgcccgg ggccgcctcg gacgacgacg 1381 acgacgatgt cgtcggggcc acgccgcccg cgcgcctgct ggagccctgg gccggctgca 1441 acggcggggc ggcggcggac agcgactcga gcctggacga gccgtgccgc cccggcttcg 1501 cctcggaatc caaggtgtag ggcccggcgc ggggcgcgga ctccgggcac ggcttcccag 1561 gggaacgagg agatctgtgt ttacttaaga ccgatagcag gtgaactcga agcccacaat 1621 cctcgtctga atcatccgag gcaaagagaa aagccacgga ccgttgcaca aaaaggaaag 1681 tttgggaagg gatgggagag tggcttgctg atgttccttg ttg Biologiska databanker Forskningsresultat Modell Databank Databankhanteringssystem Frågor Svar behandling av frågor/uppdateringar Access till lagrad data Fysiska databanken 2 3 4 Entity-relationship DEFINITION ACCESSION SOURCE ORGANISM REFERENCE AUTHORS TITLE REFERENCE AUTHORS TITLE Homo sapiens adrenergic, beta-1-, receptor NM_000684 human 1 Frielle, Collins, Daniel, Caron, Lefkowitz, Kobilka Cloning of the cDNA for the human beta 1-adrenergic receptor 2 Frielle, Kobilka, Lefkowitz, Caron Human beta 1- and beta 2-adrenergic receptors: structurally and functionally related receptors derived from distinct genes 5 protein-id source PROTEIN accession m definition Reference n title article-id ARTICLE author 6 Hur lagras informationen? (hög nivå) Hur accessar man informationen? (användarnivå) • • • • Text (IR) Semistrukturerad data Datamodeller (DB) Regler + Fakta (KB) struktur precision Innehåll • Text: filmodell, formell modell, konceptuella modeller (boolesk, vektor) • Databaser: Relationsdatabaser, Objektorienterade databaser • Semistrukturerad data • Kunskapsbaser 7 8 IR - Filmodell: inverterad fil Text - Information Retrieval (IR) • sökning baseras på ord • konceptuella modeller: boolesk, vektor, probabilistisk, … • filmodell: flat fil, inverterad fil, ... inverterad fil anslagningsfil WORD HITS LINK … … … adrenergic 32 … … cloning … 53 … … receptor 22 … … … … DOC# LINK … dokumentfil DOCUMENTS … Doc1 … Doc2 1 5 … 1 2 … 5 … … 9 IR - Filmodell: inverterad fil 10 IR - formell beskrivning • kontollerad vokabulär (eng. controlled vocabulary) • stoplista • stamning (eng. stemming) IR modell: (D,Q,F,R) • D är en mängd av dokumentrepresentationer • Q är en mängd av frågor • F är ett ramverk för dokumentrepresentationer, frågor och deras samband • R tilldelar ett dokument-fråga-par ett reellt tal (rankning) 11 12 IR - konceptuella modeller Booleska modellen Klassikt IR dokumentrepresentation • Boolesk • Vektormodellen • (Probabilistisk) cloning receptor Doc1 adrenergic yes yes no --> (1 1 0) Doc2 no yes no --> (0 1 0) 13 Booleska modellen Booleska modellen frågor : boolesk (and, or, not) Q1: cloning and (adrenergic or receptor) --> (cloning and adrenergic) or (cloning and receptor) Q1: cloning and (adrenergic or receptor) frågor översätts till disjunktiv normalform (DNF) DNF: disjunktion av konjunktioner av ord med eller utan ‘not’ Regler: not not A --> A not(A and B) --> not A or not B not(A or B) --> not A and not B (A or B) and C --> (A and C) or (B and C) A and (B or C) --> (A and B) or (A and C) (A and B) or C --> (A or C) and (B or C) A or (B and C) --> (A or B) and (A or C) 15 Booleska modellen adrenergic cloning receptor yes yes no --> (1 1 0) Doc2 no yes no --> (0 1 0) Q1: cloning and (adrenergic or receptor) Resultat: Doc1 Q2: cloning and not adrenergic --> (0 1 0) or (0 1 1) DNF kompletteras + översätts till samma representation som dokumenten (cloning and adrenergic) or (cloning and receptor) --> (cloning and adrenergic and receptor) or (cloning and adrenergic and not receptor) or (cloning and receptor and adrenergic) or (cloning and receptor and not adrenergic) --> (1 1 1) or (1 1 0) or (1 1 1) or (0 1 1) --> (1 1 1) or (1 1 0) or (0 1 1) 16 Booleska modellen Doc1 --> (1 1 1) or (1 1 0) or (0 1 1) 14 Resultat: Doc2 17 Fördelar • baserad på en intuitiv och enkel formell modell (mängdteori och boolesk algebra) Nackdelar • binära beslut - ett ord är relevant eller inte - ett dokument är relevant eller inte, ingen partiell matchning 18 Booleska modellen adrenergic Vektormodellen (förenklad) cloning receptor Doc1 yes yes no --> (1 1 0) Doc2 no yes no --> (0 1 0) Q (1,1,1) adrenergic Q3: adrenergic and receptor --> (1 0 1) or (1 1 1) Doc1 (1,1,0) Doc2 (0,1,0) cloning Resultat: tom sim(d,q) = d . q |d| x |q| receptor 19 20 Vektormodellen Vektormodellen • Introducerar vikter i dokumentvektorerna (t.ex. Doc3 (0, 0.5, 0)) • Vikterna representerar hur viktigt en term är för beskrivningen av ett dokuments innehåll • Vikterna är positiva reella tal • Om en term inte förekommer i dokumentet, då är vikten = 0 Doc1 (1,1,0) Doc3 (0,0.5,0) cloning Q4 (0.5,0.5,0.5) adrenergic sim(d,q) = d . q |d| x |q| receptor 21 Vektormodellen 22 Vektormodellen • Hur definierar man vikterna? tf-idf • Hur definierar man vikterna? tf-idf dj (w1,j, …, wt,j) wi,j = vikten för term ki i dokument dj = fi,j x idfi term frequency freqi,j: hur ofta förekommer term ki i dokument dj? normaliserad term frequency: fi,j = freqi,j / maxl freql,j 23 24 Vektormodellen Vektormodellen • Hur definierar man vikterna? tf-idf document frequency : i hur många dokument förekommer term ki? • Hur definierar man vikterna för en fråga? rekommendation: q= (w1,q, …, wt,j) wi,q = vikt för term ki i fråga q = (0.5 + 0.5 fi,q) x idfi N = totala antalet dokument ni = antal dokument i vilka ki förekommer inverse document frequency idfi: log (N / ni) 25 Vektormodellen • • - 26 IR - effektivitetsmått Fördelar termviktning förbättrar sökprestanda partiell matchning rankning enligt likhet Nackdel? antagande att termerna förekommer oberoende av varandra Precision = antal hittade dokument som är relevanta antal hittade dokument Recall = antal hittade dokument som är relevanta antal relevanta dokument 27 IR - mått Precision = |RA| / |A| Databaser Relevanta dokument i svarsmängden |RA| • Relationsdatabaser: - modell: tabeller + relationsalgebran - frågespråk (SQL) • Objektorienterade databaser: - modell: fortlevande object, meddelande, inkapsling, ärvning - frågespråk (t.ex. OQL) • System: GDB (R), ACEDB (OO) Recall = |RA| / |R| Relevanta dokument |R| 28 Svarsmängden |A| 29 30 Relationsdatabaser PROTEIN REFERENCE PROTEIN-ID 1 ACCESSION DEFINITION SOURCE PROTEIN-ID ARTICLE-ID NM_000684 Homo sapiens adrenergic, beta-1-, receptor human 1 1 1 2 1 1 1 1 1 1 2 2 2 2 select source from protein where accession = NM_000684; ARTICLE-TITLE ARTICLE-AUTHOR ARTICLE-ID SQL AUTHOR ARTICLE-ID Frielle Collins Daniel Caron Lefkowitz Kobilka Frielle Kobilka Lefkowitz Caron TITLE 1 Cloning of the cDNA for the human beta 1-adrenergic receptor 2 Human beta 1- and beta 2adrenergic receptors: structurally and functionally related receptors derived from distinct genes PROTEIN PROTEIN-ID 1 ACCESSION DEFINITION SOURCE NM_000684 Homo sapiens adrenergic, beta-1-, receptor human 31 Objekt-Orienterade Databaser (OODB) SQL select title from protein, article-title, reference where protein.accession = NM_000684 and protein.protein-id = reference.protein-id and reference.article-id = article-title.article-id; PROTEIN PROTEIN-ID 1 REFERENCE PROTEIN-ID ARTICLE-ID 1 1 1 2 ARTICLE-TITLE ACCESSION DEFINITION SOURCE NM_000684 Homo sapiens adrenergic, beta-1-, receptor human 32 ARTICLE-ID 1 2 TITLE Cloning of the … Human beta 1- … • Världen modelleras m.h.a. objekt. • Ett objekt har ett tillstånd (värde) och ett beteende (operationer). • fortlevande (eng. persistent) objekt permanent lagring (ibland tillåts även kortvariga (eng. transient) objekt) 33 Objekt 34 Exempel - objekttillstånd • Ett objekt har en objektidentifierare (OID) som inte är synlig för användaren. • OIDn kan inte ändras • objekt versus värde (ett värde har ingen OID) • objektstrukturen kan vara godtyckligt komplex (atom, tuple, set, list, bag, array) • o1(id1, tuple, <accession: NM_000684, source : human, definition: ’Homo sapiens adrenergic …’, reference: o2>) • o2(id2, set, {o3,o4}) 35 OBS: Dessa exempel använder inte någon standardsyntax36 human NM_000684 Exempel - objekttillstånd ”Homo sapiens adrenergic, beta-1-, receptor” SOURCE • o3(id3, tuple, <title: `Cloning of …’, author: o5 >) • o4(id4, tuple, <title: `Human beta-1 …’, author: o6 >) • o5(id5, list, [Frielle, Collins, Daniel, Caron, Lefkowitz, Kobilka]) • o6(id6, list, [Frielle, Kobilka , Lefkowitz, Caron]) 37 Klasser ACCESSION DEFINITION REFERENCE AUTHOR set AUTHOR TITLE list ”Cloning of …” Frielle TITLE list Collins Frielle Daniel Kobilka Caron Lefkowitz Lefkowitz Kobilka ”Human beta-1 …” Caron 38 Klasser define class protein type tuple ( accession: string; source : string; definition: string; reference: set(article); ); operations create-protein(string,string,string,set(article)): protein; get-accession: string; get-source: string; get-definition: string; get-references: set(article); add-reference(article): void; end protein; define class article type tuple ( title: string; author: list(string); ); operations create-article(string, list(string)): article; get-title string; get-authors: list(string); print-article-info string; end article; 39 Exempel program 40 Operationer program variables: article1, article2, protein1; begin article1 := create-article(’Cloning….’, list(Frielle, Collins, Daniel, Caron, Lefkowitz, Kobilka)); protein1 := create-protein(NM_000684, human,’Homo sapiens adrenergic …’, set(article1)); article2 := create-article(’ Human beta-1….’, list(Frielle, Kobilka , Lefkowitz, Caron]); protein1.add-reference(article2); end; • inkapsling: operation = gränssnitt + kropp - gränssnitt: hur anropar man operationen? vad ger operationen som resultat? > synlig för användaren, används i program - kropp: hur implementeras operationen? > osynlig för användaren • program baseras på skickandet av meddelande (eng. message passing) 41 42 Ärvning Operator overloading • journal-article subtype-of article: journal-name journal-volume page-numbers • Man kan använda samma operatornamn för olika implementationer exempel: print-article-info för article skriver ut information om titel och författare. print-article-info för journal-article skriver ut information om titel och författare men även om tidskriftens namn, volym och sidonummer. journal-article ärver alla attribut och operationer från article och har även journal-name, journal-volume och pagenumbers som attribut • human-protein subtype-of protein (source = ’human’) 43 Frågespråk OQL 44 Frågor • select … from … where select distinct … from … where • iteratorvariabler • väguttryck (eng. path expressions) • struct select o.source from o in protein where o.accession = NM_000684; human NM_000684 ACCESSION SOURCE 45 Frågor Frågespråk OQL select struct (accession: o.accession, source: o.source) from o in protein where Frielle in (select a.author from a in o.reference); OQL tillåter även: • vyar • aggregering • speciella operationer för list och array (first, last, nth) • order-by • group-by NM_000684 human ACCESSION SOURCE REFERENCE set AUTHOR Frielle 46 AUTHOR Frielle 47 48 Semistrukturerad data egenskaper Semistrukturerad data • data som är ej enbart text, men som inte är så välstrukturerad som data i databaser • förekommer ofta i webbdatabanker och när man vill integrera databanker • system: Genbank, OMIM • • • • • oregelbunden struktur strukturen är implicit strukturen är partiell ’data guide’ och schema stora data guides 49 Semistrukturerad data egenskaper 50 Semistrukturerad data - modell • man ska kunna ignorera data guide vid frågor • data guide utvecklas snabbt • objekt kan ändra tillhörighet av typ/klass • skillnaden mellan data och data guide försvinner • nätverk av noder • objektmodell (oid) • fråga: vägsökning i nätverket (’path search’) 51 ”Homo sapiens adrenergic, beta-1-, receptor” human NM_000684 Frågor SOURCE ACCESSION 52 DEFINITION human NM_000684 REFERENCE REFERENCE AUTHOR TITLE AUTHOR AUTHOR ”Cloning of …” Frielle Collins select source where accession = NM_000684; My-protein AUTHOR AUTHOR ”Human beta-1 …” AUTHOR AUTHOR Daniel AUTHOR Caron SOURCE ACCESSION TITLE AUTHOR NM_000684 select reference.title where accession = NM_000684; ACCESSION My-protein REFERENCE AUTHOR TITLE ”Cloning of …” Lefkowitz Kobilka 53 REFERENCE TITLE ”Human beta-1 …” 54 Frågor Kunskapsbaser human NM_000684 select source where accession = NM_000684; SOURCE ACCESSION My-protein NM_000684 select #p.title where accession = NM_000684; ACCESSION My-protein REFERENCE TITLE ”Cloning of …” REFERENCE • ofta baserad på en logik • svarsmekanism baserad på en inferensmekanism • kunskapsbaser kan ofta lagras i primärminne • användbar vid ontologier TITLE ”Human beta-1 …” 55 56 Kunskapsbaser Litteratur (F) source(NM_000684, Human) (R) source(P?,Human) => source(P?,Mammal) (R) source(P?,Mammal) => source(P?,Vertebrate) • Information Retrieval * Baeza-Yates, R., Ribeiro-Neto, B., Modern Information Retrieval, AddisonWesley, 1999. • Databaser * Elmasri, R., Navathe, S., Fundamentals of database systems, 4th edition, Addison Wesley, 2004. Q: ?- source(NM_000684, Vertebrate) A: yes Q: ?- source(x?, Mammal) A: x? = NM_000684 • Semistrukturerad data * Abiteboul, S., ‘Querying semi-structured data’, Proceedings of the Sixth International Conference on Database Theory, LNCS 1186, pp 1-18, 1997. (* = ingår helt eller delvis i kurslitteraturen, se kurshemsidan) 57 58