Ongelma(t): Miten merkkijonoja voidaan hakea tehokkaasti? Millaisia hakuongelmia liittyy bioinformatiikkaan?

Samankaltaiset tiedostot
Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Peptidi ---- F K V R H A ---- A. Siirtäjä-RNA:n (trna:n) (3 ) AAG UUC CAC GCA GUG CGU (5 ) antikodonit

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö

Esimerkkejä vaativuusluokista

Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi

Algoritmit 2. Luento 6 Ke Timo Männikkö

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Algoritmit 1. Luento 7 Ti Timo Männikkö

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Tehtävä 2: Loppuosataulukko

6 GEENIT OHJAAVAT SOLUN TOIMINTAA nukleiinihapot DNA ja RNA Geenin rakenne Geneettinen informaatio Proteiinisynteesi

Ohjelmoinnin perusteet Y Python

Perinnöllisyystieteen perusteita III Perinnöllisyystieteen perusteita. BI2 III Perinnöllisyystieteen perusteita 9. Solut lisääntyvät jakautumalla

Nukleiinihapot! Juha Klefström, Biolääketieteen laitos/biokemia ja genomibiologian tutkimusohjelma Helsingin yliopisto.

Biomolekyylit 2. Nukleotidit, aminohapot ja proteiinit

Abstraktiot ja analyysi algoritmit ja informaation esitykset

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 1. Luento 12 Ti Timo Männikkö

Biopolymeerit. Biopolymeerit ovat kasveissa ja eläimissä esiintyviä polymeerejä.

Algoritmit 2. Luento 4 To Timo Männikkö

811120P Diskreetit rakenteet

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

TAMPEREEN TEKNILLINEN YLIOPISTO

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet ja algoritmit - syksy

Ohjelmoinnin peruskurssi Y1

811120P Diskreetit rakenteet

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

TAMPEREEN TEKNILLINEN YLIOPISTO

Algoritmit 1. Luento 12 Ke Timo Männikkö

DNA, RNA ja proteiinirakenteen ennustaminen

Perinnöllisyystieteen perusteita III Perinnöllisyystieteen perusteita

måndag 10 februari 14 Jaana Ohtonen Kielikoulu/Språkskolan Haparanda

uv n, v 1, ja uv i w A kaikilla

4.3. Matemaattinen induktio

VAPAAEHTOISILLA TEHTY TESTIMITTAUS HARMONIFIN TM SUOJAAVIEN VAIKUTUKSIEN SELVITTÄMISEKSI SÄHKÖMAGNEETTISEN KENTÄN MILLIMETRIN AALLONPITUUSALUEELLA

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?

Vaihtoehtoinen tapa määritellä funktioita f : N R on

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Algoritmit 2. Luento 9 Ti Timo Männikkö

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Luento 2: Tiedostot ja tiedon varastointi

Kiinnostuspohjainen topologian hallinta järjestämättömissä vertaisverkoissa

DNA sukututkimuksen tukena

DNA:n informaation kulku, koostumus

Algoritmit 1. Luento 8 Ke Timo Männikkö

Ohjelmoinnin perusteet Y Python

KEMIA lyhennettyjä ratkaisuja. 1. a) Vesiliukoisia: B, C, D, F, G

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Tietojenkäsittelyteorian alkeet, osa 2

Hakusuosikit. Unifaun Online

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Ohjelmoinnin perusteet Y Python

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Solun perusrakenne I Solun perusrakenne. BI2 I Solun perusrakenne 3. Solujen kemiallinen rakenne

Pitkäaikaistallennus. CSC - Tieteen tietotekniikan keskus IT2008 Ari Lukkarinen

7/20: Paketti kasassa ensimmäistä kertaa

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Algoritmit 1. Luento 3 Ti Timo Männikkö

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

3. Muuttujat ja operaatiot 3.1

Taulukot. Jukka Harju, Jukka Juslin

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Ohjelmoinnin peruskurssi Y1

LUENTO 3 Kyösti Ryynänen Seutuviikko 2014, Jämsä

17. Javan omat luokat 17.1

Nimi sosiaaliturvatunnus. Vastaa lyhyesti, selkeällä käsialalla. Vain vastausruudun sisällä olevat tekstit, kuvat jne huomioidaan

Biopankit miksi ja millä ehdoilla?

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Yhteistyöaineiden edustajan puheenvuoro

TYÖKALUT HAKUKONEOPTIMOINTIIN

Algoritmit 2. Luento 10 To Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Ongelma(t): Miten digitaalista tietoa voidaan toisintaa ja visualisoida? Miten monimutkaista tietoa voidaan toisintaa ja visualisoida?

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Tiedon louhinnan teoria (ja käytäntö) OUGF kevätseminaari 2004 Hannu Toivonen

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Mitä CRM olisi ilman ajantasaisia kontaktitietoja?

Algoritmit 1. Luento 10 Ke Timo Männikkö

3. Laskennan vaativuusteoriaa

DNA-testit. sukututkimuksessa Keravan kirjasto Paula Päivinen

P (X B) = f X (x)dx. xf X (x)dx. g(x)f X (x)dx.

ELÄMÄN MÄÄRITTELEMINEN. LUENTO 1 Kyösti Ryynänen Seutuviikko 2014, Jämsä MITÄ ELÄMÄ ON? EI-ELÄVÄ LUONTO ELÄVÄ LUONTO PAUL DAVIES 26.3.

3 Raja-arvo ja jatkuvuus

Transkriptio:

Ongelma(t): Miten merkkijonoja voidaan hakea tehokkaasti? Millaisia hakuongelmia liittyy bioinformatiikkaan? 2012-2013 Lasse Lensu 2

Ihmisen, eläinten ja kasvien hyvinvoinnin kannalta nykyaikaiset mittaus-, analyysi- ja diagnosointimenetelmät ovat hyödyllisiä ja joissakin tapauksissa (elin)tärkeitä. Moderneilla menetelmillä voidaankin kerätä yksityiskohtaista tietoa luonnosta ja sen eliöistä. Mittausten monipuolistumisen ja paremman kattavuuden myötä datan ja informaation käsittelytarpeet muuttuvat entistä haastavammiksi ja muistuttavat "neulojen etsimistä heinäsuovasta". Miten bioinformaatiota kannattaisi käsitellä ja hallita? 2012-2013 Lasse Lensu 3

Tietojenkäsittelyn perusteet 2 Bioinformaatio ja merkkijonot 2012-2013 Lasse Lensu 4

Bioinformaatio ja merkkijonot 2012-2013 Lasse Lensu 5

Bioinformaatio ja merkkijonot Bioinformatiikka: DNA, sekvensointi, geenit, perimä, sairaudet Tapaus 1: Merkkijonot ja niiden haku Tapaus 2: Biomimetiikkaa 2012-2013 Lasse Lensu 6

Bioinformatiikka Tuimala J. 2005 Ikonen L. 2011 Tarve: Biologiset tietokannat paisuivat niin suuriksi, että niissä olevan tiedon etsimiseksi ja analysoimiseksi tarvittiin tietokoneistettuja ratkaisuja. Väline: Suurten aineistojen käsittelyyn luotiin tehokkaita algoritmeja ja tietokantaratkaisuja. Mahdollisuudet: tietokoneiden suorituskyvyn parantuminen Internetin merkitys tiedon jakamisessa 2012-2013 Lasse Lensu 7

Bioinformatiikan määritelmä Informaatiotieteen ja biologian yhtymäkohtaan syntynyt tieteenala, jonka tarkoituksena on kehittää biologisten ongelmien ratkaisemiseen soveltuvia tietoteknisiä välineitä Informaatioteknologia ja sen menetelmät, joita käytetään biologisen datan tallentamiseen, ylläpitämiseen ja analysoimiseen Osa laskennallista biologiaa 2012-2013 Lasse Lensu 8

Bioinformatiikan tarkoitus Bioinformatiikka organisoi aineistoa siten, että se saadaan tutkijoiden saataville, ja että he voivat liittää tähän informaatioon omia tuloksiaan (esim. GenBank, ArrayExpress). Bioinformatiikassa kehitetään työkaluja, jotka auttavat tutkijoita aineistojen analysoinnissa. Bioinformatiikan työkaluja ja tietoa käytetään aineistojen analysointiin siten, että tulokset voidaan tulkita biologisesti mielekkäällä tavalla. 2012-2013 Lasse Lensu 9

GenBank http://www.ncbi.nlm.nih.gov/genbank/ DNA-sekvenssien tietokanta Nukleotidit: DNA: deoksiribonukleiinihappo RNA: ribonukleiinihappo Molekyylin muodostavat pentoosisokerin (D tai R) ja fosforihapon lisäksi typpiemäkset adeniini (A), guaniini (G), sytosiini (C) ja tymiini (T) tai urasiili (U; RNA). 2012-2013 Lasse Lensu 10

GenBank 2012-2013 Lasse Lensu 11

GenBank 2012-2013 Lasse Lensu 12

Tapaus 1: Merkkijonot Tieto ei tyypillisesti jakaannu valmiiksi riippumattomiin tietueisiin, jotka koostuisivat pienistä yksilöityvistä paloista. Tällaista tietyn merkistön symbolien järjestettyä jonoa kutsutaan merkkijonoksi (string). Merkkijonotyypit: Tekstijono (text string) Bittijono (binary string) Merkkijonojen käsittelyn perustoimintoihin kuuluu hahmon (pattern) eli alimerkkijonon haku merkkijonon sisältä. 2012-2013 Lasse Lensu 13

Merkkijonon haku: raaka tapa Sedgewick, R., 1990 Raakaa voimaa käyttävä (brute-force) algoritmi etsii hahmon ensimmäistä esiintymistä merkkijonossa. Raa'an voiman haku saattaa vaatia nm vertailua, missä n on merkkijonon pituus ja m hahmon pituus. 2012-2013 Lasse Lensu 14

Merkkijonon haku: Knuth-Morris-Pratt Raakaa algoritmia voidaan parantaa tiedolla, että poikkeavuuden esiintyessä jo hyväksytyt merkit ovat tiedossa hahmon perusteella. Knuth-Morris-Pratt (KMP): merkkijonoon viittaavaa indeksiä i ei tarvitse siirtää taaksepäin tunnettujen merkkien ohi. Ennen varsinaisen haun aloittamista hahmon perusteella voidaan määrittää aputaulukko, johon sijoitetaan hahmoon viittaavalle indeksille j uudet arvot poikkeavuuden esiintyessä. KMP vaatii enintään n+m vertailua, missä n on merkkijonon pituus ja m hahmon pituus. 2012-2013 Lasse Lensu 15

Merkkijonon haku: Knuth-Morris-Pratt 2012-2013 Lasse Lensu 16

Merkkijonon haku: Boyer-Moore Koska merkkijonossa peruuttaminen ei ole vaikeata, niin hakualgoritmia voidaan kehittää huomattavasti. Boyer-Mooren (BM) algoritmin etenemisessä käytetään poikkeavan merkin heuristiikkaa: se perustuu hahmon läpikäymiseen oikealta vasemmalle sekä aputaulukkoon laskettuihin uudelleenaloituspisteisiin. Haussa voidaan edetä koko hahmon pituuden verran eteenpäin, mikäli hahmossa esiintyviä merkkejä ei esiinny merkkijonossa. BM algoritmi vaatii enintään n+m vertailua, missä n on merkkijonon pituus ja m hahmon pituus. 2012-2013 Lasse Lensu 17

Merkkijonon haku: Boyer-Moore 2012-2013 Lasse Lensu 18

Merkkijonon haku: Rabin-Karp Kaikkien m:n pituisten osamerkkijonojen voidaan ajatella olevan hajakoodaustaulun avaimia. Tähän ajatukseen perustuu Rabin-Karpin algoritmi, joka laskee hajakoodifunktion arvon sekä haettavalle hahmolle (pituus m) että merkkijonon (pituus n) kaikille m:n pituisille osamerkkijonoille verraten hajakoodifunktion antamia arvoja keskenään. Rabin-Karpin algoritmin kompleksisuus on suurella todennäköisyydellä lineaarinen, mutta huonoimmassa tapauksessa se voi vaatia nm toimintoa. 2012-2013 Lasse Lensu 19

Merkkijonon haku: Rabin-Karp Hajakoodi voidaan laskea seuraavasti: x=a [i] d m 1 a[i 1] d m 2 a[i m 1] missä a sisältää osamerkkijonon merkit ja d on lukujärjestelmän kantaluku. Kun haku siirtyy käsittelemään seuraavaa mahdollista hahmon sijaintia merkkijonon sisällä, ei hajakoodia tarvitse laskea alusta alkaen uudelleen. Hajakoodin laskennassa x korvataan seuraavalla lausekkeella: x a [i] d m 1 d a [i m] 2012-2013 Lasse Lensu 20

Sekvenssitiedosta (oikeasti) Samankaltaisen hakemisesta: Ala Arg Asn Asp Cys... Ala 2 2 0 0 2 Arg 2 6 0 1 4 Asn 0 0 2 2 4 Asp 0 1 2 4 5 Cys 2 4 4 5 12 Rinnastuksesta: ACGTACGT ACGTACGT VEEGYR ACCTAC T : ACCTAC T FEESYM BLAST: 5 (osuma), -4 (huti) 2012-2013 Lasse Lensu 21

Yhteenveto Ihmisen, eläinten ja kasvien tutkimuksen ja hyvinvoinnin kannalta nykyaikaiset mittaus-, analyysi- ja diagnosointimenetelmät ovat hyödyllisiä. Bioinformatiikka: organisoi aineistoa siten, että se saadaan tutkijoiden saataville ja käyttöön kehittää työkaluja, jotka auttavat tutkijoita aineistojen analysoinnissa työkaluja ja tietoa hyödynnetään aineistojen analysointiin biologisesti mielekkäällä tavalla 2012-2013 Lasse Lensu 22