580 likes | 731 Vues
Hur lagras informationen? (hög nivå) Hur accessar man informationen? (användarnivå). Biologiska databanker. biologisk data i elektronisk format exempel: SWISS-PROT, EMBL, DDBJ, PDB, GENBANK, KEGG, ACEDB används dagligen i forskningen. Forsknings- resultat. Frågor. Svar. Modell.
E N D
Hur lagras informationen? (hög nivå) Hur accessar man informationen? (användarnivå)
Biologiska databanker • biologisk data i elektronisk format • exempel: SWISS-PROT, EMBL, DDBJ, PDB, GENBANK, KEGG, ACEDB • används dagligen i forskningen
Forsknings- resultat Frågor Svar Modell Databank behandling av frågor/uppdateringar Databank- hanterings- system Access till lagrad data Fysiska databanken Biologiska databanker
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
DEFINITION Homo sapiens adrenergic, beta-1-, receptor ACCESSION NM_000684 SOURCE ORGANISM human REFERENCE 1 AUTHORS Frielle, Collins, Daniel, Caron, Lefkowitz, Kobilka TITLE Cloning of the cDNA for the human beta 1-adrenergic receptor REFERENCE 2 AUTHORS Frielle, Kobilka, Lefkowitz, Caron TITLE Human beta 1- and beta 2-adrenergic receptors: structurally and functionally related receptors derived from distinct genes
protein-id article-id accession Reference title definition author source PROTEIN ARTICLE Entity-relationship m n
struktur precision Hur lagras informationen? (hög nivå) Hur accessar man informationen? (användarnivå) • Text (IR) • Semistrukturerad data • Datamodeller (DB) • Regler + Fakta (KB)
Innehåll • Text: filmodell, formell modell, konceptuella modeller (boolesk, vektor) • Databaser: Relationsdatabaser, Objektorienterade databaser • Semistrukturerad data • Kunskapsbaser
Text - Information Retrieval (IR) • sökning baseras på ord • konceptuella modeller: boolesk, vektor, probabilistisk, … • filmodell: flat fil, inverterad fil, ...
IR - Filmodell: inverterad fil inverterad fil anslagningsfil dokumentfil DOC# WORD HITS LINK LINK DOCUMENTS … … … … … Doc1 adrenergic 32 1 … … … 5 … … Doc2 cloning 53 1 … … … 2 receptor 22 … 5 … … … … …
IR - Filmodell: inverterad fil • kontollerad vokabulär (eng. controlled vocabulary) • stoplista • stamning (eng. stemming)
IR - formell beskrivning 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)
IR - konceptuella modeller Klassikt IR • Boolesk • Vektormodellen • (Probabilistisk)
adrenergic cloning receptor (1 1 0) (0 1 0) yes no yes yes no no --> --> Doc1 Doc2 Booleska modellen dokumentrepresentation
Booleska modellen frågor : boolesk (and, or, not) 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)
Booleska modellen Q1: cloning and (adrenergic or receptor) --> (cloning and adrenergic) or (cloning and receptor) 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)
Booleska modellen adrenergic cloning receptor (1 1 0) (0 1 0) yes no yes yes no no --> --> Doc1 Doc2 Q1: cloning and (adrenergic or receptor) --> (1 1 1) or (1 1 0) or (0 1 1) Resultat: Doc1 Q2: cloning and not adrenergic --> (0 1 0) or (0 1 1) Resultat: Doc2
Booleska modellen 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
Booleska modellen adrenergic cloning receptor (1 1 0) (0 1 0) yes no yes yes no no --> --> Doc1 Doc2 Q3: adrenergic and receptor --> (1 0 1) or (1 1 1) Resultat: tom
cloning adrenergic receptor Vektormodellen (förenklad) Doc1 (1,1,0) Doc2 (0,1,0) Q (1,1,1) sim(d,q) = d . q |d| x |q|
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
cloning adrenergic receptor Vektormodellen Doc1 (1,1,0) Doc3 (0,0.5,0) Q4 (0.5,0.5,0.5) sim(d,q) = d . q |d| x |q|
Vektormodellen • 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
Vektormodellen • Hur definierar man vikterna? tf-idf term frequency freqi,j: hur ofta förekommer term ki i dokument dj? normaliserad term frequency: fi,j = freqi,j / maxl freql,j
Vektormodellen • Hur definierar man vikterna? tf-idf document frequency : i hur många dokument förekommer term ki? N = totala antalet dokument ni = antal dokument i vilka ki förekommer inverse document frequency idfi: log (N / ni)
Vektormodellen • 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
Vektormodellen • Fördelar - termviktning förbättrar sökprestanda - partiell matchning - rankning enligt likhet • Nackdel? - antagande att termerna förekommer oberoende av varandra
IR - effektivitetsmått Precision = antal hittade dokument som är relevanta antal hittade dokument Recall = antal hittade dokument som är relevanta antal relevanta dokument
IR - mått Relevanta dokument i svarsmängden |RA| Precision = |RA| / |A| Recall = |RA| / |R| Relevanta dokument |R| Svarsmängden |A|
Databaser • 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)
REFERENCE PROTEIN PROTEIN-ID ARTICLE-ID PROTEIN-ID ACCESSION DEFINITION SOURCE 1 1 1 Homo sapiens adrenergic, beta-1-, receptor human NM_000684 1 2 ARTICLE-TITLE ARTICLE-ID TITLE Cloning of the cDNA for the human beta 1-adrenergic receptor 1 Human beta 1- and beta 2-adrenergic receptors: structurally and functionally related receptors derived from distinct genes 2 Relationsdatabaser ARTICLE-AUTHOR ARTICLE-ID AUTHOR 1 1 1 1 1 1 2 2 2 2 Frielle Collins Daniel Caron Lefkowitz Kobilka Frielle Kobilka Lefkowitz Caron
PROTEIN PROTEIN-ID ACCESSION DEFINITION SOURCE 1 Homo sapiens adrenergic, beta-1-, receptor human NM_000684 SQL select source from protein where accession = NM_000684;
REFERENCE PROTEIN PROTEIN-ID ARTICLE-ID PROTEIN-ID ACCESSION DEFINITION SOURCE 1 1 1 Homo sapiens adrenergic, beta-1-, receptor human NM_000684 1 2 ARTICLE-ID TITLE 1 Cloning of the … 2 Human beta 1- … 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; ARTICLE-TITLE
Objekt-Orienterade Databaser(OODB) • 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)
Objekt • 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)
Exempel - objekttillstånd • o1(id1, tuple, <accession: NM_000684, source : human, definition: ’Homo sapiens adrenergic …’, reference: o2>) • o2(id2, set, {o3,o4}) OBS: Dessa exempel använder inte någon standardsyntax
Exempel - objekttillstånd • 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])
TITLE ”Human beta-1 …” ”Homo sapiens adrenergic, beta-1-, receptor” human NM_000684 SOURCE ACCESSION DEFINITION REFERENCE AUTHOR set AUTHOR TITLE list list Frielle ”Cloning of …” Frielle Collins Kobilka Daniel Caron Lefkowitz Lefkowitz Caron Kobilka
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;
Klasser 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;
Exempel program 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;
Operationer • 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)
Ärvning • journal-article subtype-of article: journal-name journal-volume page-numbers journal-article ärver alla attribut och operationer från article och har även journal-name, journal-volume och page-numbers som attribut • human-protein subtype-of protein (source = ’human’)
Operator overloading • 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.
Frågespråk OQL • select … from … where select distinct … from … where • iteratorvariabler • väguttryck (eng. path expressions) • struct
human NM_000684 SOURCE ACCESSION Frågor select o.source from o in protein where o.accession = NM_000684;
Frågor select struct (accession: o.accession, source: o.source) from o in protein where Frielle in (select a.author from a in o.reference); NM_000684 human ACCESSION SOURCE REFERENCE set AUTHOR AUTHOR Frielle Frielle
Frågespråk OQL OQL tillåter även: • vyar • aggregering • speciella operationer för list och array (first, last, nth) • order-by • group-by
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
Semistrukturerad data -egenskaper • oregelbunden struktur • strukturen är implicit • strukturen är partiell • ’data guide’ och schema • stora data guides