2010. febr. 9Bev. a Bioinformatikába1 Bevezetés a Bioinformatikába Budapesti Műszaki és Gazdaságtudományi Egyetem 2009/10 Tavaszi Szemeszter.

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

Szerver oldali programozás
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
Programozási feladatok
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Algoritmusok.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Számítógépes hálózatok
Hatékonyságvizsgálat, dokumentálás
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Prímtesztelés Témavezető: Kátai Imre Komputeralgebra Tanszék Nagy Gábor:
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Dinamikus tömbök.
Bevezetés a Java programozásba
Bioinformatika Szekvenciák és biológiai funkciók ill. genotipusok és fenotipusok egymáshoz rendelése Kós Péter 2009.XI.
Hálózati Biológia A sejt funkcionális működésének megértése.
C A C nyelv utasításai.
Véletlen logikai hálózatok. Bevezető Logikai változó: Bináris változó. Két lehetséges értéke van: 0 és 1, néha ±1 {σ 1, σ 2,..., σ N }, σ i : {0,1}, i.
Bizonyítási stratégiák
Készítette: Pető László
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
1 Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat 1. Bevezetés Miskolc, 2004.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
A digitális számítás elmélete
Év eleji információk Előadó: Hosszú Ferenc II. em Konzultáció: Szerda 9:50 – 10:35 II. em
CISC - RISC processzor jellemzők
Kétszemélyes játékok Előadó: Nagy Sára.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Vizuális és web programozás II.
Játékelméleti alapfogalmak előadás
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
2010. febr. 9Bev. a Bioinformatikába1 Bevezetés a Bioinformatikába Budapesti Műszaki és Gazdaságtudományi Egyetem 2009/10 Tavaszi Szemeszter.
Ciklusok: 1. Számlálós ciklus
Tömbök és programozási tételek
Rendezések és szövegkezelő függvények
Összetett adattípusok
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
Dodekaéder Hamilton köre
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Valószínűségszámítás II.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
A 2. géptermi beszámoló VBA anyagának összefoglalása
Kutatási beszámoló 2002/2003 I. félév Iváncsy Renáta.
PPKE ITK 2008/09 tanév 8. félév (tavaszi) Távközlő rendszerek forgalmi elemzése Tájékoztatás 4.
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
(Bináris) Kupac (heap) adattípus
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Adalékok egy véges összegzési feladathoz
KÉSZÍTETTE: KOVÁCSICS KRISZTIÁN
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
2004 május 27. GÉPÉSZET Komplex rendszerek szimulációja LabVIEW-ban Lipovszki György Budapesti Műszaki Egyetem Mechatronika, Optika és Gépészeti.
Programozási alapok.
Nevezetes algoritmusok
Mediánok és rendezett minták
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Bevezetés a programozásba Algoritmikus gondolkodás
Algoritmusok és Adatszerkezetek I.
Informatikai gyakorlatok 11. évfolyam
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmus készítés.
1. Bevezetés A programozásba
Előadás másolata:

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.