03.07.2013 Views

Euleriaanse grafen - Combinatorische algoritmen en algoritmische ...

Euleriaanse grafen - Combinatorische algoritmen en algoritmische ...

Euleriaanse grafen - Combinatorische algoritmen en algoritmische ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Euleriaanse</strong> <strong>graf<strong>en</strong></strong><br />

Karakterisaties<br />

Algoritme<br />

Toepassing in de bioinformatica<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.1/13


Karakterisaties<br />

Stelling<br />

zij G sam<strong>en</strong>hang<strong>en</strong>de multigraaf<br />

G euleriaans ⇔ elke top heeft ev<strong>en</strong> graad<br />

G heeft euleriaans spoor ⇔ G heeft precies<br />

twee topp<strong>en</strong> met onev<strong>en</strong> graad<br />

Stelling<br />

zij G sam<strong>en</strong>hang<strong>en</strong>de multigraaf<br />

G euleriaans ⇔ elke boog ligt op onev<strong>en</strong><br />

aantal cykels van G<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.2/13


Algoritme<br />

Input: sam<strong>en</strong>hang<strong>en</strong>de multigraaf G, elke top<br />

ev<strong>en</strong> graad<br />

Output: euleriaans circuit C<br />

1: begin in willekeurige top v<br />

2: construeer circuit C dat start <strong>en</strong> eindigt in v<br />

3: while nog bog<strong>en</strong> in G <strong>en</strong> niet in C do<br />

4: kies w in C incid<strong>en</strong>t met ongebruikte boog<br />

5: start in w<br />

6: construeer circuit C ′ van ongebruikte<br />

bog<strong>en</strong><br />

7: voeg C ′ tuss<strong>en</strong> in C bij top w<br />

8: geef C terug<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.3/13


Toepassing in<br />

bioinformatica<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.4/13


DNA sequ<strong>en</strong>cing<br />

Sam<strong>en</strong>voeg<strong>en</strong> van fragm<strong>en</strong>t<strong>en</strong> van DNA<br />

experim<strong>en</strong>t<strong>en</strong> lez<strong>en</strong> korte fragm<strong>en</strong>t<strong>en</strong> van<br />

DNA-sequ<strong>en</strong>tie<br />

sequ<strong>en</strong>tie reconstruer<strong>en</strong> uit fragm<strong>en</strong>t<strong>en</strong><br />

Experim<strong>en</strong>tele techniek<strong>en</strong> (biotechnologie)<br />

shotgun sequ<strong>en</strong>cing / shortest superstring<br />

DNA arrays / sequ<strong>en</strong>cing by hybridization<br />

Algoritmische techniek<strong>en</strong><br />

gebruik van <strong>graf<strong>en</strong></strong>theorie<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.5/13


Sequ<strong>en</strong>cing by hybridization (SBH)<br />

Achterligg<strong>en</strong>d idee<br />

voor niet-gek<strong>en</strong>de DNA-sequ<strong>en</strong>tie s<br />

gegev<strong>en</strong> is spectrum, d.i. alle deelstrings van<br />

l<strong>en</strong>gte ℓ (d.i. ℓ-mer<strong>en</strong>) uit s<br />

ge<strong>en</strong> informatie over positie in sequ<strong>en</strong>tie<br />

Voorbeeld (ℓ = 3)<br />

Hier<br />

DNA-sequ<strong>en</strong>tie s = TATGGTGC<br />

spec(s,ℓ) = {TAT, ATG, TGG, GGT, GTG, TGC}<br />

algoritme voor reconstructie s uit spectrum<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.6/13


Overlapp<strong>en</strong>de strings<br />

Overlap van strings<br />

overlap(p,q) = l<strong>en</strong>gte van langste prefix van p<br />

dat overe<strong>en</strong>komt met e<strong>en</strong> suffix van q<br />

Overlap van ℓ-mer<strong>en</strong><br />

twee ℓ-mer<strong>en</strong> p <strong>en</strong> q overlapp<strong>en</strong> als<br />

overlap(p,q) = ℓ − 1<br />

d.i. laatste ℓ − 1 letters van p kom<strong>en</strong> overe<strong>en</strong><br />

met eerste ℓ − 1 letters van q<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.7/13


SBH als hamiltoniaans pad<br />

Construeer gerichte graaf<br />

gegev<strong>en</strong> spec(s,ℓ) voor niet-gek<strong>en</strong>de s<br />

topp<strong>en</strong> zijn ℓ-mer<strong>en</strong> in spec(s,ℓ)<br />

gerichte boog van p naar q als ze overlapp<strong>en</strong><br />

Dan 1-1-correspond<strong>en</strong>tie tuss<strong>en</strong><br />

hamiltoniaans pad in graaf<br />

DNA-sequ<strong>en</strong>ties met gegev<strong>en</strong> spectrum<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.8/13


Voorbeeld 1<br />

Spectrum<br />

S1 = {ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG}<br />

Graaf <strong>en</strong> hamiltoniaans pad voor S1<br />

CAG<br />

GCA<br />

ATG AGG<br />

GGT<br />

GTC<br />

TGC<br />

TCC<br />

Gereconstrueerde sequ<strong>en</strong>tie<br />

ATGCAGGTCC<br />

ATG → TGC → GCA → CAG →<br />

AGG → GGT → GTC → TCC<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.9/13


Voorbeeld 2<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Graaf <strong>en</strong> hamiltoniaans pad voor S2<br />

CGT<br />

GCG<br />

ATG TGG<br />

GCA<br />

GGC<br />

TGC<br />

GTG<br />

Gereconstrueerde sequ<strong>en</strong>ties<br />

ATGCGTGGCA <strong>en</strong> ATGGCGTGCA<br />

ATG → TGG → GGC → GCG<br />

→ CGT → GTG → TGC →<br />

GCA<br />

ATG → TGC → GCG → CGT<br />

→ GTG → TGG → GGC →<br />

GCA<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.10/13


Opmerking<br />

Oploss<strong>en</strong> SBH-probleem<br />

Maar<br />

door bepal<strong>en</strong> van hamiltoniaans pad in<br />

gerichte graaf<br />

ge<strong>en</strong> efficiënt algorithm<br />

in de praktijk niet bruikbaar voor grote<br />

overlap<strong>graf<strong>en</strong></strong><br />

Zoek<strong>en</strong> naar andere oplossing<br />

vertal<strong>en</strong> naar probleem van euleriaans spoor<br />

in (andere) graaf<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.11/13


SBH als euleriaans spoor<br />

Achterligg<strong>en</strong>d idee<br />

construeer graaf waarbij ℓ-mer<strong>en</strong><br />

corresponder<strong>en</strong> met bog<strong>en</strong> i.p.v. topp<strong>en</strong><br />

Constructie van graaf<br />

topp<strong>en</strong> zijn alle (ℓ − 1)-mer<strong>en</strong><br />

gerichte boog van p naar q als spec(s,ℓ) e<strong>en</strong><br />

ℓ-meer met prefix p <strong>en</strong> suffix q bevat<br />

Dan 1-1-correspond<strong>en</strong>tie tuss<strong>en</strong><br />

euleriaans spoor in graaf<br />

DNA-sequ<strong>en</strong>ties met gegev<strong>en</strong> spectrum<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.12/13


Voorbeeld<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Graaf voor S2<br />

AT<br />

GT CG<br />

TG<br />

GG<br />

GC<br />

Gereconstrueerde sequ<strong>en</strong>ties<br />

CA<br />

ATGCGTGGCA <strong>en</strong> ATGGCGTGCA<br />

AT → TG → GG → GC<br />

→ CG → GT → TG →<br />

GC → CA<br />

AT → TG → GC → CG<br />

→ GT → TG → GG →<br />

GC → CA<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.13/13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!