Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi

Samankaltaiset tiedostot
Esimerkkejä vaativuusluokista

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

Algoritmit 2. Luento 6 To Timo Männikkö

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

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

15 Yhtäsuuruuksia 1. Päättele x:llä merkityn punnuksen massa. a) x 4 kg. x 3 kg

Tehtävä 2: Loppuosataulukko

Abstraktiot ja analyysi algoritmit ja informaation esitykset

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Demot Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö

Datatähti 2019 loppu

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Ohjelmoinnin perusteet Y Python

Luento 2: Tiedostot ja tiedon varastointi

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Todellinen vuosikorko. Efektiivinen/sisäinen korkokanta. Huomioitavaa

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Algoritmit 2. Demot Timo Männikkö

Tieto- ja tallennusrakenteet

Algoritmit 2. Luento 4 To Timo Männikkö

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

Lineaarinen optimointitehtävä

Tietorakenteet, laskuharjoitus 7, ratkaisuja

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

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

Aukkoja sekvensseissä. Tuomo Hartonen Teoreettisen fysiikan syventävien opintojen seminaari

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Algoritmit 1. Luento 10 Ke Timo Männikkö

TAMPEREEN TEKNILLINEN YLIOPISTO

Algoritmit 2. Luento 12 To Timo Männikkö

Kombinatorinen optimointi

Ohjelmoinnin peruskurssi Y1

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö

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

Algoritmit 1. Luento 3 Ti Timo Männikkö

Itseindeksit Kun tiivistetty teksti ja sen indeksi ovatkin sama asia

811120P Diskreetit rakenteet

Syötteen ensimmäisellä rivillä on kokonaisluku n, testien määrä (1 n 10). Tämän jälkeen jokaisella seuraavalla rivillä on kokonaisluku x (0 x 1000).

17. Javan omat luokat 17.1

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin perusteet Y Python

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 7 Ti Timo Männikkö

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Algoritmit 1. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö

Ohjelmoinnin perusteet Y Python

Algoritmit 2. Luento 12 Ke Timo Männikkö

TAMPEREEN TEKNILLINEN YLIOPISTO

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 1. Demot Timo Männikkö

Sekvenssien rinnastus. Rinnastus: helppoa tai vaikeaa

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Taulukoiden käsittely Javalla

Ohjelmointi 1 Taulukot ja merkkijonot

Mat Investointiteoria Laskuharjoitus 3/2008, Ratkaisut

joissa on 0 4 oikeata vastausta. Laskimet eivät ole sallittuja.

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

763105P JOHDATUS SUHTEELLISUUSTEORIAAN 1 Ratkaisut 4 Kevät 2016

Tuotantoeläinten jalostus ja geenitekniikka

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Ohjelmoinnin peruskurssi Y1

17. Javan omat luokat 17.1

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

Esimerkiksi jos käytössä ovat kirjaimet FFII, mahdolliset nimet ovat FIFI ja IFIF. Näistä aakkosjärjestykssä ensimmäinen nimi on FIFI.

Muuttumaton genomi? Genomin ylläpito. Jakson luennot. Luennon sisältö DNA:N KAHDENTUMINEN ELI REPLIKAATIO

Algoritmit 2. Luento 13 Ti Timo Männikkö

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

2. luento Kahden sekvenssin rinnastus

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

Ensimmäiset ikäindeksit laskettu berninpaimenkoirille

Äärettömät sanat. Aleksi Saarela. Matematiikan ja tilastotieteen laitos ja FUNDIM-keskus, Turun yliopisto. A. Saarela (TY) Äärettömät sanat 1 / 28

TIETOTEKNIIKAN MATEMATIIKKA

Tietorakenteet, laskuharjoitus 8, malliratkaisut

3. Muuttujat ja operaatiot 3.1

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet Y Python

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

D B. Harvat hakemistot. Harvat hakemistot

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Transkriptio:

Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi 19.05.2014

DNA:n sekvensointi DNA:n pilkotaan lyhyiksi mallipalasiksi, templaateiksi, joiden emäsjärjestys selvitetään. Templaattien pituus yleensä 26-100 emästä. Analysointivaiheessa pyritään rinnastamaan lyhyet sekvenssit referenssigenomia vasten. Referenssigenomi Lyhyet sekvenssit Konsensussekvenssi GCTGATGTGCCGCCTCACTCCGGTGG CACTCCTGTGG CTCACTCCTGTGG GCTGATGTGCCACCTCA GATGTGCCGCCTCACTC GTGCCGCCTCACTCCTG CTCCTGTGG GCTGATGTGCCGCCTCACTCCTGTGG

Variaation tyypit ACGGCT ACGCCT TTGATCA TTTCA GCCTAT GCTCAACTAT Yhden nukleotidin polymorfismi (Single Nucleotide polymorfism, SNP): yhden emäksen korvautuminen toisella. Poisto (Deletion): yhden tai useamman peräkkäisen emäksen poistuminen. Lisäys (Insertion): yhden tai useamman peräkkäisen emäksen lisääminen.

Sekvenssien rinnastaminen

Perinteiset rinnastusalgoritmit Needleman-Wunsch-algoritmi löytää parhaan kokonaisrinnastuksen kahden sekvenssin välillä. Kaksiulotteisessa taulukossa esitetään kaikki mahdolliset rinnastukset, jotka sekvenssien välillä voidaan tehdä. Taulukko täytetään seuraavalla rekursioyhtälöllä:

Perinteiset rinnastusalgoritmit Smith-Waterman-algoritmi löytää parhaan paikallisrinnastuksen kahden sekvenssin välillä. Muistuttaa Needleman-Wunsch-algoritmia, mutta merkittävin ero on se, että pistetaulukkoon ei merkitä negatiivisia arvoja, vaan ne muutetaan nolliksi:

Heuristiset rinnastusalgoritmit. Perinteiset rinnastualgoritmit löytävät varmasti optimaalisen ratkaisun käytettävälle pisteytysmallille. Aika- ja tilavaativuus niillä on kuitenkin luokkaa O(nm), missä n ja m ovat rinnastettavien sekvenssien pituudet. Heuristiset menetelmät eivät aina löydä optimaalista ratkaisua, mutta yleensä pääsevät nopeasti riittävän lähelle.

Lyhyiden sekvenssien rinnastaminen Heuristisia menetelmiä käyttäen paikallistetaan ensin referenssigenomista muutamia alueita, joihin kukin hakusekvenssi todennäköisesti sijoittuu. Tämän jälkeen hyödynnetään tätä löydettyä pientä osajoukkoa ja tarkempia rinnastusalgoritmeja, esimerkiksi Smith-Watermania tai Needleman- Wunschia lopullisen rinnastuksen muodostamiseen. Rinnastusalgoritmit muodostavat yleensä joko referenssisekvenssistä tai hakusekvensseistä indeksin, joka perustuu hajautustauluun tai loppuosarakenteeseen.

Hajautustauluihin perustuvat rinnastusalgoritmit indeksi joko hakusekvensseistä tai referenssigenomista. Hajautustaulu on hakurakenne, johon tallennetaan avain-arvo-pareja. Avain muutetaan kokonaisluvuksi väliltä 1,...,m jollain hajautusfunktiolla. Tämä kokonaisluku määrää m-paikkaisessa taulukossa indeksin, johon avainta vastaava arvo sijoitetaan.

Hajautustauluihin perustuvat rinnastusalgoritmit Perustuvat havaintoon, että jos kaksi sekvenssiä R ja H eroavat toisistaan enintään k:n merkin verran, niin jakamalla H k+1:een yhtä pitkään osaan saadaan ainakin yksi osa, joka rinnastuu täydellisesti ainakin yhteen R:n osaan. Spaced seed -siemenet koostuvat k:sta merkistä, joiden ei tarvitse sijaita merkkijonossa peräkkäin. Esimerkiksi kuuden painoinen ja seitsemän mittainen malli 1110111 sallii yhden hudin, ja esimerkiksi pätkät ACTGACT ja ACTTACT mallin mukaan vastaavat toisiaan.

Loppuosarakenteisiin perustuvat rinnastusalgoritmit Loppuosarakenteet ovat hakurakenteita, jotka sisältävät merkkijonon kaikki loppuosat. Ihmisen genomin loppuosapuuta tai -taulukkoa ei ole kuitenkaan käytännössä mahdollista pitää muistissa sellaisenaan, joten rinnastusalgoritmeissa indeksissä hyödynnetään usein tiivistettyä loppuosataulukkoa kutenfm-indeksiä. FM-indeksi käyttää hyödykseen Burrows-Wheelermuunnoksen ja loppuosataulukon välistä suhdetta. FM-indeksi on loppuosarakenteista käytetyin sen pienen muistinkäytön vuoksi.

Burrows-Wheeler-muunnos Muunnos, jonka avulla merkkijonoista saadaan paremmin pakkautuvia, sillä näin ne todennäköisesti sisältävät enemmän paikallista toistoa.

FM-indeksi FM-indeksissä muunnettu merkkijono pakataan vielä kolmessa osassa käyttäen siirrä eteen -tekniikkaa (Move-To-Front encoding, MTF), RLE:tä (run-length encoding) ja vaihtelevan mittaista koodausta (variable-length coding). FM-indeksistä on mahdollista etsiä merkkijonon eli hahmon esiintymät purkamatta rakennetta käyttäen takaperinhakua.

Sopivan rinnastusohjelman valitseminen Eri rinnastusohjelmien vertaaminen tai asettaminen paremmuusjärjestykseen ei ole helppoa. Eri ohjelmien välillä eroavaisuuksia siinä, minkälaista dataa ne on optimoitu käsittelemään. Eroja myös siinä, miten paljon ja minkä kokoisia aukkoja ne sallivat rinnastuksissa Valitse ohjelma, joka saavuttaa tavoitteeseen sopivan tasapainon nopeuden, muistinkäytön ja tarkkuuden suhteen

Yhteenveto Sekvensointoteknologioiden nopean kehittymisen myötä sekvenssien rinnastaminen oli jonkin aikaa sekvenssianalyysin pullonkaula. Uusia algoritmeja kehitettiin kuitenkin nopeasti. Burrows-Wheeler-muunnokseen perustuvat algoritmit ovat hallinneet rinnastusohjelmien kehitystä viime vuosien aikana, sillä ne vaativat tyypillisesti vähemmän muistia kuin hajautustauluihin perustuvat algoritmit. Tulevaisuudessa sekvensointiteknologiat tulevat tuottamaan yhä pidempiä skevenssejä, joten algoritmien on sallittava enemmän aukkoja. Hajautustauluihin perustuvat menetelmät saattavat olla parempia tähän tarkoitukseen.