10.2. Szekvencia-illesztések és egyéb fontos algoritmusok

10.2.1. Páronkénti szekvencia-illesztések (pairwise alignments)

A páronkénti szekvencia-illesztés a molekuláris biológia egyik leggyakrabban használt algoritmusa. A feladat az, hogy két, hasonló kódsort a lehető legpontosabban megfeleltessünk egymásnak - ha szükséges, akár rések (deléciók) és beillesztések (inszerciók) segítségével. A kódsor egyedi betűi lehetnek nukleotidok (nukleinsavak esetén) vagy aminosavak (fehérjék esetén): az algoritmus mindkét esetben nagyon hasonló lesz. A két kódsor megfeleltetésének problémája visszavezethető egy híres feladatra, a “manhattani turista problémája".

10.5. ábra: A „manhattani turista” problémája

A kérdés: hogyan tudunk eljutni egy teljesen négyzethálós térképen az utcák (élek) mentén az utcasarkokon (csúcsokon) keresztül a bal felső sarokból a jobb alsóba, úgy hogy közben a lehető legtöbb nevezetességet érintjük? (ld. 10.5. ábra). A problémát nagyon könnyű számítógéppel megoldani, amely pontozással megtalálja az optimális utat. Ugyanígy lehet DNS vagy fehérjeszekvenciákat pontos párokba állítani, itt a “bejárt út” az elfogadott vagy elvetett párokat mutatja meg (ld. 10.6. ábra). Erre a feladatra számos program áll rendelkezésre:pl. a CLUSTAL programcsomag (ld. 10.2.5. fejezet).

10.6. ábra: A páronkénti szekvencia-illesztések problémája

10.2.2. A szekvencia-illesztés paraméterei

Az illesztés jósága a pontozási rendszertől függ. Egyrészt súlyozni kell az egyes betűk hasonlóságát: egy leucin aminosav például jobban hasonlít egy izoleucinra, mint egy argininre. Ezt különféle hasonlósági mátrixok segítségével lehet megtenni (a részletekre itt most nem térünk ki). A gyakorlatban a fehérjék számára a BLOSUM, GONNET vagy PAM mátrixokat használjuk, a nukleinsavaknak egyszerűbb mátrixok is megfelelnek (ID). A hosszúságbeli eltéréseket, inszerciókat/deléciókat szintén pontozni kell, méghozzá negatív (bűntető) pontokkal. A jobb illesztőprogramok általában megengedik ezen paraméterek változtatását, erre pedig a következő ok miatt lehet szükség: alacsonyabb fokú hasonlóság vagy nagyon eltérő hosszúságú párok esetén a módszer sokszor nem találja meg az összetartozó szakaszokat. Ilyen problémák gyakoriak például rendezetlen fehérjeszekaszok evolúciós vizsgálata esetén (ahol nagyon alacsony a konzerváltság). Tehát ha felmerül a gyanú, hogy a módszer tévedett, ne sajnáljunk "játszani" a paraméterekkel, egy jobb minőségű illesztés érdekében!

10.2.3. A BLAST algoritmus

A páronkénti illesztést nem csak egyenként lehet végrehajtani. A legtöbb adatbázis lehetőséget kínál arra, hogy az összes ott tárolt szekvencia ellenében automatikusan lefuttassuk a páronkénti illesztést, és a találatokat jóság alapján rangsorolva visszakapjuk: ez a BLAST algoritmus (Basic Local Alignment Search Tool). A BLAST-nak számos változata létezik: fehérjékre és nukleinsavakra egyaránt használható. A program a megadott szekvenciában előbb (heurisztikus módon) kellően egyedi, kicsi darabokat azonosít, ezzel keres, majd az elsődleges találatokon végzi el a teljes illesztéseket. Az NCBI és a UniProt oldalai automatikusan felkínálják a BLAST programot minden egyes oldalon, az éppen aktuálisan kijelölt szekvenciára. A visszaadott találatokon általában jelölik a megfeleltetett szakaszt, az azonosság/hasonlóság mértékével együtt (színkóddal is). A véletlen egyezés (vagyis a tévedés) valószínűségének értékét is megadják (ez a p-érték), a rangsor ennek alapján készül (ld. 10.7. ábra).

Protein BLAST eredménye

10.7. ábra: Protein BLAST keresés a UniProt szerveren (humán ciklin E1 fehérje)

10.2.4. Szekvenálás ellenőrzése illesztésekkel. Plazmid szerkesztők

A gyakorlatban a páronkénti illesztéseket leggyakrabban a molekuláris klónok ellenőrzésére használjuk. A szekvenálással meghatározott bázissorrendet ugyanis össze kell hasonlítani az eredetivel. Kényelmes megoldás lehet egy-egy BLAST futtatás akár DNS szinten, akár a lefordítás után fehérje szinten. Ennek azonban vannak bizonyos hátulütői: a BLAST elsősorban kisebb darabonkénti egyezéseket keres, így a mutációk, inszerciók és deléciók esetleg elkerülhetik a figyelmünket. Továbbá a BLAST nem tud mit kezdeni a szintetikus, nem természetes génekkel (pl. emberi vagy egér eredetű géndarab egy bakteriális plazmidban), így az eredmény néha meglehetősen rossz illesztés lehet. A legmegbízhatóbb megoldás, ha előbb "megépítjük" a klónunk elméletben várt szekvenciáját, majd ezt az elméleti szekvenciát hasonlítjuk össze a szekvenálás által megadottal. A bázissorrendet akár szövegszerkesztőkben is összeállíthatjuk (megkeresve a restrikciós helyeket, és kicserélve a szükséges oligonukleotidokat), de nagy segítség lehet egy-egy plazmid szerkesztő program is. Ilyen például az ApE vagy a BioEdit, amelyek ingyenesen hozzáférhetőek és telepíthetők az internetről. Ezek a szerkesztőprogramok megkönnyítik az automatikus restrikciós enzim hasítóhely keresést, emellett megtalálják a plazmidok replikációs origóit, a gyakoribb promótereket és egyéb fontos régiókat, valamint lehetővé teszik a transzláció tesztelését is.

10.2.5. Többszörös illesztések (multiple alignments). A Clustal programcsomag

Az egyszerűbb feladatok megoldására a páronkénti illesztés általában megfelel. Ha azonban evolúciós összehasonlításokat szeretnénk kapni, akkor gyakran nagyszámú rokon szekvenciát kell egymáshoz illeszteni. Hogyan lehet ezt végrehajtani? A többszörös illesztés problémája szerencsére visszavezethető a páronkénti illesztésekre. A legtöbb modern illesztőprogram előbb végrehajtja az összes lehetséges páronkénti illesztést, majd a két legjobban illeszkedő szekvenciát kiválasztva, konszenzust képez. Ezek után hierarchikusan haladva építi fel a végleges illesztést. A módszer lényegéből fakadóan automatikusan generált "törzsfát" is kapunk, amely az egyes szekvenciák "rokonsági" (hasonlósági) viszonyait mutatja. Ahogy páronkénti illesztésekre, itt is számos különféle szoftver áll rendelkezésre. Talán a legnépszerűbb a Clustal programcsomag: ennek mind a helyileg telepíthető változata (ClustalX), mind az interneten futó változatai (ClustalW2 és ClustalO) ingyenesek, és könnyen használhatóak. A bemeneti szekvenciákat FASTA formátumban kell megadni (a nukleotidok vagy aminosavak egy betűs kódsora fölé kell egy fejléc-sor, amelynek ">" jellel kell kezdődnie, és egy egyedi névvel kell folytatódnia). A program automatikusan detektálja, hogy DNS-ről, RNS-ről, vagy fehérjéről van-e szó, valamint hogy egyszeres vagy többszörös illesztést hajtunk-e végre. A kész illesztés alatt a csillag (*) karakter jelöli a teljes egyezést, a pontok (: és .) a különféle fokú részleges egyezéseket (kémiailag rokon aminosavak). Az inszerciókat illetve deléciókat kötőjelek (-) mutatják. A Clustal program többszörös illesztés esetén a törzsfát is megadja, akár kladogram (azonos ághosszak), akár dendrogram (hasonlóság-súlyozott ághosszak) formájában (ld. 10.8. ábra).

Többszörös szekvencia illesztések

10.8. ábra: Többszörös szekvencia illesztések (példa: human PEA15 fehérje). Az ábra jobb oldalán az illesztés alapján összeállított kladogram látható.

10.2.6. Evolúciósan konzervált elemek azonosítása

A rendelkezésünkre álló nagyszámú teljes genom lehetővé tesz egy teljesen új megközelítést a molekuláris biológiában. Ma már viszonylag nagy megbízhatóságú konzerváltsági analízist tudunk végezni a legtöbb gén vagy fehérje esetében. A többszörös szekvencia-illesztések rendkívül értékes adatokkal szolgálnak. Az a tény, hogy egy gén vagy fehérje működéséhez nélkülözhetetlen elemek az evolúció során hosszan megmaradnak, magától értetődő. Ezen állítás megfordítása, hogy a konzervált elemek egyben fontosak is a makromolekula működéséhez, általában nem igaz. Ha azonban elegendően távoli organizmusokat vizsgálunk (pl. ember, béka és hal vagy csiga, fonálféreg és ecetmuslica), ahol a véletlen mutációk már szinte minden olyan pozíciót kicseréltek, amely nem volt abszolút nélkülözhetetlen, akkor a megfordítás is igazzá válik. Ilyen esetekben a többszörös szekvencia-illesztések rendkívül értékes adatokkal szolgálnak. Ezekhez az elemzésekhez nincs szükség semmiféle szerkezeti ismeretre; így egy hasznos kiegészítő technika lehet a kísérletes eredmények értelmezésére vagy akár ellenőrzésére. Például a DNS-ben talált hosszú konzervált szakaszok legtöbbször az exonoknak felelnek meg, míg a köztes, alig-alig konzervált szakaszok lesznek az intronok. Hasonlóan, a fehérjékben látható, hosszan konzervált blokkok általában a szerkezettel rendelkező doméneket mutatják meg, míg a megőrzött aminosavakat nem mutató szakaszok legtöbbször rendezetlenek. Az egyébként teljesen változatos fehérjeszekvencia közepén itt-ott található, rövid konzervált szakaszok a molekulák összekapcsolódását segítő felismerő elemeknek (lineáris motívumoknak) felelhetnek meg. Ugyanígy, a gének promóterében található konzervált "szigetek" igen gyakran a transzkripciós faktor kötőhelyeket jelzik. A módszer használatához mindössze arra van szükség, hogy megtaláljuk azt az optimális evolúciós távolságot, ahol a kérdéses gén vagy fehérje működése még közel azonos, viszont a szekvencia már eléggé különböző. Feltéve, hogy a szekvenciák megbízhatóak, az adatbázisból BLAST segítségével nyert találatok óvatos illesztése ilyenkor nagyon sok információt nyújthat. (ld. 10.9. ábra)

Evolúciós analízis többszörös szekvencia-illesztés alapján

10.9. ábra: Evolúciós analízis többszörös szekvencia-illesztés alapján (szerkezeti és szekvenciális predikciók)

10.2.7. Automatizált módszerek a szekvenciák elemzésére

A bioinformatika egyik legnagyobb kihívása, hogy ismeretlen makromolekulák tulajdonságait kellő biztonsággal meg lehessen jósolni. Ezekre az előrejelzésekre (predikciókra) számos módszer áll rendelkezésre, itt csak a leggyakrabban használt néhány algoritmus alapjait fogjuk áttekinteni.

10.2.7.1. Pontozómátrixok (PSSM: Position Specific Scoring Matrices). Logók

Abban az esetben, ha csak egy-egy rövid, jól definiált szakasz felelős a DNS, RNS vagy a fehérje adott biológiai funkciójáért, viszonylag egyszerű feladat jóslatokat adni. Ezeket az elemeket szokták lineáris motívumoknak nevezni. Például az állatvilágban megtalálható úgynevezett SH3 domén egy konzervált szerkezeti elem, és olyan partnerfehérjékhez kötődik, ahol (a fehérje rendezetlen részén) két prolin egymástól három aminosav távolságra van, őket pedig megfelelő pozícióban egy arginin követi. Ilyesfajta szekvenciák azonban óriási számban vannak a fehérjékben: nagy részük nem tud SH3 doménekhez kötődni. Hogyan tudjuk mégis jó eséllyel megmondani, hogy melyek a valódi motívumok? Minden ilyen interakció a polipeptidlánc speciális szerkezetével függ össze, amely „összefér” a partner domén felszínével. A szerkezetnek azonban pontosan tükröződnie kell az aminosav-összetételben és sorrendben. Ha az ismert példák szekvenciáit megfelelő módon illesztjük, látni fogjuk, hogy nemcsak a Pro vagy Arg aminosavak a rögzítettek, hanem a köztes pozíciókban is határozott preferenciák láthatóak. Ezeket pozíció szerinti (20 tagú) vektorokkal lehet kifejezni, az összes vizsgált pozíció vektorai pedig egy pozíció specifikus mátrixot fognak kiadni, amelyet PSSM-nek rövidítünk (Position Specific Scoring Matrix). A szekvencia-preferenciákat leglátványosabban ún. szekvencia logó formájában lehet ábrázolni: Itt minden egyes betű (szimbólum) magassága arányos a mátrix neki megfelelő súlyával (ezt a gyakoriság értéket az y tengelyen az adott szimbólum információ tartalmával, bit-ekben fejezik ki). (ld. 10.10. ábra) Magát a mátrixot pedig fel lehet használni a többi, potenciális motívum jóságának vizsgálatára is: azok a találatok lesznek a legesélyesebbek arra, hogy valóban működőképesek legyenek, amelyek szekvencia-eloszlása leginkább hasonlít a már ismert példákéra. Sajnos a módszer alkalmazása feltételezi azt, hogy nagyszámú, kísérletesen azonosított motívumot ismerünk, amelyek mind egyforma módon kötődnek a partner molekulák felszínéhez: a gyakorlatban ezért gyakran pontatlan eredményeket kapunk.

10.10. ábra: A humán Crk fehérjéhez kötődő peptidek szekvencia logója

10.2.7.2. Rejtett Markov-modellek (HMM: Hidden Markov Models)

A legtöbb biológiai funkció nemcsak egy-egy rövid motívum jelenlététől vagy hiányától függ, hanem nagyobb szerkezeti blokkok jelenlétét feltételezi. Ezek a blokkok azonban minden esetben lebonthatóak elemi motívumokra: a motívumok sorrendje pedig általában rögzített, a hossza viszont változatos lehet. Például egy eukarióta gén esetében a promóter régió után exonok következnek, közöttük intronok, azok után pedig egy poliadenilációs hely, mindegyik jellemző szekvencia-összetétellel. Ezen ismereteket fel lehet használni például a gének automatizált jóslására. A rejtett Markov-modellek (Hidden Markov Models) a bioinformatika "nagyágyúi", amelyeket pontosan ilyen problémák megoldására dolgoztak ki (ld. 10.11. ábra).

Maga a modell nem más, mint egy gráf, amely állapotokból (csúcsokból) és állapot-átmenetekből (élekből) áll. Az egyes állapotok közötti átmenet mindig megadott valószínűséggel lehetséges. Az egyes állapotátmenetek pedig függetlenek a megelőzőektől (a fenti példában: az exonban haladva minden nukleotid után egyforma valószínűséggel folytatódhat az exon vagy következhet egy intron, és ez nem függ attól, hogy mennyi nukleotid volt már előtte). A statisztikában az ilyen rendszereket hívják Markov-láncnak.

10.11. ábra: Példa a rejtett Markov-modellek alkalmazására

Ez a lánc pedig azért rejtett, mert nem figyelhetjük meg közvetlenül a belső állapotokat (pl. intron/exon), csak egy attól függő külső változót (például a nukleinsav-összetételt). Vegyük a következő, egyszerű modellt: egy képzeletbeli organizmus génjeiben a nem kódoló régiók A/T gazdagok, a promóter régió nagyon G/C gazdag, míg a kódoló régió nukleotid eloszlása egyenletes. Az erre az ismeretekre felépített rejtett Markov-modell alapján pontosan ki lehet számolni hogy a genomban legvalószínűbben hol vannak a fehérje-kódoló gének. A trükk az, hogy minden egyes állapot átmenetkor összeszorzódnak a valószínűségek, és a végén vissza lehet számolni (számítógéppel) az egyes állapot-utakhoz tartozó egyedi valószínűségeket. Az efféle modelleket nagyon széles körben használják: de ezek felépítéséhez komoly mennyiségű kísérletes adatra van szükség.

10.2.7.3. Neurális háló módszerek (Neural net)

A biológiai gyakorlat tele van olyan problémákkal, ahol viszonylag kevés és nehezen rendszerezhető kísérleti adat áll rendelkezésre, és ezek alapján kell komplex jóslatokat adni egy másik rendszer viselkedésére. Az ilyen esetekre nehéz egzakt statisztikai modelleket alkotni. Viszont e nélkül is lehetséges jóslatokat adni, méghozzá olyan módszerekkel, mint a neurális háló algoritmusok. Maga a neurális háló nem más, mint az agykéregről "lemásolt" számítógépes modell. Az egyes csomópontok ("neuronok") egymás feletti rétegekben találhatóak: a legfelső réteg kapja a direkt bemenetet (a nyers információt hordozó változók formájában), az ez alatti rétegek pedig mindig a megelőző réteg csomópontjaiban levő (számszerű) változók különféle logiai kombinációt kapják (pl. "és" operátor, "vagy" operátor, stb.). A végén, a legalsó réteg kimenete fogja megadni a kívánt jóslatot. A rendszer működéséhez előbb "tanításra" van szükség: ismert tulajdonságú példák feldolgozásával a neurális hálóban előbb rögzítjük a rétegek közötti logikai kombinációkat. Csak ez után következhet az ismeretlen minták elemzése. A neurális háló működésének hatékonysága a tanító példáktól függ: elegendő számú példával megfelelő minőségű modellt és viszonylag megbízható jóslatokat kaphatunk. Megjegyzendő azonban, hogy a neurális háló nem csodaszer: abban az esetben, ha egzakt modell felállítására megvan a mód, az gyakran jobb eredményeket nyújt, mint a neurális háló módszer.

10.2.7.4. A Bayes-statisztika és a döntéselmélet alapjai (Bayesian inference)

A legutoljára említett, fontos matematikai módszer a Bayes-statisztika. Ezt nemcsak a bioinformatikai jóslásokra, hanem a kísérleti eredmények kiértékelésére is fel lehet használni (vagyis az elméleti modellek ellenőrzésére). Az egész Bayes-statisztika egyetlen fontos fogalommal kapcsolatos: ez a feltételes valószínűség. Amikor a kísérleti rendszerünkben egynél több véletlen változót figyelünk meg egyidejűleg, akkor nemcsak az egybeesések közös valószínűségét lehet kiszámítani (P(A=x, B=y): Mi a valószínűsége hogy A és B egyszerre x illetve y értékű?), hanem a feltételes valószínűségeket is, mint például P(A=x|B=y) (Mi a valószínűsége hogy A=x, ha azt találjuk hogy B=y?). A feltételességet a képletbe tett függőleges vonal jelöli, és mindig az első változóról van szó, a másodiktól függően. A kétféle, "fordított" P(A=x|B=y) és P(B=y|A=x) feltételes valószínűségek általában különbözőek: itt a két ellenkező irányú logikai következtetésről van szó. Vagyis: ha A-ból következik B, ez még nyilvánvalóan nem jelenti azt, hogy B-ből is következik A. Tegyük fel, hogy a kísérletünkben az A változó rejtett, nem mérhető (de ezt akarjuk tudni), viszont van egy tőle P(B|A)-szerint függő B változó, amit meg tudunk mérni. Az általunk tanulmányozott B változó méréseiből szeretnénk az A-ra következtetni. Ha csak a B változót tudjuk megfigyelni, akkor a kísérleti rendszerből adódó P(B|A) feltételes valószínűség önmagában még nem mondja meg hogy mi lehet az A változó legvalószínűbb állapota. Ehhez a fordítottját, P(A|B)-t kellene tudnunk! Szerencsére van egy képlet, amely segítségével a kétféle feltételes valószínűség: P(A|B) és P(B|A) átszámolhatóak egymásba. Bayes tétele szerint:

Az egész döntéselmélet lényegében ezen az egyetlenegy képleten alapszik. Mindig az A változó azon értékére kell szavaznunk, amelyre a P(A|B) valószínűség (a mért B-vel) maximális. Ekkor lesz a döntésünk hibája a legkisebb. A fordított, P(B|A) értékek a kísérleti rendszer alapján határozhatóak meg, a P(A) valószínűségek pedig előzetes mérésekből, vagy akár az irodalomból becsülhetőek. Így dönthetünk két vagy több rivális hipotézis, vagy akár tudományos elmélet között is.