Lyhyt lukukartoitus

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 18. lokakuuta 2017 tarkistetusta versiosta . tarkastukset vaativat 8 muokkausta .

Lyhytlukukartoitus ( englanniksi  Short-Read Sequence Alignment, Short-Read Sequence Mapping ) on ​​bioinformaattinen menetelmä toisen sukupolven sekvensoinnin tulosten analysointiin , jossa määritetään referenssigenomissa tai -transkriptomissa sijainteja, joista jokainen lyhyt lukema voisi saadaan suurimmalla todennäköisyydellä. Se on yleensä ensimmäinen vaihe tietojenkäsittelyssä, jos tutkittavan organismin genomi tiedetään.

Menetelmä

Seuraavan sukupolven sekvensointialustat mahdollistavat miljoonien lyhyiden 50-500 bp:n sekvenssien tehokkaan sekvensoinnin. Tätä varten DNA- tai cDNA - molekyyli jaetaan useisiin lyhyisiin segmentteihin, jotka sitten sekvensoidaan rinnakkain. Kun näiden lyhyiden segmenttien (lukemien) sekvensoidut sekvenssit on saatu, täydellinen genomi tai cDNA-sekvenssien sarja on rekonstruoitava niistä. Tätä varten on tarpeen määrittää jokaiselle lukemalle todennäköisin sijainti referenssigenomissa.

Toisin kuin de novo -reassembly , joka kokoaa lukemat yhteen tämän tuntemattoman genomin rekonstruoimiseksi, monissa nykyisissä projekteissa on "referenssigenomi" - jo tunnettu läheinen genomi toisesta organismista. Tai se voi olla joukko viitesarjoja. Tässä tapauksessa, jotta lukema saisi jonkinlaisen merkityksen, sen sijainti vertailutiedoissa on määritettävä. Tätä prosessia kutsutaan kartoitukseksi tai kohdistukseksi .  Kartoitus voi näyttää hieman erilaiselta eri tehtävissä, esimerkiksi: genomikartoituksessa suuria aukkoja ei pitäisi olla, kun taas RNA-seq:n kohdalla ne ovat sallittuja silmukoinnin vuoksi. Yleisesti ottaen kartoitustehtävät eivät ole muuttuneet viimeisen sukupolven sekvenssereiden jälkeen, mutta edellistä sukupolvea varten kehitettyjä ohjelmia ei ole suunniteltu toimimaan lisääntyneillä tietomäärillä, eivätkä ne myöskään toimi hyvin lyhyiden lukujen kanssa.

Ongelmia

Genomin vaihtelu- ja sekvensointivirheet

Suurin ongelma on se, että tutkittu genomi eroaa referenssigenomista genomin vaihtelun (esimerkiksi SNP: n tai indelien) sekä sekvensointivirheiden vuoksi. Tästä johtuen lukukohdan ja sen "oikea" sijainti referenssigenomissa voi olla erilainen kuin tämän alueen kohdistaminen mihin tahansa muuhun vertailugenomin paikkaan, joten kartoitusohjelmien on pystyttävä löytämään epätarkkoja osumia. Tätä varten käytetään erilaisia ​​heuristioita. Kun tämän päälle asetetaan silmukoinnin mahdollisuus RNA-seq:n tapauksessa, ongelmasta tulee vielä monimutkaisempi.

Toistuvat elementit

Myös toistuviin elementteihin kuuluvat lukemat ovat ongelma. Tässä tapauksessa ei aina ole mahdollista yksiselitteisesti päättää, mihin tämä lukema kartoitetaan. Tällainen sekvenssi voidaan kartoittaa satunnaisesti mihin tahansa sopivaan kohtaan tai leimata kartoitetuksi useisiin paikkoihin.

Laskennallinen ongelma

Jos referenssigenomi on suuri ja lukuja on tehty miljardeja, kartoitusaika on suuri ongelma. Kohdistus on aina ollut äärimmäisen resurssiintensiivinen tehtävä, mutta tässä tapauksessa ongelma nousee laadullisesti uudelle tasolle, joka vaatii poikkeuksellista rationaalisuutta ja tehokasta prosessoriajan ja muistin käyttöä algoritmeilta.

Lähestymistavat

Näiden ongelmien ratkaisemiseen on kaksi päätapaa: hash-taulukoiden ja päätepuiden tai taulukoiden käyttäminen.

Hajautusmenetelmän perusteet

Hajautusprosessi on monta kertaa nopeampi ja halvempi kuin klassinen kohdistus, jossa käytetään Smith-Waterman-algoritmin dynaamista ohjelmointia .

Tämä lähestymistapa käyttää hash -funktiota, jonka avulla voit muuntaa merkkijonon avaimeksi, jota voidaan käyttää pikahauissa. Helpoin tapa olisi jakaa genomi sanoiksi, jotka vastaavat lukemisen pituutta, mutta tämä lähestymistapa ei toimi, koska pitkät sanat ovat todennäköisemmin ainutlaatuisia ja niiden tallennus vie liikaa muistitilaa. Sen sijaan käytetään lyhyempien osien tiivistämistä, jotka ovat paljon yleisempiä. Kun hash-funktio on saanut sopivat paikat, voidaan yrittää kartoittaa loput lukemasta genomiin. Myös lähestymistapa, jossa lukema jaetaan useisiin osiin, mahdollistaa korvausten mahdollisuuden sisällyttämiseen algoritmiin. Joten Maq-ohjelmassa lukema on jaettu 4 osaan, joita kutsutaan siemeniksi (lyhyet osat tarkalla vastaavuudella). Jos lukema sopii täydellisesti referenssiin, kaikki 4 siementä sopivat täydellisesti. Jos lukemassa on yksi epäsuhta, joka johtuu todennäköisesti SNP :iden läsnäolosta tai sekvensointivirheistä, se putoaa yhteen siemenistä, kun taas muut 3 kartoittavat edelleen täydellisesti. Samoin kahdella vaihdolla vähintään kaksi siementä sopii täydellisesti. Näin ollen kartoittamalla kaikki mahdolliset lukuparit indeksoinnilla (niitä tulee olemaan 6, koska siementen on mentävä tietyssä järjestyksessä), saamme genomiin rajoitetun joukon paikkoja, joihin koko luku voidaan kartoittaa, kun jossa on mahdollista käyttää tavallista kohdistusta sen määrittämiseksi, mikä asennoista sopii parhaiten (katso kuva 1a). SOAP, RMAP ja SeqMap toimivat samalla tavalla.

Tämän lähestymistavan muunneltuna voi olla ajatus ottaa huomioon kaikki lukemisen k-mitat tietynpituisten ei-päällekkäisten osien sijaan. Joten ACGT:n lukemista varten niitä on kolme: AC, CG, GT. SHRiMP2 ja RazerS toimivat samalla tavalla. Tämä lisää herkkyyttä, mutta lisää myös ajan kustannuksia.

Kaikki nämä tiedot vievät paljon muistitilaa. Muistin kulutuksen vähentämiseksi useimmat ohjelmat käyttävät kaksibittistä nukleotidien koodausta (A 00, C 01, G 10, T 11), mutta tämä ei salli moniselitteisen nukleotidin N käyttöä, joka voi olla läsnä sekä luku- että referenssigenomissa. Ohjelmat käyttävät erilaisia ​​lähestymistapoja tämän kiertämiseksi. Joten BWA korvaa N:n satunnaisella nukleotidilla ja SOAP2 korvaa kaiken N:n G:llä.

Erilaisia ​​parannuksia voidaan käyttää algoritmien nopeuttamiseen ja virheiden kiertämiseen. Käytä esimerkiksi välinpitämättömiä paikkoja (merkitkäämme ne X:llä). Joten ACGxACG siemen kohdistetaan sekä ACGAACG:n että ACGCACG:n suhteen, mikä lisää kartoituksen herkkyyttä (vaikka se lisää käsittelyaikaa, koska jokaisella lukemalla on enemmän löytöjä). Tätä käytetään ohjelmissa, kuten Zoom, BFAST, GASSST, SHRiMP2, PerM.

Suurimman osan ajasta algoritmit eivät käytä siementen etsimiseen, vaan ympäristönsä tarkistamiseen. Useimmat ohjelmat käyttävät Needleman-Wunsch-algoritmia tai sen muunnelmia. Toiset, kuten GASSST, lisäävät välivaiheen, jossa mitataan Euler-etäisyys, joka yksinkertaisesti ottaa huomioon identtisten kirjainten määrän. Jos esimerkiksi yritämme kartoittaa lukua, joka sisältää 5 G:tä, alueelle, joka sisältää vain 1 G:n, meillä on vähintään 4 korvausta. Tämän lähestymistavan avulla voit karsia nopeasti pois sopimattomat alueet ja soveltaa tarkempia (mutta myös kalliita) lähestymistapoja vain lupaaville alueille.

On mahdollista tiivistää ei genomia ja etsiä siitä lukuja, vaan tiivistää lukemia ja etsiä niistä samanpituisia genomin osia. Varhaiset Maq-, Rmap- ja SeqMap-versiot käyttivät tätä lähestymistapaa, mutta sen jälkeen yhden kokeen lukumäärä on kasvanut huomattavasti ja tämä lähestymistapa on lakannut olemasta järkevä.

Suffiksilähestymistavan perusteet

Hajautusalgoritmit eivät kestä hyvin toistoja, sillä tarkistettavien siementen määrä kasvaa huomattavasti. Tämän ratkaisemiseen käytetään suffiksipuihin ja suffiksitaulukoihin perustuvia algoritmeja . Tämän lähestymistavan etuna on erityisesti se, että toistot eivät pidennä algoritmin ajoaikaa, koska toistuvat osiot "kutistuvat" suffiksipuussa. Puhtaimmillaan tämä lähestymistapa toimii erittäin nopeasti, jos siinä ei ole virheitä ja vaihtoja (esimerkiksi MPscan-ohjelma käyttää sitä).

Suffiksitaulukkoa käytetään muistin säästämiseen. Yleensä haku suffiksitaulukon kautta ei pohjimmiltaan eroa suffiksipuun kanssa työskentelystä, mutta vaatii hieman monimutkaisempaa lähestymistapaa. Burroughs-Wheeler-muunnoksia käytetään usein . Kaikkien muunnosten jälkeen tällaisen suffiksitaulukon koko on verrattavissa alkuperäisen genomin kokoon. Joten koko ihmisgenomille rusettiohjelman luoma päätetaulukko vie 2 gigatavua. Vertailun vuoksi hash-pohjaisten indeksien tietokanta (kuten Maq-ohjelmassa käytetty) vie noin 50 gigatavua muistia.

Ferragin-Manizi-algoritmia käytetään sanojen etsimiseen .

Yksinkertaistetussa muodossa prosessi on seuraava. Lukemat kohdistavat yhden nukleotidin Burrows-Wheeler-transformoituun genomiin. Jokainen kohdistettu nukleotidi antaa ohjelman kaventaa paikkojen määrää, joihin koko luku voi mennä. Jos ohjelma ei löydä kohtaa, johon lukema sopii täydellisesti, se palaa edelliseen vaiheeseen, tekee korvaavan ja jatkaa hakua. Näin toimii esimerkiksi SHRiMP. Toisaalta, jos sallittujen virheiden määrä on suuri, tämä alkaa hidastaa algoritmia. Hieman mielenkiintoisempaa modifikaatiota on käytetty BWA-ohjelmassa - se kohdistaa ensin luetun vasemman ja oikean osan olettaen, että ainakin toisessa näistä kahdesta alueesta on vähemmän virheitä (mikä perustuu siihen, että 5'-pää on yleensä paremmin järjestyksessä).

Lähestymistapojen vertailu

Tällä hetkellä on olemassa ohjelmia, jotka käyttävät sekä yhtä että toista lähestymistapaa. Huolimatta siitä, että Burroughs-Wheeler-muunnoksiin perustuvat ohjelmat ovat nyt suositumpia, ei voida sanoa, että tämä lähestymistapa olisi parempi. Nämä ohjelmat käsittelevät toistoja nopeammin ja paremmin kuin hash-pohjaiset ohjelmat, mutta ne eivät todennäköisesti käsittele virheitä. Toisen tyyppisillä ohjelmilla on havaittavissa päinvastainen tilanne: hajautus mahdollistaa virheiden huomioimisen, mutta se alkaa kuluttaa paljon aikaa, kun kohtaa toistoja.

RNA sek

Tässä tapauksessa silmukoinnin mahdollisuus tulisi ottaa huomioon. Pohjimmiltaan hyödynnetään tietoa jo tunnetuista eksoneista ja introneista, mikä mahdollistaa eksoni-eksoni-assosiaatioista koostuvan tietokannan luomisen ja jo siihen tavanomaisten algoritmien, kuten bowtie tai maq, toteuttamisen. Ilmeisesti tämä lähestymistapa ei ota huomioon aiemmin tuntemattomia introneita, joten se voidaan yhdistää koneoppimiseen tuntemattomien silmukoiden ennustamiseksi.

Toinen lähestymistapa ei ehkä käytä huomautusta ollenkaan. Toimintatavassa ilman huomautuksia TopHat määrittää ensin mahdolliset eksonit, rakentaa tietokannan mahdollisista silmukointikohteista näiden tietojen perusteella ja sitten kartoittaa lukemat sen avulla. Mahdolliset eksonit määräytyvät vierekkäisten RNA-seq-lukemien sijaintien perusteella, kun ne on kohdistettu genomiin. Koska monet eksonit ovat lyhyempiä kuin nykyisten lukusekvenssereiden tuottamat, niitä ei havaita alkuperäisen kartoitusvaiheen aikana. TopHat ratkaisee tämän ongelman pääasiassa jakamalla lukemat lyhyemmiksi paloiksi ja kartoittamalla ne itsenäisesti.

TopHat käyttää kahta päämenetelmää mahdollisten liitoskohtien tunnistamiseen. Ensimmäinen ja tärkein tekijä mahdollisen silmukointikohdan puolesta on se, kun kaksi segmenttiä yhdestä lukemisesta (lukemissa, joiden pituus on vähintään 45 emäsparia) kartoitetaan tietylle etäisyydelle toisistaan ​​tai kun lukualueen sisäinen segmentti ei onnistu olla kartoitettu. Toinen tekijä on "peittosaarten" parien syntyminen, jotka ovat paikkoja, joissa monet RNA-seq-lukemat kartoitetaan vierekkäin. Naapurisaaret leikataan usein yhteen ja ovat transkriptiossa vierekkäin, joten TopHat etsii tapoja yhdistää ne intronilla.

Annotaatiopohjaisten algoritmien suurin ongelma on, että ne ovat erittäin riippuvaisia ​​itse merkintöjen laadusta, kun taas koneoppimista käyttävät algoritmit ovat erittäin riippuvaisia ​​harjoitusjoukon laadusta. Lisäksi, koska uudet merkinnät perustuvat vanhoihin, merkintöjen virheet voivat "leviää", tulla yhä "merkittävimmiksi" ja paljon vaikeammin havaittavissa.

Ohjelmat

BFAST

Lyhenne englannista.  Blat-tyyppinen nopea ja tarkka hakutyökalu . Ohjelman kehittäjät ovat keskittyneet ohjelman herkkyyteen virheille, SNP : ille ja indeleille, jolloin voit valita tasapainon nopeuden ja tarkkuuden välillä.

Tukee paritetun pään sekvensointia . Käyttää Smith-Waterman- algoritmia lopulliseen kohdistukseen tukemalla aukkoja ja pienten indelien määrittelyä [1] . Pystyy työskentelemään rinnakkaistilassa klusterissa. Ohjelmasta on olemassa versio bfast+bwa. Tukee Illumina-, ABI SOLiD-, 454- ja Helicos-tietomuotoja.

BLAT

BLAST-tyyppinen kohdistustyökalu. Optimoitu nopeuteen käyttämällä ei-päällekkäisten K-fragmenttien indeksiä, joka sopii tietokoneen RAM-muistiin [2] .

Sallii yhden vaihdon ottelua kohden.

rusetti

Käyttää Burrows-Wheeler-algoritmia indeksointiin. Ohjelma on optimoitu nopeudelle ja muistin kulutukselle, se voi käyttää useita prosessoriytimiä. Ilmoitettu nopeus ylittää 35 kertaa MAQ:n nopeuden ja 300 kertaa SOAPin nopeuden samoissa olosuhteissa. [3]

Sallii yhteensopimattomuudet.

Bowtien pohjalta rakennettiin TopHat-ohjelma RNA-seq-lukemien kohdistusta varten.

BWA

BWA (Biological Sequence Alignment)  on kolmen ohjelman sarja: BWA-backtrack, BWA-SW ja BWA-MEM. BWA-backtrack toimii Illuminan kanssa, lukee jopa 100 bp, BWA-SW ja BWA-MEM voivat toimia pidempien sekvenssien kanssa 70 - 1 miljoonaa bp. BWA-MEM on uusin versio, laadukkaampi ja tarkempi.

BWA-SW ja BWA-MEM pystyvät löytämään kimeeriset lukemat. [neljä]

BWA-SW käyttää Burrows-Wheeler-muunnosta yhdessä Smith-Waterman-taajuuskorjauksen kanssa. Pystyy työskentelemään pitkien sarjojen kanssa, mutta tarkempi ja nopeampi kuin BLAT. [5]

ELAND

Se tarkoittaa nukleotiditietojen tehokasta paikallista kohdistusta. Solexan kehittämä, jonka Illumina osti sitten.

Käyttää pari-pään lukemia, osaa tunnistaa rakenteellisia vaihtoehtoja. [6] Voi toimia vain 32 emäsparin pituisten sekvenssien kanssa, sallii enintään kaksi eroa, mutta ei voi toimia indelien kanssa. [7]

MAQ

Tuottaa kohdistuksen ilman rakoja. Yhden pään lukemissa se voi löytää jopa 2 tai 3 ristiriitaa käynnistysvaihtoehdoista riippuen. Mahdollistaa jopa yhden yhteensopimattomuuden parillisen pään lukemissa. [kahdeksan]

Rakentaa konsensusta tilastollisen mallin perusteella. [9]

Novoalign

Tasaa yksipään ja parillisen pään lukemat Illuminasta, paritetut 454:stä. Pystyy havaitsemaan kohdistukset, joissa on aukkoja tai epäsopivuuksia. Saattaa raportoida usean kohdistuksen. [kymmenen]

KATKARAPU

SHRiMP2 korostaa tarkkuutta, mikä mahdollistaa lukujen kohdistamisen polymorfismiin tai sekvensointivirheisiin.

Käyttää Smith-Waterman-algoritmia. Versio 1 indeksoi lukuja, versio 2 indeksoi genomin, minkä ansiosta se saavutti suuremman nopeuden.

Tukee Illumina/Solexa-, Roche/454- ja AB/SOLiD-lukuja, tukee rinnakkaislaskentaa. [yksitoista]

SOAP

Voi kohdistaa yhden luku- ja paripään fragmentit. Pystyy työskentelemään intronien kanssa.

Algoritmi käyttää 2way-BWT (2BWT) -indeksiä [12] . SOAP3-versio on GPU-optimoitu ja käyttää erityistä GPU-2BWT-indeksiä [13] .

TopHat

Bowtie-pohjainen RNA-seq-lukukohdistusohjelma.

Se luotiin toimimaan Illumina Genome Analyzerin tuottamien lukujen kanssa, mutta sitä on käytetty menestyksekkäästi muiden tekniikoiden luomien lukujen kanssa. Optimoitu lukemaan, jonka pituus on 75 emäsparia tai enemmän. Ei salli parillisten ja yhden pään lukujen sekoittamista yhteen.

Vertailevat ominaisuudet

Ohjelmoida Algoritmi paripää/yksipää Aukot (intronit) indels Korvaukset Lukupituus (bp)
BFAST Smith-Waterman. On olemassa versio, jossa on BWT +/+ + +
BLAT K-mitat (kuten BLAST) + 1-2 1-2
Rusetti Burroughs-Wheeler -/+ + <=100 [14] , 70-1M [15]
BWA Burrows-Wheeler + Smith-Waterman +/+ +
ELAND Siementen hajautus? +/? - <=2 32 asti
MAQ Siementen hajautus +/+ - + [16] 2-3 [17] yksipäälle, 1 paripäiselle <=63 [18]
Novoalign +/+ + +
Katkarapu K-mitat + Smith–Waterman +/+ + + +
SAIPPUA Burroughs-Wheeler +/+ + <=2 <=60
silinteri Burroughs-Wheeler +/+ [19] + + <=2 [20] >=75 [21]

Katso myös

Muistiinpanot

  1. BFAST: An Alignment Tool for Large Scale Genome Resequencing, Nils Homer, Barry Merriman, Stanley F. Nelson, PLOS One, http://www.plosone.org/article/info:doi/10.1371/journal.pone.0007767 Arkistoitu kopio päivätty 25. maaliskuuta 2013 Wayback Machinessa
  2. BLAT – BLAST-Like Alignment Tool, W. James Kent, Genome Res. huhtikuu 2002; 12(4): 656-664, https://www.ncbi.nlm.nih.gov/pmc/articles/PMC187518/ Arkistoitu 11. toukokuuta 2016 Wayback Machinessa
  3. Ultranopea ja muistitehokas lyhyiden DNA-sekvenssien kohdistaminen ihmisen genomiin, Ben Langmead, Cole Trapnell, Mihai Pop ja Steven L Salzberg, Genome Biology 2009, 10:R25, http://genomebiology.com/2009/10/3 /R25 Arkistoitu 2. toukokuuta 2013 Wayback Machinessa
  4. Burrows-Wheeler Aligner . Haettu 29. huhtikuuta 2013. Arkistoitu alkuperäisestä 1. toukokuuta 2013.
  5. Nopea ja tarkka pitkään luettava kohdistus Burrows-Wheeler-muunnoksen kanssa, Li H, Durbin R, Bioinformatics, 2010 Mar 1;26(5):589-95, https://www.ncbi.nlm.nih.gov/pubmed /20080505 Arkistoitu 6. elokuuta 2017 Wayback Machinessa
  6. Data Sheet: Sequencing, Illumina, http://www.illumina.com/Documents/products/datasheets/datasheet_genomic_sequence.pdf Arkistoitu 10. huhtikuuta 2013 Wayback Machinessa
  7. Aligning DNA - Eland, http://www.fejes.ca/2008/01/aligning-dna-eland.html Arkistoitu 6. kesäkuuta 2011 Wayback Machinessa
  8. Maq-käyttöopas . Haettu 29. huhtikuuta 2013. Arkistoitu alkuperäisestä 1. toukokuuta 2013.
  9. Lyhyiden DNA-sekvensointilukemien kartoitus ja muunnelmien kutsuminen kartoituslaatupisteiden avulla, Heng Li, Jue Ruan ja Richard Durbin, Genome Res. marraskuuta 2008; 18(11): 1851-1858. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2577856/ Arkistoitu 27. tammikuuta 2017 Wayback Machinessa
  10. Novocraft.com: Novocraft . Haettu 29. huhtikuuta 2013. Arkistoitu alkuperäisestä 1. toukokuuta 2013.
  11. SHRiMP2: Herkkä mutta käytännöllinen lyhyt lukukartoitus, Matei David, Misko Dzamba, Dan Lister, Lucian Ilie ja Michael Brudno, Bioinformatics (2011) 27 (7): 1011-1012, http://bioinformatics.oxfordjournals.org/content/ 27.7.1011.täynnä
  12. SOAP :: Lyhyt oligonukleotidianalyysipaketti . Haettu 29. huhtikuuta 2013. Arkistoitu alkuperäisestä 1. toukokuuta 2013.
  13. SOAP :: Lyhyt oligonukleotidianalyysipaketti . Haettu 29. huhtikuuta 2013. Arkistoitu alkuperäisestä 1. toukokuuta 2013.
  14. BWA takaperin
  15. BWA-SW ja BWA-MEM
  16. vain pariliitokselle
  17. käynnistysvaihtoehdoista riippuen
  18. UKK . Haettu 28. huhtikuuta 2013. Arkistoitu alkuperäisestä 5. joulukuuta 2012.
  19. sekoittamatta keskenään
  20. oletusarvo, voi muuttua
  21. on optimoitu näille pituuksille, mutta toimii myös pienempien pituuksien kanssa