2010. febr. 9Bev. a Bioinformatikába1 Bevezetés a Bioinformatikába Budapesti Műszaki és Gazdaságtudományi Egyetem 2009/10 Tavaszi Szemeszter
2010. febr. 9Bev. a Bioinformatikába2 Bevezetés Gál Péter Budinszky András
2010. febr. 9Bev. a Bioinformatikába3 Miért fontos a bioinformatika? “ A biológia közelítésmódja az adat- gyüjtéstől az adatértelmezés felé fordul….” “A biotechnológia nem más mint a biológiai információ ipari felhasználása” Lee Hood, in The Economist, 1997 Walter Gilbert, Nature, 1991
2010. febr. 9Bev. a Bioinformatikába4 Mit csinál a bioinformatika? FELHASZNÁLÓ Statisztika, elemzés Interpretáció Nyers szekvenciák, műszeres adatok feldolgozása Adatbázisok fenntartása Módszerfejlesztés (Biocomputing) Adatkezelés Szolgáltatás Kutatás
2010. febr. 9Bev. a Bioinformatikába5 Gyors áttekintés Adattípusok Szekvenciák 3D szerkezet Hálózatok Szövegek (absztraktok, cikkek) (Idősorok) Feladattípusok: Adatgyűjtés, tárolás Osztályozás Integrálás Vizualizálás (Modellezés) Adatbázisok
2010. febr. 9Bev. a Bioinformatikába6 KOGNITÍV- ÉS NYELV TUDOMÁNY BIOLÓGIAI ADATOK INFORMATIKA Modellezés, leírás and vizualizálás Bioinformatika
2010. febr. 9Bev. a Bioinformatikába7 Molekuláris biológia, centrális dogma DNS Szekvencia RNS fenotipus (sejt aktivitás) fehérje Aminósav szekvencia
2010. febr. 9Bev. a Bioinformatikába8 Bioinformatikai témák DNS Szekvencia RNS fenotipus (sejt aktivitás) fehérje Szekvencia elemzésStruktura elemzés Szekvencia elemzés Gén expresszió elemzés Aminósav szekvencia
2010. febr. 9Bev. a Bioinformatikába9 Szekvencia elemzés Szekvencia illesztések páronkénti többszörös Szekvenálás DNS szekvenálás hibridizálással Fehérje szekvenálás tömegspektrométerrel Filogenetikai fa építése
2010. febr. 9Bev. a Bioinformatikába10 Gén expresszió elemzés Microarray technológia felhasználható nagy számú gén expresszió-szintjének különböző körülmények melletti meghatározására. Igy a gén expresszió elemzés a microarray kisérletek által szolgáltatott adatok komputeres elemzésére ad lehetőséget
2010. febr. 9Bev. a Bioinformatikába11 Egy unaloműző játék 2 játékos (A és B), 2 kupac kavics (10 és 10 db) Amikor egy játékos sorra kerül, akkor el kell vennie egy kavicsot az egyik kupacból, vagy egy-egy kavicsot mind a két kupacból Az a játékos nyer, aki az utolsó kavicsot elveszi ‘A’ játékos kezd Mi a nyerő stratégia?
2010. febr. 9Bev. a Bioinformatikába12 Nyerő stratégia ‘B’ játékos részére 2+2 A 1+1; B 1+1 A 1+0; B 1+0 A 0+1; B 0+1 3+3 ? ? ‘A’ játékos részére 2+2 reménytelen 3+3 ? ?
2010. febr. 9Bev. a Bioinformatikába13
2010. febr. 9Bev. a Bioinformatikába14 Újabb kérdés Van ennek a játéknak valami köze a bioinformatikához? Nagyon is sok Szekvenciák illesztése ‘álruhában’ BLAST
2010. febr. 9Bev. a Bioinformatikába15 Algoritmus Lépések sorozata, amely megold egy jól definiált problémát. Számítógépes algoritmus Utasitások sorozata a probléma megoldására Algoritmus és program Pseudo kód ill. programnyelvi kód Jó algoritmus kritériumai Helyesség és hatékonyság
2010. febr. 9Bev. a Bioinformatikába16 Tervezési célkitűzések Helyesség A kitűzött feladatot korrekt módon kell megoldania Minden lehetséges inputra! Mindig függ specifikusan a feladattól Hatékonyság Ne használjon több erőforrást mint amennyi szükségeltetik Futási idő Memória
2010. febr. 9Bev. a Bioinformatikába17 Algoritmus helyessége Az algoritmusnak a kitűzött feladatot korrekt módon kell megoldania Egy algoritmus helyességét különböző igazolási technikák alkalmazásával lehet ellenőrizni
2010. febr. 9Bev. a Bioinformatikába18 Igazolási technikák Bizonyitás ellenpéldával Keresünk egy példát, ami bizonyitja a hamis voltát “Minden 2 i – 1 alaku szám prímszám” Ellenpélda: i = 4 → 2 i = 15, ami nem prímszám
2010. febr. 9Bev. a Bioinformatikába19 Igazolási technikák (folyt) Bizonyítás ellentmondással Feltesszük, hogy az állitás hamis, és megmutatjuk, hogy ez a feltevés ellentmondáshoz vezet. “Ha a*b páratlan, akkor a és b is páratlanok” Tegyük fel (az általánosság megszorítása nélkül), hogy a páros és b páratlan a*b ekkor páros számot eredményez Ellentmondás: a*b nem lehet egyidejüleg páros és páratlan
2010. febr. 9Bev. a Bioinformatikába20 Igazolási technikák (folyt) Bizonyitás indukcióval Szingli utasitások esetén triviális return (n*(n+1)) / 2 // egészek összege 1-töl n-ig Ciklusok esetén nem annyira triviális // keressük meg az A tömbben az x-el egyenlő elemet // és adjuk vissza ennek az indexét; // ha pedig egyik sem az, akkor adjunk vissza ‘–1’-et for i ← 0 to n – 1 if x == A[i] then return i return –1 Megj: invariáns, terminálófüggvény, stb.
2010. febr. 9Bev. a Bioinformatikába21 Pénzváltási probléma Váltsunk fel egy adott összeget a lehető legkisebb számú pénzérmére Első lépés: Pontosan definiáljuk a feladatot Input: M pénzösszeg centekben Output: a legkisebb számú ‘quarter’ q, ‘dime’ d, ‘nickel’ n, és ‘penny’ p, úgy hogy az értékük összege M legyen (25q+10d+5n+p = M) és q + d + n + p minimalizált
2010. febr. 9Bev. a Bioinformatikába22 US pénzváltási algoritmus USValto(M) 1. q = M / M = M – 25*q 3. d = M / M = M – 10 * d 5. n = M / 5 6. M = M – 10 * n 7. p = M
2010. febr. 9Bev. a Bioinformatikába23 Általánositott pénzváltási probléma Váltsunk fel egy adott összeget a lehető legkisebb számú – megadott értékű – pénzérmére Input: M pénzösszeg, valamint d különböző felhasználható pénzérme c = (c 1, c 2, …, c d ) tömbje, csökkenő értéksorrendben (c 1 > c 2 > … > c d ). Output, d egészszám listája (i 1, i 2, …, i d ), ahol c 1 *i 1 + c 2 *i 2 + … + c d *i d = M és i 1 + i 2 + …+ i d minimalizált.
2010. febr. 9Bev. a Bioinformatikába24 Általánositott pénzváltási probléma algoritmusa JobbValto(M, c, d) 1. for k = 1 to d 2. i k = M / c k 3. M = M – c k * i k 4. return (i 1, i 2, …, i k ) Helyes ez az algoritmus? M = 40 c 1 = 25, c 2 = 20, c 3 = 10, c 4 = 5, c 5 = 1
2010. febr. 9Bev. a Bioinformatikába25 Helyes Algoritmus NyersEroValto(M, c, d) 1. legkisebbErmeSzam = ∞ 2. for each (i 1, …, i d ) from (0, …, 0) to (M/c 1, …, M/c d ) 3. ermekErteke = Σ i k *c k 4. if ermekErteke = M 5. ermekSzama = Σ i k 6. If ermekSzama < legkisebbErmeSzam 7. legkisebbErmeSzam = ermekSzama 8. legjobbValtas = (i 1, i 2, …, i d ) 9. return (legjobbValtas)
2010. febr. 9Bev. a Bioinformatikába26 Algoritmus hatékonysága Az algoritmus ne használjon több erőforrást mint amennyi szükségeltetik Két opció: Benchmarking és elemzés
2010. febr. 9Bev. a Bioinformatikába27 Benchmarking Mérjük az algoritmus végrehajtási idejét System.currentTimeMillis() vagy más módszer használatával Buktatók: Limitált teszt adat áll rendelkezésre – nem feltétlenül indikatív más input esetén Két algoritmus összehasonlítása ugyanolyan hardware konfigurációt igényel Algoritmust elöször implementálnunk kell
2010. febr. 9Bev. a Bioinformatikába28 Algoritmus Elemzés Számoljuk meg a műveletek össz-számát az algoritmus pseudo kódjában: Algorithm addFromOneToN(n) Input: An integer n Output: The sum of all integers from 1 to n sum ← 0// 1 op for i ← 1 to n do// n ops sum ← sum + i// n ops return sum// 1 ops Összesen: 2n + 2 művelet
2010. febr. 9Bev. a Bioinformatikába29 Legrosszabb ill. átlag eset Legrosszabb eset: maximum számú végrehajtandó művelet Átlag eset: átlag számú művelet tipikus futás során Meg kell határozni A lehetséges inputok ‘tartományát’ E tartomány valószínűségi eloszlását Running Time legrosszabb eset legjobb eset átlag eset (?) }
2010. febr. 9Bev. a Bioinformatikába30 Pénzváltó algoritmusok elemzése USValto: a műveletek száma konstans JobbValto: a műveletek száma szintén konstans NyersEroValto: A futási idő felső korlátja exponenciálisan nő d-től függően és ezért az algoritmus nem praktikus nagy d érték esetén.
2010. febr. 9Bev. a Bioinformatikába31 Big-O Definiáljuk a probléma méretét (pl., lehetséges érmék száma d, szekvencia hossza n,...) Definiáljuk az “alaplépések”-et (pl., ősszeadás, osztás,…) Fejezzük ki a futási időt a probléma méretének függvényében (pl., 3*n*log(n) +n) Amint a probléma mérete a positív végtelen felé közelít, csak a legmagasabb rendű tényező “számít” Big-O a legmagasabb rendű tényező A fenti példában Big-O: n*log(n) Polinomiális (O(n 2 )) ill. exponenciális (O(2 n )) NP-teljes
2010. febr. 9Bev. a Bioinformatikába32 Heurisztikus algoritmusok Bár egy adott D probléma lehet, hogy NP-teljes, bioinformatikusok gyakran megelégszenek un. heurisztika alkalmazásával. Az ilyen algorithmusok matematikailag nem garantálnak polinomiális végrehajtási időt, de átlagos adatok esetén elfogadható gyorsan lefutnak és a legtöbbször elfogadhatóan optimális megoldást adnak.