Györffyné Jahnke Gizella1- Smidla József2
MolMarker - Molekuláris markerekkel kapott kutatási eredmények értékelését segítő felhasználóbarát szoftver MolMarker - User-friendly software to help evaluate the research results obtained by molecular markers
[email protected] 1NAIK 2Pannon
Szőlészeti és Borászati Kutatóintézet Badacsonyi Kutató állomás, tudományos főmunkatárs Egyetem Műszaki Informatikai Kar, Rendszer- és Számítástudományi Tanszék, PhD. hallgató
A molekuláris markerek fejlődésével olyan feltáró munka kezdődhetett el a genetikában mintegy 15-20 évvel ezelőtt, amelyre korábban nem is gondolhattunk. A molekuláris markerek, ezen belül elsősorban a DNS technológiák fejlődése és alkalmazása révén nyert új ismeretek számos további lehetőséget nyújtanak a genetikai kutatások területén. A DNS markerek lehetővé teszik az egyes fajták-egyedek jellemzését, így az azonosításukat, feltárhatjuk az eredetüket, származásukat, rokonsági kapcsolataikat. Ezáltal lehetőség nyílik arra is, hogy a korábban megalkotott rendszertani csoportok helyességét ellenőrizzük, pontosítsuk. A kapott eredmények kiértékelése ugyanakkor a nagy mintaszám miatt számítógépes támogatás nélkül elképzelhetetlen. Jelenleg nem áll rendelkezésre megfelelő olyan szoftver, amellyel az eredményeket több szempontból is értékelni lehetne, ezért a kutatók több (általában 5-10) különböző programot használnak. Munkánk célja olyan felhasználóbarát, platform független szoftver terezése és implementálása volt, amely alkalmas molekuláris markerekkel kapott kutatási eredmények több szempontú értékelésére. A szoftvert Java nyelven implementáltuk, Windows 7 és Ubuntu Linux operációs rendszerek alatt teszteljük, jelenleg a legtöbb tervezett funkció már működik.
Bevezetés Nincs is talán olyan ember a Földön, akiben ne merült volna fel a kérdés, hogy vajon miért is hasonlít a szüleire, és mi az ami mégis megkülönbözteti őt tőlük, és minden más embertől. Ilyen, és ehhez hasonló kérdésekkel foglalkozik a genetika, napjainkban a biológia legintenzívebben fejlődő tudományága. Ma már tudjuk, hogy a Mendel (1866) által „faktoroknak” nevezett gének felelősek a tulajdonságok öröklődéséért, viszont azt is tudjuk, hogy a géneket közvetlenül nem tudjuk vizsgálni, ezért markereket kell használnunk. A gének összessége – a genom vizsgálható un. morfológiai markerekkel, amikor egy külső tulajdonságot vizsgálunk, és ennek alapján következtetünk az adott egyedben található génekre (genotípus). A morfológiai markerek megjelenését, kifejeződését (expresszió) viszont a környezeti tényezők és gyakran különböző génkölcsönhatások (pl. episztázis) nagymértékben befolyásolhatják. Erre a problémára kínálnak megoldást az un. molekuláris markerek. Molekuláris markerekkel végzett vizsgálatok, kutatások a legtöbb esetben nagy mintaszámmal dolgoznak, vagy ha kicsi a mintaszám, akkor a vizsgálat megbízhatóságának növelése érdekében egyfajta molekuláris marker több allélját használják, ezért a kapott eredmények értékelése számítógépes támogatás nélkül csaknem elképzelhetetlen. Habár rendelkezésre állnak olyan szoftverek, amelyek alkalmasak egy adott, konkrét adatsor vagy adatsorok feldolgozására, a kutatásoknál sokszor több különböző típusú marker adatait kéne több szempontból összehasonlítani és értékelni. Mivel jelenleg nem áll rendelkezésre ilyen szoftver, a kutatók több (általában 5-10) különböző — köztük sok általános célú táblázatkezelő vagy statisztikai célú —programot használnak.
135
Mindezek alapján munkánk céljául olyan felhasználóbarát szoftver tervezését és implementálását tűztük ki, amely alkalmas molekuláris markerekkel kapott kutatási és vizsgálati eredmények több szempontú értékelésére. A várható széleskörű felhasználás miatt fontosnak tartottuk a platformfüggetlenséget és továbbfejleszthetőséget, ezért a szoftvert Java nyelven implementáltuk.
A Java nyelv A Java általános célú, objektumorientált programozási nyelv. Az objektumorientáltság azt jelenti, hogy a fejlesztett szoftverek alapegységei az un. objektumok, ami lehetővé teszi a program moduláris felépítését és későbbi továbbfejlesztését. Nagy előnye még ennek a programnyelvnek a platformfüggetlenség, ami azt jelenti, hogy a fejlesztett szoftver bármilyen operációs rendszer alatt futtatható, ehhez csupán telepítenio kell az adott számítógépre (operációs rendszerre) a megfelelő „Java Virtuális Gépet” (JVM=Java Virtual Machine). A JVM a ma használt operációs rendszerek túlnyomó többségéhez rendelkezésre áll. Nagy előnye még a Java nyelvnek – ami a moduláris felépítésből adódik, hogy a világhálón nagyon sokféle (az Oracle által, illetve más cégek, programozók által fejlesztett) Java osztály elérhető, így a legtöbb programozói feladatra már kész megoldást találhatunk, amit csak be kell építenünk a szoftverünkbe.
Fejlesztőkörnyezet A szoftver fajlesztéséhez Windows Vista operációs rendszer alatt a NetBeans 8.0 integrált fejlesztőkörnyezetet használtuk. A NetBeans IDE olyan fejlesztői környezet, amely lehetővé teszi a programozók számára, hogy programokat írjanak, fordítsanak, teszteljenek, hibakeresést végezzenek az alkalmazásokban, majd profilozzák és telepítsék a programokat. Java nyelven íródott, de bármilyen más programozási nyelvet is támogat. A NetBeans IDE szoftver számos modullal bővíthető. A NetBeans IDE ingyenes termék, és nincsenek érvényben korlátozások a használatára vonatkozóan (NetBeans hivatalos honlap). A NetBeans hatékonyan támogatja GUI (Graphic User Interface – grafikus felhasználói felület) alkalmazások létrehozását, így lehetővé válik felhasználóbarát szoftver fejlesztése.
A legfontosabb implementált algoritmusok UPGMA algoritmus Az UPGMA(Unweighted Pair Group Method with Arithmetic Mean) algoritmus (Sokal, Michener 1958; Sneath, Sokal 1973) származási fák (fenogrammok) rekonstruálására szolgál, bemenetként hasonlósági mátrixot használ, egyszerű csoportosító hierarhikus klaszterezési eljárás. A fák képzésénél konstans evolúciós rátát feltételez, nem tartozik a legmegbízhatóbb módszerek közé, ha konkrét viszonyokat szeretnénk feltárni (Wikipedia: UPGMA). Az UPGMA tulajdonságai: • •
•
136
A legegyszerűbb módszer származási fák szerkesztésére A legnagyobb hátránya, hogy minden származási ágnál ugyanazt az evolúciós sebességet feltételezi, azaz a mutációs rátát időben állandónak tekinti (molekuláris óra elmélet). Ez azt jelenti, hogy a végső csúcspontok (levelek) a fa gyökerétől egyenlő távolságra vannak. Valójában az egyes ágaknál nagyon valószínűtlen az azonos mutációs ráta, ezért az UPGMA gyakran hibás topológiájú fát generál. Az algoritmus gyökeres fát generál
•
A módszer ultrametrikus fát hoz létre
Az algoritmus lépései: Az algoritmus bemenete egy távolsági mátrix D [1..n, 1..m]. Kezdetben mindegyik csoportba (klaszterbe) egy taxon tartozik. Az algoritmus indítása előtt a csoportokat csillag topológiájú fába rendezzük.
1. Megkeressük azt a klaszter-párt (i és j), amelyekre igaz, hogy ≠ és D[i, j] minimális. 2. Új klasztert definiálunk i és j összehasonlításával: i-t és j-t egy-egy ággal hozzákapcsoljuk a szülő csomóponthoz, az ág hossza D[i, j]/2 lesz. 3. Ha i és j volt a két utolsó klaszter, az eljárást befejezzük. Ha nem, akkor egy új „u” klasztert keresünk. 4. Kiszámítjuk u távolságát minden más k klasztertől ( ≠ ; ≠ ) úgy, hogy vesszük a d (k, i) és a d(k, j) távolságok átlagát. 5. i és j klasztereket kitöröljuk, u-t hozzáadjuk a fához, és visszamegyünk az 1. lépésre. (UPGMA)
A klaszterek közötti távolságot a következő képlettel lehet kiszámolni: 1 | |∙| |
( , )
Az algoritmus O(n2) futásidejű. Neighbour-joining algoritmus A Neighbour-joining algoritmus (Saitou, Nei 1987.; Studier, Keppler 1988.) szintén származási fák rekonstruálására szolgál, de a különböző ágak hosszát is meghatározza. Minden egyes ciklusban a fa „legközelebbi csúcspontjai” kerülnek kiválasztásra, ezeket nevezzük szomszédoknak (neighbour). Ez rekurzívan minden ciklusban végrehajtjuk, egészen addig, amíg az összes csúcspont párosítva nem lesz (Speed, 2006). Az algoritmus bemenetként távolsági mátrixot használ, szekvenciálisan módosítja az eredeti csillag topológiájú fát, miközben a az ágak hosszának összegét minimalizálja, az un. minimum-evolution módszert (Rzhetsky, Nei 1992.; Gascuel et al. 2001.) közelíti (Kuhner, Felsenstein 1994.). Az algoritmus lépései a következők: 1. A jelenlegi távolsági mátrix alapján kiszámoljuk a „Q” mátrixot (lásd lejjebb). 2. Megkeressük azokat az i, j taxonokat (i ≠ j), amelyekre Q(i, j) értéke a legkisebb. Ezeket a taxonokat összevonjuk egy új csúcsba, melyet a központi csúccsal összekötünk. 3. Kiszámítjuk az új csúcs és az összevont taxonok mindegyikének távolságát. 4. Kiszámítjuk az új csúcs és az összevont taxonokon kívüli taxonok mindegyikének távolságát. 5. Az előző lépésben kiszámolt távolságokat felhasználva kicseréljük az összevont taxonokat az új csúcsponttal, és újrakezdjük az algoritmust (1. pont). A Q mátrix: Az n taxont tartalmazó távolsági mátrix alapján a Q mátrixot a következőképpen számítjuk ki: ( , ) = ( − 2) ( , ) −
ahol
( , ) i és j taxon távolsága.
( , )−
(, )
A 3. lépésben az új csúcs és az összevont taxonok távolságának kiszámításához a következő képletet használjuk: !(", #) =
1 1 (", $) + & 2 2 ( − 2)
(", ) –
($, )(
137
137
ahol !($, #) = (", $) − !(", #)
A párosított taxonok f és g, u az új csúcspont. F-et és u-t, valamint g-t és u-t összekötő ágak, és a hosszuk δ(f, u) és δ(g, u) a fokozatosan létrehozott fa részei; ezeket nem befolyásolják a későbbi lépések, és ők sem befolyásolják a késöbbi lépéseket. (Wikipedia: Neighbor joining) Az algoritmus O(n3) futásidejű.
A szoftver felépítése A MolMarker szoftvert úgy terveztük, hogy a központi alkalmazás csak az alapvető funkciókat kezeli, minden további funkció beépülő modulokkal (plug-in) érhető el. Ezeket a funkciókat a szoftver csak akkor tölti be, ha a felhasználó használni szeretné őket, így az alap funkciók gyorsabban működnek. A központi alkalmazás felépítése A MolMarker szoftver felépítését az alábbi ábra szemlélteti:
1. ábra A MolMarker szoftver UML diagramja A központi alkalmazás fő feladatai a következők:
-
-
138
GUI (Graphical User Interface) kezelése Projectek kezelése Adatok kezelése Adatbeolvasás fájlból Adatbevitel felhasználói felületen keresztül Adatok mentése Megjelenítés Egyszerűbb, nem grafikai számítások végzése
Beépülő modulok (Pluginek) A bonyolultabb feladatok végzését nem közvetlenül a központi alkalmazás végzi, ezeket a feladatokat un. beépülő modulok (plugin) végzik. Ezek a modulok a ProgressRunner osztályokon keresztül (1. ábra) kapcsolódnak, és a következő feladatokat látják el:
-
Adatbázis kezelés Adatok lekérése adatbázisból Adatok feltöltése adatbázisba Dendogrammok szerkesztése UPGMA NJ Szülő-utód kapcsolati elemzések
A szoftver működése A MolMarker felhasználói felülete menüvezérelt, a program a következő képernyővel indul:
2. ábra: A MolMarker kezdő képernyője. Ezután megnyithatunk egy korábban mentett projectet (3. ábra - Project menü – Open Project), vagy adatokat adhatunk meg többféle módon:
-
Beolvashatunk „molekuláris” (pl. fehérje - izoenzim marker, de ilyen típusúak általában a RAPD markerek is) vagy „genetikai” (DNS marker) adatokat fájlból vagy Felhasználói felületen keresztül közvetlenül bevihetünk adatokat vagy Beolvashatunk adatokat adatbázisból.
139
139
3. ábra: A MolMarker „Project” menüje A szoftver kétféle típusú adatot is képes kezelni, így a genetikai marker (Genetic Data) adatokon kívül olyan adatokat, ahol nem ismert a kapott eredmények genetikai háttere (pl. izoenzim vagy RAPD adatok). A kétféle adattípust a 4. ábrán látható formátumokból képes beolvasni a program. Ilyen fájlok a felhasználó által valamilyen általános célú táblázatkezelő programban (pl Excel) nyilvántartott adatokból a „Mentés másként” funkcióval egyszerűen generálhatóak (Legegyszerűbben az adatok csv formátumban történő mentését követő minimális szerkesztéssel.).
4. ábra: Bemeneti adatfájl példák „Genetikai” (Genetic Data) és „Molekuláris” (Molecular Data) adattípusokhoz. A beolvasott adatokat a Display/Data menü segítségével tudjuk kiíratni a képernyőre:
140
5. ábra: A MolMarker programban az adatok táblázatban jeleníthetőek meg. Az adatok táblázatban jeleníthetőek meg, a nem látható adatok a görgetősávok használatával érhetőek el. A MolMarker program a bevitt adatok alapján képes kétféle (UPGMA és NJ) dendogrammot szerkeszteni, melyeket külön képernyőkön lehet megjeleníteni (6. ábra).
6. ábra: UPGMA és NJ dendogrammok
141
141
A dendogrammok a Save/Philogeny/Dendogram menüvel érhetőek el, és azonnal mentésre is kerülnek a MolMarker-ben megjeleníthető formátumban, valamit png és svg képformátumokban. Ez utóbbi képformátum (svg) egy XML alapú leíró nyelv, kétdimenziós, statikus és mozgó vektorgrafikák meghatározására (Wikipedia: Scalable Vector Graphics). Előnye, hogy tetszőleges mértékben nagyítható, a kép nem lesz pixeles. A továbbiakban a mentett dendogrammok bármikor megnyithatóak a Display/Phylogeny/Dendogramm menü használatával. A szoftver segítségével a genetikai adatok (Genetic Data) alapján un. „parentage” analízist is végezhetünk. A program ekkor meghatározza az elméletileg lehetséges utód – szülőpár kombinációkat és 5 féle hányadost is számol:
-
r1: r2: r3: r4: r5:
P1 x P2 / X x Y P1 x P2 / P1 x X P1 x P2 / P1 x Rel(P2) P1 x P2 / X x P2 P1 x P2 / Rel(P1) x P2
(P1=egyik szülő; P2=másik szülő; Rel=rokon) A kapott eredményeket szöveges formátumban jeleníti meg (7. ábra).
7. ábra: Szülő-utód (parentage) elemzés eredményének megjelenítés a MolMarker programban. A bemutatott MolMarker szoftver jelenleg még fejlesztés alatt áll, de az itt említett illetve megjelenített funkciók már teljes körűen működnek, a program tesztelése folyamatban van. A szoftver demo verzióját kérésre, kipróbálás céljából a szerzők megküldik, kérjük, hogy igényüket e-mailben (
[email protected]) jelezzék. Észrevételeiket szívesen fogadjuk!
142
Irodalomjegyzék Gascuel O., Bryant D., Denis F. (2001): Strengths and Limitations of the Minimum-Evolution Principle. Syst. Biol. 50(5), 621-627. Kuhner M. K, Felsenstein J. (1994): A Simulation Comparison of Phylogeny Algorithms under Equal and Unequal Evolutionary Rates Mol. Biol. Evol. 11(3):459-468. Mendel J. G. (1866): Versuche über Pflanzen-Hybride. Verlag von Wilhelm Engelmann 1911. NetBeans hivatalos honlap (https://netbeans.org/index_hu.html. -2014. szeptember 11.) Rzhetsky A., Nei M. (1992):A Simple Method for Estimating and Testing Minimum-Evolution Trees. Mol. Biol. Evol. 9(5):945-967. Saitou N., Nei M. (1987): The Neighbor-joining Method: A New Method for Reconstructing Phylogenetic Trees. Mol. Biol. Evol. 4(4):406-425. Sneath P. H. A, Sokal R. R. (1973): Numerical Taxonomy. W.H. Freeman and Company, San Francisco, 230234. Sokal R. R., Michener C. D. (1958): A statistical method for evaluating systematic relationships University of Kansas Scientific Bulletin 28: 1409-1438 Speed T. (2006): Neighbour Joining Method (Saitou and Nei, 1987). http://www.stat.berkeley.edu/~terry/Classes/s246.2006/Week6/2neighbourJoining.pdf (2014. szeptember 5.) Studier J. A., Keppler K. J. (1988): A note on the neighbor-joining algorithm of Saitou and Nei. Mol. Biol. Evol. 5(6): 729-731. UPGMA (http://www.sequentix.de/gelquest/help/upgma_method.html - 2014. szeptember 11.) Wikipedia: Neighbor joining (http://en.wikipedia.org/wiki/Neighbor_joining -2014. szeptember 5.) Wikipedia: Scalable szeptember 11.)
Vector
Graphics
(http://hu.wikipedia.org/wiki/Scalable_Vector_Graphics
-2014.
Wikipedia: UPGMA (http://en.wikipedia.org/wiki/UPGMA -2014. szeptember 11.)
143
143