Hur lagras informationen? (hög nivå) Hur accessar man

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