Alulírott Szalay Kristóf Zsolt, a Budapesti M¶szaki és Gazdaságtudományi Egyetem hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomatervben csak a megadott forrásokat használtam fel. Minden olyan részt, amelyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelm¶en, a forrás megadásával megjelöltem.
Budapest, 2010. január 10.
Szalay Kristóf Zsolt hallgató
Kivonat
A diplomamunka fehérje-fehérje kölcsönhatás-hálózatok perturbációs elemzésével foglalkozik. A munka keretében els®ként röviden bemutatásra kerül a hálózatok elméleti és biológiai oldala. Készült egy szoftver, melynek segítségével általános hálózatok dinamikus elemzése, és az elemzési eredmények megjelenítése végezhet®. Részletesen kidolgozásra került egy modell a szoftverhez, mely különösen alkalmas fehérje-fehérje kölcsönhatás-hálózatok elemzésére. A modell nomhangolását követ®en a rendszer képességeit három kísérlet segítségével vizsgáltam. Az els® kísérlet a hálózati csomópontok két nagy fajtája között, illetve a sima pontok és a csomópontok között mutat az elemzés segítségével eltérést. A második kísérlet rámutat arra, hogy egy bizonyos perturbációt er®sen megtanuló hálózat további perturbációkra való ráhangolódásra már csak nagyon korlátozottan képes. A harmadik kísérletben pedig arra a következtetésre jutottam, hogy egy egyfajta perturbációt átélt hálózat ugyan tovább marad hibátlan, mint egy többféle perturbációt átél® hálózat, viszont gyorsan, lavinaszer¶en öregszik, és a többféle perturbációt átél® hálózat végül tovább bizonyulhat m¶köd®képesnek.
Abstract
The topic of this Master's thesis is peturbation analysis of protein interactomes. The work briey introduces the theoretical and biological background of complex networks. A new software has been created which is capable of making such dynamic analysis of generic networks. The software can also visualize the analysis results for their better understanding. A detailed model has been made for the software, which is suitable for analysis of protein interaction networks. After tuning the model parameters, three experiments were conducted for validating the system. The rst experiment shows a strong distinction between the relaxation capabilities of hubs and standard nodes, and also some subtle dierences between date and party hubs. The second experiment points out that a network which learns a given perturbation has trouble learning and even relaxing another kind of perturbation. The conclusion of the third experiment is that networks receiving only one type of perturbation stay error-free for a longer time than networks receiving multiple kinds of perturbations, but ultimately the latter types might survive longer.
A diplomaterv egy fehérje-fehérje kölcsönhatás-hálózat perturbációs elemzésének témakörét járja körbe. A rendelkezésünkre álló adatok növekedése és az egyre bonyolultabb kölcsönhatások felfedezése nagyon sok területen azt eredményezte, hogy az egyes kölcsönhatások, vagy kölcsönhatás-útvonalak vizsgálata már nem elégséges a rendszerek m¶ködésének megfelel®en pontos leírásához. Nem csoda hát, hogy a hálózatkutatás területe rendkívül dinamikus fejl®désnek indult az elmúlt években. Diplomatervemben egy a hálózatok világában még alig alkalmazott módszert, a perturbációs elemzést fogom alkalmazni az el®forduló hálózatok vizsgálatára. Kett®s céllal teszem ezt, egyfel®l ez a módszer alkalmasnak t¶nik az öregedés sokrét¶ folyamatának elemzésére, másrészt a kidolgozott alkalmazás a kés®bbiekben a többutas gyógyszertervezés megkönnyítésére is használható lehet. Az els® fejezetben a hálózatokról, azok jellemz®, és izgalmas tulajdonságairól írok. A következ® fejezet átvezet a konkrét biológiai alkalmazás megtárgyalására, az alapfogalmak ismertetése után a használt biológiai hálózatok összeszervezésének módját ismertetem. Ezután a vizsgált folyamatról az öregedésr®l írok, mind biológiai, mind hálózatos szemszögb®l. Ezután lesz szó magáról a perturbációs elemzésr®l, használatának módjáról, és bemutatok néhány általam kidolgozott perturbációs elemz® modellt. A fehérjék ismert tulajdonságai segítségével az egyik modellt kifejezetten fehérje-fehérje kölcsönhatásokra igazítom, és bemutatom a rendszeregyenleteket. A Turbine cím¶ fejezetben ismertetem azt a szintén a diplomaterv részeként elkészült számítógépes alkalmazást, amely ilyen perturbációs szimulációk elvégzésére és kiértékelésére használható. Végül a kidolgozott modellt a Turbine-nal használva egy öregedési folyamat szimulációját mutatom be, majd a különböz® mér®számok kiértékelése után megpróbálok levonni néhány következtetést olyan folyamatokról, melyek él® szervezetekben mennek végbe az öregedés során.
1
1. fejezet
Hálózatokról
1.1. Mi az a hálózat? Amikor kimondom azt a szót, hogy hálózat, mindenkinek más jut az eszébe. Van, akinek egy gráf, pontokkal, és összeköttetésekkel. Van, akinek egy elektromos hálózat. Van, akinek egy város metróhálózata. Lehet, hogy egy folyamatábra. Mindezek hálózatok, és még nagyon sok minden más is. Hálózatot alkotnak egy sejt belsejében a fehérjék, az emberek társadalmi kapcsolatai, de hálózatot alkot Gaia, azaz Föld teljes ökoszisztémája is. A hálózat valamilyen kölcsönhatások összessége, melyet gráfokkal, vagyis csomópontokkal (node), és két pont közt futó élekkel, kapcsolatokkal (link) tudunk jellemezni. Jelenlegi munkám során fehérje-fehérje kölcsönhatáshálózatokkal, azaz interaktomokkal dolgozom. 1.1.1.
Mire jók a hálózatok?
Attól a pillanattól, hogy megfelel®en sok hatást hálózatba szervezünk, onnantól kezdve magának a hálózatnak is lesznek saját mér®számai. Ezek a paraméterek a hatásrendszer egészér®l mondanak valamit. Az olyan egyszer¶ számoktól kezdve, mint a β -index, azaz a hálózat kapcsolatainak és csomópontjainak aránya, az olyan bonyolult mennyiségekig, mint a csoportosulási együttható sok-sok új adatot kapunk. Így olyan közös rálátást kapunk az eddig teljesen különálló adatokra, melyb®l sokszor els® ránézésre látszik, hogy hogy áll össze egésszé, milyen szervez®dési elveket tudunk rajta észrevenni. A hálózatos gondolkodásmód nem más, mint egy szemüveg, ami segít egy adathalmaz integrálásában, és új felfedezésekhez juttathat minket. Az egyes kölcsönhatásokat leegyszer¶síti egy kapcsolat szintjére, míg a kölcsönhatások összességét kiemeli. Így valamilyen szervez®désnek ki tudjuk emelni egy bizonyos 2
1. FEJEZET.
3
HÁLÓZATOKRÓL
szintjét vizsgálat céljából úgy, hogy az alatta és a felette lev® szinteket, amennyire csak tudjuk, gyelmen kívül hagyjuk.
1.2. Hálózatjellemz®k Minden hálózatnak van jó néhány jellemz®je. Ezek mind mondanak valamit a hálózatról, de nem adják annak egyértelm¶ leírását. Els®dleges jellemz® a csomópontok és a kapcsolatok száma. A csomópontok száma adja meg a gráf alapvet® méretét, ebb®l látszik, hogy a számításaink körülbelül meddig fognak tartani. (n=20 vagy n=2000). A kapcsolatok számát önmagában nem használjuk mér®számként, hanem helyette a β -indexet használjuk, ami a kapcsolatok és a csomópontok számának hányadosa, amely a hálózat bonyolultságáról, összekötöttségének mértékér®l ad felvilágosítást. 1.2.1.
Átmér®
A hálózat átmér®je a két legtávolabbi pont közt mért távolság1 . Ez egy igen jó mér®szám a kommunikáció hatékonyságának leírására. Ugyanakkora fokszámú hálózatok közül legkisebb átmér®je a kisvilág-hálózatoknak (1.2.3. fejezet) van[2], és legnagyobb a szabályos, rácsszer¶ hálózatoknak. 1.2.2.
Központosság
Egy pont központossági(centrality) mér®számai adják meg az adott pont szerepének fontosságát a hálózatban a többi csomóponthoz képest. Erre egész sok módszer van, leggyakrabban használt a betweenness centrality. Ez azt adja meg, hogy a hálózatban akármelyik két pont közt található legrövidebb utak között milyen arányban fordul el® az adott pont. Formális leírása:
Cb (v) =
X σst (v) σst s6=v6=t∈v s6=t
, ahol v a kiszemelt pont, σst az s és t közötti legrövidebb utak száma, σst (v) pedig ezek közülazon utak száma, melyek áthaladnak v -n [8]. Hubok meghatározására használható. 1 Azaz ha kiszámítjuk minden egyes pontpár közt a legrövidebb utat, akkor ezek közül a legnagyobb érték.
1. FEJEZET.
4
HÁLÓZATOKRÓL
1.1. ábra. Pontok központosságai egy hálózatban. A legkevésbé központi csomópontok pirosak, a leginkább központiak kékek. 1.2.3.
Csoportosulás
A (helyi) csoportosulási együttható arról ad információt, hogy a gráfban a csoportok mennyire szorosak, azaz egy pont szomszédjai milyen arányban egymás szomszédjai is. A pontos deníció szerint egy pontra, irányított gráfban:
Ci =
| {ejk } | ki (ki − 1)
, azaz, hogy az i. pont szomszédjai között a lehetséges maximális élszámból mennyi található valóban a gráfban [27]. Irányítatlan gráfban ennek a kétszerese, mivel két pont között csak egy irányítatlan él futhat. Az egész gráfra vonatkoztatott helyi csoportosulási együttható az egyes pontok csoportosulási együtthatóinak számtani közepe. Ez utóbbi adatot használhatjuk fel a hálózat struktúrájának vizsgálatára. Ha a random gráfban tapasztalhatónál szignikánsan nagyobb a csoportosulási együttható, akkor mondhatjuk, hogy kisvilág-hálózatról beszélünk[27].
1.3. A hálózat struktúrája Erd®s Pál írta le el®ször, hogy ha egy véletlen hálózatban az elemek átlagos fokszáma legalább egy, akkor az elemek nagy része össze van kapcsolva egymással, a hálózatban óriáskomponens alakul ki[2]. Ahogy az átlagos fokszám n®, az óriáskomponensbe nem bekötött elemek száma exponenciálisan csökken. Így ha az átlagos
1. FEJEZET.
5
HÁLÓZATOKRÓL
fokszám nagy, csak egy-két pont marad összeköttetés nélkül. Így nyer matematikai megállapítást az a régi bölcsesség, hogy minden mindennel összefügg. Mivel a valós hálózatok csomópontjainak átlagos fokszáma legalább néhányszor tíz, így valóban, gyakorlatilag mindenhol minden összeköttetésben van. Az óriáskomponens megléte magának a rendszernek a m¶ködése szempontjából kulcsfontosságú. A hálózat csoportjellemz® (1.4.4. fejezet) tulajdonságai csak akkor jelentkeznek, ha az óriáskomponens kialakult. Biológiai hálózat esetében például az él®lény elpusztul, ha valamelyik biológiai hálózata szétesik szubgráfokra. Milyen az óriáskomponens, ha van? Lehet rácsszer¶, mint egy kristályban. Ezeket hívjuk szabályos gráfoknak. Véletlen gráf esetén az összeköttetések véletlenszer¶ek. Kisvilág-hálózat esetében az összeköttetések nagy része szabályos, közeli elemeket köt össze, kevés összeköttetés pedig távoliakat. A kisvilág-hálózatok nagy csoportosulási együtthatóval és kis átmér®vel rendelkeznek. Csillaghálózatról beszélünk, ha minden elem csak egy központi csomóponttal van összekötve, ezen keresztül érik el egymást. Belátható, hogy ez a zikai Bose-Einstein kondenzátum jelenségének hálózatos megfelel®je.
(a) Szabályos hálózat
(b) Kisvilág-hálózat
(c) Véletlen hálózat
1.2. ábra. Különféle hálózatstruktúrák (kép:[10]). Balról jobbra: szabályos hálózat, kisvilág-hálózat és véletlen hálózat. Érdemes vizsgálni a fokszámeloszlást is. Szabályos, vagy véletlen gráfokban a fokszámeloszlás általában Poisson-eloszlást követ[4], ami azt jelenti, hogy sok, az eloszlás középértékéhez közel álló fokszámú pontot találunk, de attól nagyon eltér®t gyakorlatilag nem. (exponenciális lecsengés.) A tervezett hálózatok általában így néznek ki. (pl. az USA úthálózata) Nagyon sok hálózatra ezzel szemben hatványfüggvény szerinti eloszlás jellemz®, azaz az elemek fokszáma A · e−λ függvény szerint változik. Ennek a lecsengése jelent®sen kisebb az exponenciálisnál, így amellett, hogy a kis fokszámú elemekb®l van a legtöbb nagyon nagy fokszámú elemek, azaz hubok is el®fordulnak a hálózatban. Mivel itt nincs egy kiemelt tartomány, ezt az eloszlást skálafüggetlennek nevezzük. Akkor jön létre skálafüggetlen eloszlás, ha egy
1. FEJEZET.
HÁLÓZATOKRÓL
6
hálózat kevés alapelemb®l n®tt ki, és az új elemek a meglev®k népszer¶ségét alapul véve választanak maguknak kapcsolatokat[2]. A fejl®dött, evolvált rendszerek éppen ezért skálafüggetlenek.
1.3. ábra. Skálafüggetlen és véletlen hálózat fokszámeloszlásai. Ami nem látszik egyértelm¶en, hogy a skálafüggetlen eloszlás k nagy értékeire jelent®sen nagyobb érték¶, mint a random eloszlás megfelel® értéke.
1.4. Komplex hálózatok tulajdonságai Komplex hálózatnak nevezzük azokat a hálózatokat, melyek relatív nagy elemszámúak, kisvilág-struktúrájúak, és fokszámuk skálafüggetlen eloszlást mutat[27]. A valós hálózatok legnagyobb része ebbe a kategóriába tartozik a fehérjehálózatoktól kezdve a szociális hálókon át az Internetig. Ezek a hálózatok ezen alaptulajdonságokon felül még sok további érdekes tulajdonsággal rendelkeznek, nem csoda, hogy a hálózatkutatás középpontjában a komplex hálók állnak. 1.4.1.
Modulok
Komplex hálózatokban legtöbbször felfedezhetünk olyan egységeket, melyek egymással a hálózat más részeinél lényegesen szorosabb kapcsolatot ápolnak. Ezeket a ponthalmazokat hívjuk moduloknak. Egy modul általában egy konkrét feladat ellátásával foglalkozik[4]. Pontos meghatározásukat nehezíti, hogy sokszor a modulok egymással átfednek, egy elem több feladat ellátására is képes lehet. Ha nem így volna, az a mennyiség¶ fehérje, amely egy sejt egészséges m¶ködéséhez kell, bele sem férne az adott sejtbe. A modularizálás problémájával foglalkozik a LINK-Group ModuLand programcsomagja[18].
1. FEJEZET.
HÁLÓZATOKRÓL
7
1.4. ábra. Modulok egy hálózatban[23]. Azonos színnel vannak az egy modulba tartozó pontok jelölve. 1.4.2.
A kapcsolatok ereje
A hálózatokban a kapcsolatok egyik lehetséges jellemz®je a kapcsolatok ereje. Ha a hálózatot jelképez® gráf éleihez élsúlyokat rendelünk, az rengeteget javíthat a modellünk pontosságán. Nem mindegy, hogy egy távvezeték átbocsájtóképessége mennyi, más esetben, hogy milyen hosszú egy útszakasz a többihez képest, vagy hogy két fehérje kapcsolata milyen er®s. A kapcsolat er®ssége alapján megkülönböztetünk er®s és gyenge kapcsolatokat. Természetesen az átmenet folytonos, mégis, érdemes lehet megkülönböztetést tenni, mert az er®s és a gyenge kapcsolatok más funkciót látnak el. Egy viszonylag egyszer¶ ökölszabály szerint gyenge kapcsolatnak mondjuk azokat
az éleket, melyek élsúlya a hálózatban található leger®sebb él súlyának kevesebb, mint 10%-a. [4] Az er®s kapcsolatok alkotják a hálózat gerincét, ezek jelölik ki a jelátviteli útvonalakat, a terjedések f® csapásirányait. Er®s kapcsolatok nélkül nemigen beszélhetünk hálózatról. Gyenge kapcsolatokból sokkal többet találunk, általában a Paretoszabályhoz hasonló szabály érvényes, azaz egy adott hálózat kapcsolatainak 80%-a gyenge[4]. Ezek a kapcsolatok rengeteg elemet összekötnek, közelieket és távoliakat is. Ezek az összeköttetések biztosítják a hálózat stabilitását, és a szükséges rendundanciát. Gyenge kapcsolatok nélkül a hálózat tud létezni, de zavart¶rése drámaian lecsökken, és egy er®sebb perturbáció hamar tönkreteszi. A hálózatokban egy adott funkciót alkotó elemek összessége er®sen összekötött, a funkciók között pedig szabályozási céllal gyenge kapcsolatok húzódnak[4]. Emiatt élsúlyozott hálózatban kétféle hub-ot, azaz kiemelt fontosságú elemet találhatunk[18][11]. A party-hubok els®sorban er®s, modulon belüli kapcsolatokkal rendelkeznek. Csoportkoordinátorokként viselkednek, egy adott feladat elvégzéséhez különösen fontosak. A date-hubok els®-
1. FEJEZET.
HÁLÓZATOKRÓL
8
sorban modulok közti gyenge kapcsolattokkal rendelkeznek, ezzel az egész hálózat m¶ködését stabilizálják, és hangolják össze. Ha egy party-hub kiesik, az adott modul m¶ködése általában komoly kárt szenved, esetleg teljesen le is csatolódik. Ha datehubok esnek ki, az egész rendszer m¶ködése károsodik. Néhány hálózat esetében már belátták, hogy date-hubok elvétele a hálózatból hamarabb okoz hálózatkatasztrófát, mint a party-hubok elvétele [4]. 1.4.3.
Szinkronizálódás
Egy régi történet szerint egyszer Christian Huygens meggyelte, hogy a falra felrakott számtalan ingaóra pontosan együtt jár [9]. Ennyire pontosan egyrészt beigazítani sem lehetett ®ket, másrészt emlékezett rá, hogy egy-két jelent®sen különböz® állású is volt köztük. Mi történt? Ha az egyik órát elállította, vagy felrakott egy újat, az szép lassan szintén beállt szinkronizálódott2 . A magyarázat az volt, hogy a fal, ahova az órásmester felrakta az óráit, fából volt. A fa átvette az órák kis rezdüléseit, és ez a gyenge kapcsolat az órák között azt eredményezte, hogy szépen lassan egymás felé tartottak a lengéseik. Gyenge kapcsolatokkal rendelkez® hálózatokra jellemz® a szinkronicitás. A hálózatok legkülönfélébb tulajdonságai ezeken az alig észlelhet® kis hatásokon keresztül szinkronizálódni képesek, és együtt változnak. A nemlineáris jelenségekr®l általában elmondható, hogy stabilizáló hatással rendelkeznek. Egy lineáris rendszert megbillentve sokkal kevésbé tér vissza a helyzetébe, mint egy hasonló nemlineáris rendszer[9]. 1.4.4.
Csoportjellemz® tulajdonságok
Ha egy hálózat elég bonyolulttá válik, megjelenhetnek benne olyan tulajdonságok, melyekkel a hálózat alkotóelemei nem rendelkeznek. Ezeket nevezzük csoportjellemz® tulajdonságoknak [20] (emergent feature). Ezeknek a tulajdonságoknak a megjelenése általában nem megjósolható az alsóbb elemekb®l, és nem is lehet rájuk visszavezetni. Például a gázok egyes molekulái önmagukban nem képesek a hangot vezetni, ellenben maga a gáz már igen. A csoportjellemz®ket a hálózatkutatás legszebb, és legizgalmasabb részének tartom. Megmutatják, hogy kifejezetten komplikált funkciók is létrejöhetnek mindenféle központi irányítás nélkül, csak az egyes elemek tulajdonságainak és összeköttetéseinek segítségével. Csoportjellemz® tulajdonság a t®zsde árfolyamainak mozgása, az, hogy mennyire tükrözi egyes országok, 2 Ezt a jelenséget (hogy hasonló frekvenciájú események frekvencia- és fázisszinkronba állnak) móduszbezárásnak, vagy sodródásnak[9] is nevezik.
1. FEJEZET.
HÁLÓZATOKRÓL
9
cégek gazdasági helyzetét. Az Interneten haladó csomagok a sz¶k keresztmetszet¶ pontoknál feltorlódnak[20], ezzel az összes adat mozgását globálisan szinkronizálják. Társadalmi szervez®dés, mint csoportjellemz®
Talán a legszebb példa a hangyabolyok m¶ködése. Nem a királyn® mondja meg minden egyes dolgozónak, hogy mit csináljon, hanem a dolgozók cserélnek kémiai anyagokat a többi dolgozóval, a lárvákkal, az étellel, a behatolókkal. Válaszként ®k is valamilyen kémiai nyomot hagynak. Ett®l az egész hangyaboly egy, automóm egységként m¶ködik, mintha központi irányítás alatt lenne. Készítettek egy egyszer¶ modellt annak megmagyarázására, hogy hogyan létezhet társadalmi berendezkedés vezet® nélkül[5]. Ki mondja meg egy adott hangyának, hogy most gy¶jtögetni menjen, ®rjáratozni, vagy bolyt építeni? A modell3 lényege, hogy ha egy hangya mondjuk 20-szor összeütközik másik hangyával így kémiai információt cserélve automatikusan foglalkozást vált. A modellb®l számos, a valódi világban látott csoportjellemz® tulajdonság meggyelhet®. A hangyák, bármilyen feladatkiosztást is kaptak eleinte, automatikusan beállnak a megadott arányban végezni a foglalkozásokat. Ha a rendszert megzavarjuk, visszatér az eredeti állapotába. Arra a meglep® tulajdonságra is magyarázatot nyerünk, hogy az öregebb kolóniák (6-10 évesek) jelent®sen stabilabbak, mint a atalok, annak ellenére, hogy a hangyák élettartama 1-2 év. Nem valami kollektív memóriáról van szó, egyszer¶en azért stabilabb az öregebb kolónia, mert több hangya van benne. Így a szabályozás pontosabb tud lenni. Nagyon szép megoldás ez arra, hogy egyszer¶ kölcsönhatások, m¶veletek ismétléséb®l hogyan alakulhat ki ilyen komoly rend. Ez a megközelítés valószín¶leg az élet számos nagy kérdésére is választ adhat. Tudnánk olyan társadalmi berendezkedést kialakítani, mely csak az egyes emberek bels® tulajdonságait használja fel és mégis rend van? Elképzelhet®, hogy a tudatunk egy megfelel® bonyolultságú hálózat csoportjellemz® tulajdonsága? Ekkor végül is mindegy, hogy a hálózat elemei sejtek vagy tranzisztorok elég sokat megfelel®en összekötve tudat alakul ki? Egymásbaágyazottság
De hajózzunk vissza a lozóai vizekr®l. Hogyha ilyen tulajdonságokat veszünk észre egy hálózatban, akkor az azt jelenti, hogy új szint alakult benne ki. Az egyes hangyákból összeállt a hangyaboly, a fehérjékb®l összeállt a sejt, az emberekb®l a társadalom. Úgy is tekinthetjük, hogy az új szinten a hálózat a következ® szinten 3 Megtekinthet®: http://serendip.brynmawr.edu/complexity/models/antcolonies/
1. FEJEZET.
10
HÁLÓZATOKRÓL
1.5. ábra. A hangyatársadalom modellje. Egy adott szín¶ területen található hangyák egy adott feladaton dolgoznak. csomópontként viselkedik, így lép kölcsönhatásba a többi hasonló szinten lev® elemmel. A természetben sok ilyen szint van egymásba ágyazva lehet, hogy hasonló tulajdonságaik vannak? ... atomok - aminosavak - fehérjék - sejtek - szervek - egyén - populáció - ökoszisztéma - Föld - ... Ha egy megfelel® bonyolultságú hálózat tudattal rendelkezik, akkor a Föld maga is tudatos? Hiszen számtalan olyan bonyolult elemet is tartalmaz, mint mi magunk. Az biztos, hogy számottev® szabályozó tulajdonságokkal rendelkezik, melyet az elemeinek, az ökoszisztémának, és lakóinak köszönhet. Lovelock Gaia-elméletének ez az alapja[21]. Egy egyszer¶ modellben, a margaréta-világban megmutatta, hogy az élet maga alakíthatja ki a saját m¶ködéséhez szükséges feltételeket4 . Ha egy új szint vagy modul kialakult, és er®ssé váltak az ezek közti kölcsönhatások, akkor a fejl®dés során azok a részek, melyek nem feltétlenül szükségesek az új m¶ködéshez, el fognak t¶nni. Így a rendszer valóban irreducibilissá válik, például egy máj saját magától nem tud életben maradni. Ilyen egyszer¶ jelenségek segítségével magyarázható a hálózatok önszabályozása, önjavító, s®t tanulási képessége is.
Fel kell tennünk azt a kérdést, hogy azért
4 A következ® weblapon lehet kipróbálni a modellt: projects-Daisy.html
http://www2.ph.ed.ac.uk/nania/nania-
1. FEJEZET.
HÁLÓZATOKRÓL
11
találkozunk-e valós komplex hálózatok esetén mindenhol ezekkel a jellemz®kkel, mert így lehet biztosítani annak stabilitását? 1.4.5.
Hálózatzavarok
A hálózatot folyamatosan kisebb-nagyobb zavarok, azaz perturbációk érik[1]. A komplex hálózatoknak közös jellemz®je az is, hogy hogyan kezelik a zavarokat. Kis változás esetén a hálózatban szétoszlik a zaj, majd az egyes elemeken disszipálódik. Ezt a szétoszlást nevezzük relaxációnak [4]. Ha túl nagy a zavar, akkor az azt elszenved® egység egyszer¶en leszakad. Ha sok kis zavar jön egymás után, és nem tudnak relaxálódni, akkor azok felgy¶lnek, önszervez®d® kritikus állapotot alakítanak ki. Ilyenkor egyszer csak az összes zavar elszabadul, egyszerre, lavinaszer¶en disszipálódnak, hálózatrengés következik be. Ez a földrengésekhez, jégrengésekhez hasonlóan már megváltoztatja a hálózat szerkezetét. Nagyon sok hétköznapi jelenség hátterében is rengések állnak, ilyen például a nevetés. Érdemes megjegyezni, hogy a rengések gyakorisága is skálafüggetlen eloszlást követ[4].
2. fejezet
Él® hálózatok
2.1. Az eukarióta sejt, fehérjék 2.1.1.
A sejtek m¶ködése
A diplomamunkám további részében f®leg biológiai, azon belül is sejtes hálózatokról lesz szó. Néhány alapfogalmat szeretnék bemutatni ebb®l a témakörb®l is. Az él® szervezetek elemi egysége a sejt. Az eukarióták, azaz a baktériumoknál fejlettebb él®lények sejtjei olyanok, hogy elkülönített sejtmagjuk van, ahol az él®lényt leíró DNS található. A sejt legf®bb alkotóelemei a fehérjék. Ezeknek az épít®kövei az aminosavak. Egy fehérje leírható annak aminosav-szekvenciájával, a DNS-ben így van tárolva a szükséges információ. A DNS négy bet¶je hármas csoportokban egyegy aminosavat kódol. Ezt a kódot egy RNS polimeráz nev¶ enzim írja át egy mRNS molekulára, ez viszi tovább az információt a riboszómákhoz, amik az mRNS-en lev® kódból a szükséges aminosavak jelenlétében összeállítják a fehérjét (2.2. ábra). 2.1.2.
Fehérjék
A fehérjék a sejt gépei. Az enzimek, receptorok, jelátviteli útvonalak elemei túlnyomórészt fehérjék1 . A fehérje aminosav-sorrendjéb®l következik annak szerkezete. Többszint¶ szervez®dést találhatunk itt is, els®dleges szerkezetnek az aminosavsorrendet nevezzük. A másodlagos szerkezet a rövidtávú kölcsönhatások segítségével alakul ki, legismertebb formái az α-hélix, és a β -red®. A harmadlagos szerkezet ezen elemek közti kölcsönhatásokból áll, ezek alakítják ki a fehérje moduljait, vagyis a 1 Ritkán lehet RNS is (ribozimek).
12
2. FEJEZET.
ÉL HÁLÓZATOK
13
doméneket. A negyedleges szerkezet a domének közti kölcsönhatások segítségével a fehérje végleges, kívülr®l látható alakját határozza meg.
2.1. ábra. Három fehérje-állapottérkép. Minden fehérjénél az abszolút minimum pontjában találjuk a natív konformációt. Egy fehérje nem csak egyféle térszerkezetben létezhet. Az enzimek m¶ködésének legfontosabb eleme például, hogy át tudják alakítani saját szerkezetüket, amint a két átalakítandó anyagot(szubsztrátot) megkötötték. Van azonban egy kiemelt térszerkezet, a natív konformáció. Legfontosabb tulajdonsága, hogy ebben az állapotban a legalacsonyabb a fehérje összenergiája. Ennek szemléltetésére nagyon jól használhatók a fehérjék állapottérképei (2.1. ábra). A térképen a különböz® konformációkhoz tartozó energiaszintek vannak feltüntetve. Az abszolút minimumhoz tartozó pont a natív konformáció képe. Észrevehet®, hogy sok lokális minimum is található a térképen, ezek a fehérje metastabil állapotai. Bár nem ezek a legalacsonyabb energiájú állapotok, az energiagátak miatt csak viszonylag lassan tud a fehérje kilépni innen. Ha egy fehérje ilyen állapotba lép, az általában a fehérje funkcióvesztését vonja maga után. Ezeket a nem m¶köd®, de jelen lev® fehérjéket misfolded, félrecsavarodott fehérjéknek nevezzük. Az elcsavarodás folyományaként olyan fehérjékhez tudnak kapcsolódni, ahova nem feladatuk, és olyan helyekre nem tudnak kötni, ahova pedig szükséges lenne. A szervezet bels® védekez® mechanizmusát a félrecsavarodás ellen a stresszfehérjék alkotják[4]. Ezek a fehérjéhez kapcsolódva plusz energiát juttatnak neki széthúzzák, így ki tud lépni az energiagödörb®l, és megpróbálhatja felvenni a natív konformációját. A misfolded fehérjék közös jellemz®je, hogy kilóg a belük, azaz nem csak hidrol felszínek látszanak a vizes közeg felé, hanem egykét helyen a hidrofób rész is érintkezik a vízzel. Ez tovább rontja a helyzetet, mert ezen hidrofób felületek mentén a félrecsavarodott fehérjék összetapadhatnak, és így protein-aggregátumokat hoznak létre, tovább rontva a sejt m¶ködését. Nem hagyhatjuk gyelmen kívül ebben a mérettartományban a kvantumos hatásokat sem. Ez a mi esetünkben azt jelenti, hogy bizonyos mértékben minden fehérje folyamatosan rezeg, változtatja az alakját, így az állapottérképen a fehérje helyzetét nem
2. FEJEZET.
ÉL HÁLÓZATOK
14
egy pont, hanem egy folt jellemzi. Ez a mechanizmus segít a különböz® fehérjék kapcsolódásában, így nem kell tökéletesen illeszkednie a kapcsolódó felületeknek.
2.2. ábra. A fehérjeszintézis módja egy eukarióta sejtben.
2.2. Biológiai hálózatok 2.2.1.
Genom - proteom - interaktom
Egy él®lény minden sejtje hordozza az egész szervezet DNS-ét. A teljes DNS viszonylag kis része tartalmaz fehérjét kódoló szakaszokat. Egy ilyen szakasz a gén, a gének összessége pedig a genom. Az ember teljes genomja ismert, ezen kívül még néhány modellorganizmusé, mint a fonalféreg (Caenorhabditis elegans ), vagy a süt®éleszt® (Saccharomyces cerevisiae ). A génekr®l átíródó mRNS-eket az exp-
ressziós térkép tartalmazza. A sejt m¶ködésének megfelel®en más-más id®pontban más-más fehérjéb®l más-más mennyiségre van szükség. Ezért a sejt különböz® állapotaihoz különböz® expressziós térkép tartozik. A géneknek nem minden részéb®l
2. FEJEZET.
ÉL HÁLÓZATOK
15
2.3. ábra. Az éleszt® fehérje-fehérje kölcsönhatás-hálózata. (Kép:[15].) keletkezik fehérje2 , egyes szakaszokat egyáltalán nem használunk, más szakaszok akár több fehérjében is szerepelhetnek. Egy szervezet által készített fehérjék összessége a proteom. Mivel egy gén nem feltétlenül csak egy fehérjét kódol, ezért a proteom elemszáma jelent®sen nagyobb a gének számánál. Ha a proteomot a fehérjék között ismert kölcsönhatások alapján hálózatba szervezzük, az eredmény az
interaktom (lásd 2.3. ábra). Csomópontjainak száma megegyezik a proteom elemszámával, kapcsolatainak száma a csillagos éghez konvergál. Még nincs egységes megállapodás az interaktomok készítésének módjáról, mindenki máshonnan veszi a szükséges kölcsönhatásokat. Leggyakrabban csak a bizonyított kölcsönhatásokat használjuk, de van akinek már az alaki összeillés is elég, van, aki számításba veszi, hogy tartózkodhatnak-e egyáltalán együtt, megint másnak pedig már annyi is elég, ha elég sok tudományos cikk szövegében szerepeltek egymáshoz közel. Egy gyakran használt interaktom az éleszt® fehérje-kölcsönhatás hálózata[14], ezt fogom a kés®bbiekben használni. Ez a rendszer már alkalmas arra, hogy hálózatos vizsgálatnak vessük alá, elég bonyolult, és mutatja a komplex hálózatokra jellemz® tulajdonságokat (skálafüggetlenség, kisvilágság), így ez a hálózat lesz a kés®bbiekben a perturbációs elemzés alanya. 2.2.2.
Metabolit-hálózat
Más rendez® elv mentén is hálózatokra találhatunk. Amennyiben egy olyan hálózatot készítünk, melynek csomópontjai az egyes anyagcseretermékek, kapcsola2 Sok helyr®l mikroRNS képz®dik, ezek szabályozó funkciókat töltenek be.
2. FEJEZET.
ÉL HÁLÓZATOK
16
taik pedig az ®ket összeköt® enzimek, metabolit-hálózathoz jutottunk. Ezek az interaktomoknál általában jobban kidolgozottak, élsúlyaik jellemz®en az enzimek ismert sebességéb®l és az mRNS expressziós adatokból tev®dnek össze. Anyagcserehatásokkal kapcsolatban vizsgáljuk. 2.2.3.
Jelátviteli hálózat
A jelátviteli hálózat egy olyan ritkított interaktom, melyb®l az eektív m¶ködést végz® fehérjéket kihagyjuk, és csak a jelátviteli funkciójú fehérjék maradnak benne. Olyan, mint egy ország térképe, melyben csak a f®utakat, és a legfontosabb városokat hagytuk meg. Sok jelátviteli útvonal ismert, de csak nemrég derült arra fény, hogy ezek az útvonalak egymással is gyenge kapcsolatokkal, mi mással ^ össze vannak kapcsolva, így hálózatba lehet ®ket szervezni[17]. Kiderült, hogy minél bonyolultabb egy szervezet, annál több ilyen útvonalak közti kapcsolat van. Emberben már a 8 nagy útvonal mindegyike mindegyik másikkal összeköttetésben van. Ilyen jelátviteli adatbázisok találhatóak a SignaLink-ben (signalink.org), ami szintén a LINK-Group fejlesztése. Bonyolultabb formájában nem csak fehérjék szerepelnek, hanem transzkripciós faktorok, s®t, miRNS-ek is.
3. fejezet
Az öregedésr®l
3.1. Öregedés él®lényekben Az él®lények öregedése nem más, mint olyan változások felgyülemlése, melyek együtt patológiás jelenségek kialakulásáshoz, és végül halálhoz vezetnek. De Grey összegy¶jtötte a szakirodalomban mostanáig megjelent okokat, melyek az öregedés okozói [6]. Ezek:
• A sejtmagban vagy a mitokondriumban létrejöv® genetikai elváltozások (csak a rákos elváltozások számítanak, más esetben a sejt elpusztul, és egy egészséges lép a helyére) • Sejten belüli és sejtek közti szemét (emészthetetlen és kiválaszthatatlan anyagok) felgyülemlése • Sejtszám-veszteség: néhány típusú sejt lassabban szaporodik, mint ahogy elhasználódik. • Sejtek funkcióvesztése: Az öregedési folyamat során sokszor egy sejt elveszti m¶köd®képességét, de nem pusztul el, és nem hagyja, hogy egy egészséges másik sejt átvegye a helyét. • Sejtek közötti keresztkötések: A szövetek sejtjeit speciális összeköt® fehérjék tartják össze. Amennyiben túl sokan lesznek, a szövet rugalmassága és önjavítóképessége romlik. Azt gondolhatjuk, hogy az id® vasfogának semmi nem tud ellenállni, minden él®lény és hálózat változik az id® múlásával. Ez azonban nem teljesen igaz. Jó 17
3. FEJEZET.
AZ ÖREGEDÉSRL
18
néhány fajt azonosítottak, mely elhanyagolható öregedést mutat1 . Ez azt jelenti, hogy annak a valószín¶sége, hogy az él®lény elpusztul, nem függ a korától. Ezek az él®lények sem halhatatlanok azonban, mivel ragadozók vagy betegségek hatására ®k is el tudnak pusztulni. A különbség az, hogy egy ilyen él®lény korfája geometriai sorhoz hasonlít, mivel az elhalálozás esélye minden évben körülbelül azonos. Néhány ilyen faj vagy nemzetség, amely nem mutat öregedést: kreozotl-cserje(Larrea
tridentata ), simat¶j¶ szálkásfeny®(Pinus longaeva ), Hydra[22], s®t, valószín¶leg az amerikai mocsáritekn®s (Emydoidea blandingii ) sem[3]. Az a közös ezekben az él®lényekben, hogy úgy kerülik el az öregedést, hogy folyamatosan, nagy sebességgel újítják meg szöveteiket, így a változások nem tudnak eléggé felgy¶lni ahhoz, hogy elváltozásokat okozzanak[6]. Fejlettebb él®lényekben a nehézséget az jelenti, hogy az emlékezet m¶ködésének elengedhetetlen része az idegsejtek hosszú életkora, így a tekn®sre vonatkozó kutatás különösen érdekesnek t¶nik.
3.2. Öregedés hálózatokban Bizonyos hálózatokról már megmutatták, hogy öregedési jelenségeket mutatnak[16]. Ahogy a változások felgy¶lnek egy hálózatban, úgy lesznek egyre sérülékenyebbek, egyre érzékenyebbek a változásokra. A hálózatok rigidebbé válása úgy a károsodás, mint a tanulás eredményeképpen is felléphet. Ez azt jelenti, hogy a relaxációt a hálózat közelítése a random gráfhoz is gátolja, és a túltanulás, a kapcsolatok túlzott meger®södése is. A fenti biztató eredményekkel ellentétben ez aggasztónak t¶nik, mivel ha általános törvény, hogy a hálózatok öregszenek, akkor ezek a folyamatok a szervezet több szintjén is el® fognak kerülni. Kérdés, hogy mennyire általános ez a törvény. Vajon az Internet öregszik? És az ökoszisztéma? Az mindenesetre bizonyos, hogy ahogy öregszik a hálózat, úgy jön egyre nagyobb valószín¶séggel egy olyan perturbáció, mely hálózatrengést okoz a kapcsolatok gyors, kaszkádszer¶ megváltozását[4] . Ez lehet egy fázisátalakulás is, mely él®lényben annak pusztulását jelenti. Érdekes, hogy ezen kritikus fázisátalakulásnak mutatkoznak bizonyos korai jelei[25]. Ha sikerül el®rejeleznünk, tudjuk, hogy körülbelül hogy néz ki az eggyel el®z® állapot, akkor talán nincs messze az, amikor hálózatos módszert találunk arra, hogy milyen módon lehetne megállítani, vagy visszafordítani azt. És ha ezeket sikerülne az öregedés biológiájára alkalmazni... 1 Negligible senescence a szakkifejezés erre.
3. FEJEZET.
19
AZ ÖREGEDÉSRL
Na de mi lehet a atalság kulcsa? Valószín¶, hogy a lehet® legrugalmasabb állapotban kell tartani a hálózatot. Hogyha igaz az, hogy a tanulás, és a véletlen károsodás más-más irányba tolják a hálózat struktúráját, akkor a bölcsek kövét ott találjuk, ahol a mérlegen a tanulási, merevebbé tev®, és a véletlen, lazító hatások egyensúlyban vannak[16]. Ez természetesen csak feltételezés. 3.2.1.
Öregedésjelz®k
Azok a konkrét jelenségek, melyeket vizsgálok a méréseim során, azok, amik kifejezetten jellemz®ek egy öreged® rendszerre, a következ®ek. Növekv® za j.
A kapcsolatrendszer változásai miatt áthallások keletkeznek más út-
vonalakról, melyek zavarják a jelek átvitelét, esetleg vaklármákat produkálnak [4]. Gátolt relaxáció.
A bevált relaxációs útvonalak megváltoznak, ugyanakkora zajt
sokkal lassabban disszipál a hálózat, már kevesebbet bír öregen. Ez az egyes sz¶k keresztmetszeteken az átereszt®képesség csökkenését is eredményezi [4]. Szinkronizációs id®k növekedése.
A rendszer sebessége lassul, a változásokhoz
nehezebben alkalmazkodik, pl. a cirkadián ritmus esetében. Ezért sokkal hosszabb és zavaróbb a jet-lag id®seknél[28]. Jelamplitúdók csökkenése.
A zaj növekedésével együtt a hasznos jelek amplitú-
dója lecsökken, olyan helyekre is elszivárog a jel, ahova felesleges. Ez a zaj növekedésével együtt a jel-zaj viszony további romlását váltja ki[28].
4. fejezet
Vizsgálati módszereink
4.1. Statikus vizsgálatok Hogyan tudunk valamit megállapítani egy hálózatról? El®ször megnézzük a struktúráját. Megvizsgáljuk, hogy van-e óriáskomponens (perkolációs elemzés[1]). Milyen a kapcsolatok eloszlása? Ha egy hálózat kisvilág-hálózat, akkor annyit már biztosan tudunk róla, hogy két pont körülbelül legfeljebb log k lépésnyire van egymástól[2]. Meg kell nézni a fokszámeloszlást. Skálafüggetlen? Ekkor tudjuk a hálózatról, hogy redundáns, a skálafüggetlen fokszámeloszlás igen jól véd a véletlen hibák hatásától. Kereshetünk a hálózatban modulokat. Egy modul általában egy feladatot végez[18], ezért például ha interaktomoknál egy modulban található néhány fehérje funkcióját ismerjük, akkor valószín¶síthetjük, hogy a többi modulbeli fehérje ugyanezzel a funkcióval kapcsolatos alfeladatokat lát el, vagy ezt szabályozza. Ha skálafüggetlen a hálózat, akkor azt is tudjuk, hogy vannak benne hubok. Ezeket érdemes meghatározni, a típusukkal együtt (date-hub vagy party-hub). Ezek biztosan fontos csomópontok, mi történik a hálózattal, ha kiveszünk néhányat? Hogyan változik meg a struktúrája? Össze lehet hasonlítani több, hasonló hálózatot, és megvizsgálni a különbségeket. A SignaLink projektben például a C.elegans, a Drosophila (muslica), és az ember jelátviteli hálózatait lehet összehasonlítani[17]. Ahol például egy elem hiányzik az egyik hálózatból, de megvan a másik kett®ben, feltételezhet®, hogy érdemes egy homológ fehérjét keresni.
20
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
21
4.2. Perturbáció A dinamikus elemzés esetében a hálózat id®beli változásait vizsgáljuk. A komplex hálózatok dinamikus vizsgálata még nem kiforrott tudomány, kevés kidolgozott módszert találunk. Vannak ugyan bizonyos speciális hálózatok, melyeknek jól kidolgozott vizsgálómódszereik, és elméleti hátterük van (Kircho-hálózatok, jelfolyamhálózatok), de egyéb hálózatokkal még közel sem állunk ilyen jól. Két alapvet® dologra van szükségünk bármilyen dinamikus elemzéshez. Az els® a pontok pillanatnyi állapotának leírása, azaz az állapotváltozók. Ezeknek az állapotváltozóknak követjük és vizsgáljuk az értékét. Ez nagyon sok számítással jár, de sokkal többet meg lehet tudni a hálózat m¶ködésér®l. A másik, amire szükségünk van, az egy modell. A modell az állapotváltozók értékeinek változását adja meg az id®, a többi állapotváltozó, és a pont szomszédjainak állapotai segítségével. Ennek a matematikai formája egy parciális dierenciálegyenlet-rendszer. Példaképpen egy hidrodinamikai rendszer állapotegyenletei[26](4.1. ábra):
r
2g 1 ; β= F F p dx1 (t) = −α1 x1 (t) + β1 u1 (t) + β1 u2 (t) dt p p dx2 (t) = α1 x1 (t) − α2 x2 (t) + β2 u3 (t) dt y1 (t) = x1 (t) α = µf
y2 (t) = x2 (t) Ez egy két állapotváltozós rendszer, két kimenettel(y ). A nemlineáris parciális dierenciálegyenlet-rendszerek csak nagyon ritkán megoldhatóak analitikusan, de egy számítógép segítségével numerikusan kiszámolhatók az eredmények. Így a modell virtuális megjelenési formája egy algoritmus lesz, ami az állapotváltozók jelenlegi értékéb®l következtet a következ®re saját, bels® változói segítségével. A perturbáció tulajdonképpen egy rendszer megzavarását jelenti. Perturbáció bármi lehet. Megrángathatjuk az állapotváltozókat. Kivehetünk pontokat, linkeket a hálózatból, és így is vizsgálhatjuk az állapotváltozóinkat, ilyenkor új egyensúlyi állapotra találhat a rendszer. Hozzátehetünk elemeket a hálózathoz, vagy átrendezhetjük azokat. A perturbációs elemzés lényege, hogy egy adott kiindulási állapotból (ideális esetben az állandósult állapot, de ez nem feltétlenül létezik) egy jelet (zavar) küldünk a rendszernek, és vizsgáljuk az egyes pontok válaszát. A zavar szétoszlásával képet ka-
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
22
4.1. ábra. A modellezett hidrodinamikai rendszer ábrája. punk a hálózat relaxációjáról. Vizsgálhatunk más-más jelalakokra adott válaszokat, azt, hogy más pontokon indítva a zavart mennyire viselkedik máshogy. Indíthatunk több pontból gerjesztést, vagy gerjesztéseket, és kiderül, hogy hol vannak a hálózatban sz¶k keresztmetszetek, hol terhel®dik leggyakrabban túl a rendszer. Villamos hálózatokban ezt az eljárást tranziens analízisnek nevezzük, de a hálózatkutatásban a perturbációs elemzés kifejezést használjuk[1]. 4.2.1.
A perturbációs elemzés lehet®ségei
Mire lesz ez jó? Rendkívül fontos, hogy megértsük a komplex hálózatok m¶ködését. Konkrét matematikai számításokra, komoly el®rejelzésre csak tervezett rendszerekben vagyunk képesek. A biológiai jelenségekben, de akár a meteorológiában is 30-40%-os pontatlanság még kifejezetten jónak számít. Mérnöki munkában ez elfogadhatatlan. A komplex hálózatok jelenthetik az egyik kulcsot ahhoz, hogy a természet jelenségeit ne csak megértsük, hanem fel is tudjuk használni, be tudjunk avatkozni úgy, hogy jó közelítéssel tudjuk, hogy mi lesz annak a következménye. Ez a medicinán kívül rengeteg helyen, például a mez®gazdaságban is komoly el®relépést jelenthet1 . 1 A permakultúrás földm¶velésnek pont az a lényege, hogy a természet folyamatait utánozva, az ökológiai rendszerbe illeszkedve kevesebb munkával jobb termést tudunk elérni.
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
23
Ez persze nagyon hosszú távú terv. Közvetlen alkalmazások is vannak. A legnagyobb érdekl®dés a gyógyszerkutatók részér®l látszik. A multi-drug design (többutas gyógyszertervezés) lényege, hogy több, egymást segít® hatóanyagot juttatunk kis mennyiségben a szervezetbe. Megmutatták, hogy ez javítja a szelektivitást, és csökkenti a mellékhatásokat[19]. Az ilyen gyógyszerek tervezéséhez kiváló eszköz a perturbációs elemzés, mert megmutatja, hogy egy adott gerjesztés (a bejuttatott hatóanyagok) a szervezetben milyen választ vált ki (hatások, mellékhatások). Kommunikációs-, és energiahálózatok tervezésében is nagy segítség, meg tudja mutatni, hogy hol alakulnak ki sz¶k keresztmetszetek, és ha egy vezeték kiesik, melyik területek kapcsolódnak le2 . 4.2.2.
Biológiai megfeleltetés
Térjünk vissza az aktuális kutatási területhez, a biológiai hálózatokhoz. Amikor perturbálom a rendszert, mit teszek valójában? Metabolit-hálózatokban megváltoztatjuk az egyik anyag koncentrációját, például mesterséges adagolással (gyógyszerek). Ekkor a hatóanyag Gauss-görbe szerint jelenik meg, hiszen a molekulák felszívása normális eloszlású folyamatnak tekinthet®. Ha egy enzimet gátlunk, az a hozzá tartozó link gyengülésének felel meg. Fehérje-fehérje kölcsönhatásokban az történik, hogy az egyes fehérjéknek valamilyen módon többletenergiát juttatunk. Ez lehet kémiai úton (ATP), egyszer¶ melegítéssel, vagy mechanikai kényszerrel (másik molekula). Ha elég nagy a szabad energia, a fehérje térszerkezetet vált, eltekeredik[4]. Ilyenkor a fehérje kapcsolatrendszere átalakul (lásd 2.1.2. fejezet) Az ilyen átalakulásokból sokat ki tudnak javítani a dajkafehérjék (stresszfehérjék), de még így is gy¶lnek a hibás darabok. Ahogy ezek a hibák gy¶lnek, úgy lesz egyre inkább látható az eredmény is: öregszik az organizmus. Az ilyen perturbáció Dirac-delta alakban (impulzusszer¶en) jelenik meg. 4.2.3.
A perturbációs modell
Szükséges tehát egy modellt alkotni, mely a hálózat állapotait összeköttetésbe hozza egymással, és id®beli fejl®désüket jellemzi. Kétféle alapvet® modellt gondoltam ki, az els®ben a küls®, a másodikban pedig a bels® hatások dominálnak. 2 Gondoljunk az 1996-os amerikai áramszünetre[4].
4. FEJEZET.
24
VIZSGÁLATI MÓDSZEREINK
Flow modell
Az els® modell neve legyen ow, azaz áramlás-modell. A modell alapgondolata az, hogy a csomópontok tartályokat jelképeznek, és az ®ket összeköt® csövek a linkek. A csöveken a nyomáskülönbséggel arányos sebességgel áramlik át a folyadék, mennyisége pedig függ a cs® vastagságától. Ha valamelyik tartályba vizet töltünk (perturbáció), akkor a vízszintek szép lassan kiegyenlít®dnek. Ez az elgondolás a következ® egyenlettel írható le: l
X dS =− dt i=0
S − Si wi 2
− D1 S − D0
S a vizsgált pont állapota, l S linkjeinek száma, Si az i-edik link állapota, wi pedig ennek a linknek az élsúlya. D1 az els®fokú disszipációs állandó, D0 pedig a nulladfokú(konstans). A disszipációs állandók beépítése azért szükséges, mert a legtöbb rendszer veszteséges. Els®fokú és konstans veszteség található az egyenletben, természetesen igény szerint b®víthet®. Az els®fokú veszteség függ a jelenlegi állapottól (lyukas a tartály, minél magasabb a vízszint, annál gyorsabban folyik ki), a nulladfokú pedig nem(nyitott a tartály, és párolog bel®le a víz, ez csak a felszínt®l függ, a vízszintt®l nem). Hogy kerülnek ide a tartályok? Ez a legszemléletesebb leírás, amit találtam, viszont kiegyenlít®désre hajlamos folyamatokból rengeteg van. H®mérsékletváltozás, energiaszintek, bármilyen intenzív zikai változó ehhez hasonlóan terjed. Egy rezisztív elektromos hálózatban pontosan ugyanezzel a modellel leírhatóan folyik az áram, csak a nyomás helyett feszültséget, a vízáram helyett pedig elektromos áramot mondunk. Ezért ez a modell valószín¶leg sok rendszerben használható lesz. Feedback modell
Más rendszerekben a hálózat perspektíváján kívüli szabályozó hatások az állapotváltozók f® alakítói. Ennek a modellnek az alapgondolata az, hogy az egyes elemek külön-külön szabályozottak. A szabályozás azonban nem csak az adott elem állapotától függ, hanem a környez® elemek állapotától is. Az analógia itt csatolt ingák sorozata, ahol az egyes ingák pozíciója a rá ható er®kön (saját szabályozás) kívül a hozzá csatolt ingák kitérését®l is függ. Itt a csomópontok az egyes ingák, a linkek pedig a csatolások. Oszcillátorok is hasonlóképp viselkednek. A modell egyenlete:
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
25
l
dS X = (wi (Si − Si0 )) − K(S − S0 ) dt i=0 S itt is a node állapota, l pedig a node linkjeinek száma. wi a csatolás, Si a csatolt node állapota, S0 a csomópont nyugalmi állapota, Si 0 a csatolt node nyugalmi állapota, K pedig egy konstans, ami a két szabályozó hatás er®sségének arányát állítja be. A modell szabályozástechnikai szempontból két, egymással szembe csatolt P típusú szabályozó által vezérelt rendszert ír le. A környez® pontok kitérése a csatoláson át eltéríteni igyekszik az állapotot a nyugalmi pontból, a saját mechanizmus pedig vissza próbálja téríteni azt. Perturbáció hatására itt új állandósult állapot alakul ki, méghozzá minden elemen más. Az állandósult állapotok nagysága a perturbált elemt®l távolodva a csatolással exponenciálisan csökken. Természetesen nem csak ez a két modell elképzelhet®, s®t, igazából minden hálózattípushoz érdemes lehet egy pontosabb modellt kidolgozni, hogy az adatok jobbak legyenek. A két modell terveim szerint viszonylag sok rendszerre illeszthet® els® próbaként, ha a pontos viselkedés nem ismert, vagy nincs még modellezve. 4.2.4.
Mér®számaim
Ahhoz, hogy a dinamikus elemzés eredményét a függvényalakok összehasonlításánál kvantitatívabb módon is elemezni lehessen, speciális mér®számokat kell deniálnunk. Természetesen attól függ®en, hogy pontosan mit szeretnénk megtudni, más-más mér®számokat kell deniálni. Az öregedési perturbációs vizsgálatban a rendszer rendezetlenségének növekedésére vagyunk kíváncsiak, a relaxáció nehezedésére. Ennek megfelel®en a következ® mér®számokat fogom használni: Lecsengési id®
az az id®, amely alatt egy node állapotváltozója egy adott érték
alá csökken úgy, hogy kés®bbi id®pillanatban már nem lép ezen érték fölé. Jele: TRi Elcsendesülési id®
: az az id®, amely alatt a hálózat összes node-ja végleg alá
csökken. Jele: TS Legnagyobb lengés Zavarszám
: a hálózatban tapasztalható legnagyobb zavarjel. Jele G.
: azoknak a csomópontoknak a mennyisége, melyek a perturbáció ha-
tására értéknél jobban megváltoztatják állapotukat. Jele D.
4. FEJEZET.
26
VIZSGÁLATI MÓDSZEREINK
Jel-zaj viszony
: A hálózatban gyakran találhatunk kiemelt, jelátvitel céljára
használt útvonalakat. Egy ilyen útvonalon indított perturbációt tekintünk jelnek. A valós hálózatban eközben sok más folyamat is zajlik, az ezek összessége által generált változást nevezzük zajnak. Ezt vagy egy minden node-ra alkalmazott fehérzaj jelleg¶ gerjesztéssel közelíthetjük, vagy a küls® környezettel leginkább kapcsolatban álló node-okon egy periodikus gerjesztéssel. A két gerjesztés szuperpozíciójából keletkezik a node valódi gerjesztése3 . A jel relatív er®sségének mérésére javaslom ezzel a módszerrel hálózatokban is bevezetni a jel-zaj viszony mér®számot:
SN R(dB) = 10 · log10
Psignal Pnoise
,ahol Psignal a jel teljesítménye, Pnoise pedig a zaj teljesítménye. Az egyes teljesítmények számítása:
s
n Y i=0
lim
T −→∞
1 2T
Z
T
[si (t)]2 dt −T
, azaz az összes állapotváltozónk eektív értékének(RMS) szorzata. 4.2.5.
Hálózatváltozások
A hálózatok az id® során a különböz® küls® tényez®k hatására folyamatosan változnak. Új kapcsolatok jönnek létre, meglev® kapcsolatok t¶nnek el, kevésbé radikális esetben csak az er®sségük változik. Alapvet®en a hálózatváltozások a tanulás és a leromlás szembeállításaként jönnek létre. Ha egy hálózatot zavar ér, igyekszik úgy rendezni a kapcsolatokat, hogy legközelebb gyorsabban elvonulhasson a zavar. Ehhez az kell, hogy minél több pontra szét tudja osztani azt, tehát a használt linkek er®södésvel számolhatunk. Ez gyakran el®forduló csoportjellemz® tulajdonság, ezt nevezem hálózatos tanulásnak. A leromlási folyamatok általában id®vel er®söd® gyengítésként írhatóak le, akár determinisztikusan, akár sztochasztikusan. Ennek a két folyamatnak az ered®je az öregedés. Ha a hálózat túlságosan tanult, akkor egy ismeretlen változás okoz kivédhetetlen zavart, ha pedig túlságosan véletlenszer¶, akkor az ismert, gyakran érkez® zavarok nem tudnak disszipálni, így egyik esetben sem lesz túl hosszú élet¶ a struktúra[4]. A tanulás csomópont-szinten létrejöv® eseményeire egy szép példa az idegsejtek LTP(long-term potentiation, hosszútávú er®sítés) 3 Ez csak akkor igaz, ha lineáris a modell
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
27
jelensége[12]. Amennyiben két, egymással szinaptikus kapcsolatban lev® neuron sokszor egyszerre jön ingerületbe, a közöttük lev® szinapszis meger®södik (4.2. ábra). Ez a neurális hálózatok Hebb-féle tanulásának alapelve.
4.2. ábra. A hosszútávú er®sítés jelensége. (Kép:[24]) A diplomamunkában használt hálózattípusban, azaz az interaktomban helytelenül feltekeredett fehérjék fognak hálózatváltozásokat okozni, az 2.1.2. fejezetben említettek szerint. A kapcsolódó felületek változása új linkek megjelenését, és a régiek megsz¶nését jelentik. A protein-aggregátumok keletkezése hálózatos szemmel azt jelenti, hogy néhány fehérje közötti kapcsolat rendkívül meger®södik, a többi kapcsolat viszont nagyon meggyengül, vagy megszakad. 4.2.6.
A teljes modell
Az interaktom perturbációs modellezését tehát az eddig leírtak alapján a következ®képp valósítottam meg. Az egyes fehérjék állapotváltozója az adott fehérje szabadenergiája. Ennek terjedését egy ow folyamat szerint modelleztem. Ha két fehérje összekapcsolódik, a linken a rezgéseik lassan kiegyenlít®dnek. A kiegyenlít®dés sebessége a link er®sségével(azaz a kapcsolódó felületek nagyságával) arányos. Bizonyos mennyiség¶ energiát a fehérje saját maga el tud disszipálni a mozgások révén, ezt állandó sebességgel teszi, tehát magától az energiaszintt®l nem függ (csak a fehérje méretét®l). A linker®sségek változása a következ® mechanizmus szerint történik. Minél több energia adódik át egy linken bármelyik irányba (ezért négyzetes), a kapcsolat annál er®sebb lesz. Ennek a biológiai magyarázata az, hogy a kapcsolódás konformációváltozásra készteti a fehérjét, ahonnan id® visszaállnia, így a szétkapcsolódás után könnyebben tud ugyanaz a fehérje odakapcsolódni. Ez azonban a többi link rovására
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
28
történik, hiszen ha a fehérje olyan állapotba került, hogy az egyik helyhez nagyon jól tud kötni, akkor a többi köt®felszín optimális állapotának megfelel® konformációs állapotokat a fehérje kisebb valószin¶séggel veszi fel. Az öregedés során minden kapcsolat er®ssége az oxidáció miatt szisztematikusan gyengül, méghozzá a két fehérje öregedésre való érzékenységével arányosan.
4.3. ábra. Egy energiagödör alakja a konformációs állapottérképen. Ilyenekb®l épül fel a modell rácsa. A fehérjék állapottérképét egy egyforma mélység¶ energiagödrök rácsaként modellezem, a 4.3. ábra szerint. Bármelyik node energiája meghalad egy Ecr kritikus értéket, a node kifordul, azaz a régi kapcsolatait megszakítja, és létrehoz feleannyi kapcsolatot véletlenszer¶en más elemekkel. Azért feleannyit, mert a kifordult fehérje az eddigi kapcsolódási felületeket nem mutatja, ráadásul kívülr®l hidrofób, így más normális fehérjékhez kisebb eséllyel tud kapcsolódni. Ez egy rengési folyamat, így ekkor a node energiája visszaesik 0-ra. Ez az alapvet® modell. Mivel az öregedés és a perturbáció nagyságrendileg is más id®intervallumban jelent®s hatások, így célszer¶ külön-külön futtatni ®ket. A teljes rendszeregyenletek ezek alapján a következ®k:
X E − Ee dE = − l w i − D0 dt 2 i=0 dwl = Cs ((Es − Ee )wl )2 − (As + Ae )t2 dt dwl 1 dwc = −Cw dt dt l
Az els® egyenlet írja le a ow folyamatot. E a node szabad energiája, l a node fokszáma, Ee az aktuális link végén található másik node, D0 a disszipációs állandó,
Rl pedig az aktuális link er®ssége. Cs egy er®södési konstans, Es a link kezd®pont-
4. FEJEZET.
VIZSGÁLATI MÓDSZEREINK
29
jának energiája, Ee a végpont energiája, Rl a jelenlegi kapcsolater®sség. A második egyenlet a linker®sségek változását írja le. Az els® tag az átfolyó energia eektív értékének négyzetével arányos. A második egyenlet másik tagja az öregedéssel kapcsolatos, As és Ae a kezd®-, és végpont öregedési érzékenysége, az öregedés így az id®vel négyzetesen arányosan képviselteti magát. A harmadik egyenlet egy node többi linkjének változását adja meg amikor egy link er®södik, méghozzá úgy, hogy a gyengülés egyenletesen oszlik szét a node többi linkje között. Cw egy gyengülési konstans. A modell áttekinthet®sége érdekében több megfontolást elhanyagoltam, azért, mert meggondolásom szerint ez az egyenletrendszer már mutatni tudja az öregedés fontos hálózatos jelenségeit. El®ször is, nem különböztetek meg kitekeredett és natív állapotú fehérjét. Ezért a kitekeredett fehérjék szabadenergiája is le tud menni ugyanannyira, mint amennyi a natív konformációé, pedig a valóságban magasabban kellene maradnia. Ugyanezen ok miatt az a hatás sem szerepel az egyenletben, mely szerint kitekeredett fehérjék egymáshoz er®sebben kötnek, mint natív fehérjéhez. Mindezek a folyamatok a linkszám csökkenésével modellezhet®ek. Nem szabad elfelejteni azt sem, hogy egy folyamat során nem egy fehérje, hanem egyforma fehérjék csoportja jelent egy node-ot az interaktomunkban. Ezért a kritikus energiaszint átlépése körül igazából nem ugrásszer¶, hanem exponenciális átalakulás történik. Mivel a természetben lezajló leggyorsabb folyamatok az exponenciálisak, így nem követünk el súlyos hibát, ha ugrásfüggvénnyel modellezünk. Szintén pontosabb megoldás volna, ha egy fehérje kitekeredésekor nem pontosan feleannyi, hanem véletlenszer¶ számú, de feleannyi várható érték¶ kapcsolat jönne létre. Mivel a várható érték az átlag becsl®je, ezért hosszútávon nem követünk el nagy hibát, ha mindig pontosan 0,5-szöröst választunk. Az összekapcsolódás hatására létrejöv® linker®södés csak addig érvényes, amíg kapcsolatban vannak, illetve nem sokkal kés®bbig. Sok id® elteltével már statisztikailag nem nagy a valószín¶sége, hogy a gerjesztett konformációban találjuk a fehérjét mindenféle küls® hatás nélkül.
5. fejezet
A készített segédprogram
5.1. Bemutatkozik a Turbine A készített perturbációs elemz® programnak a Turbine nevet adtam. Ebben a fejezetben szeretném bemutatni a tulajdonságait, képességeit. A Turbine C++ és C# nyelven készült. Nem egy program, hanem egy egész toolkit, azaz programcsomag, amely az adatfeldolgozás, analízis, eredményszámítás és megjelenítés összes lépcs®fokának összetev®it tartalmazza. Az els®dleges tervezési szempont az volt, hogy minél gyorsabban fusson a program, egy középer®s laptopon (Core 2 Duo 2Ghz, 2GB RAM) n = 2-3 ezer node méret¶ hálózat analízise és elemzése kivárható id®n belül történjen. A megjelenít® program grakus felület¶, ez készült C#-ban, a többi parancssoros, C++-ban, így nem menedzselt környezetben íródott, a lehet® legjobb memória-, és processzorkihasználás érdekében. A programozást Windows XP alatt végeztem, MinGW környezetben, Eclipse fejleszt®rendszer segítségével, így a program Linux alá is egyszer¶en fordítható. A grakus felület a Mono keretredszer segítségével tehet® Linux-kompatibilissé. A program az egyes funkciók különválasztása miatt nagyon verzatilis lett, az el®ször tervezettnél jóval több funkció lehet®sége felmerült, amire használni lehet. A Turbine a rendelkezésemre álló legnagyobb, 10000 csomópont és 60000 kapcsolatszámú szóasszociációs hálózattal is megbirkózott, a perturbációs elemzést 1000 iterációval egy percen belül elvégezte, a megjelenítés során 3 fps-t produkált. Ez arra enged következtetni, hogy egy nagyságrenddel nagyobb hálózat esetében is kéthárom órán belül lezajlik az elemzés, körülbelül ez a még kivárható id® fels® határa. Ahhoz, hogy ezt a sebességet elérje a program, néhány optimalizációs lépésre szükség volt, a fontosabbakra külön kitérek majd.
30
5. FEJEZET.
5.1.1.
A KÉSZÍTETT SEGÉDPROGRAM
31
Hálózatok reprezentáció ja, a Pajek és a CNET formátum
A hálózatokat, gráfokat számítógében valamilyen absztrakt adatstruktúrában tároljuk. Az egyik standard ilyen hálózatok tárolására a Pajek le formátum (.net kiterjesztéssel), csoportunk leginkább ezt használja. Egy Pajek le szöveges, azaz szabad szemmel olvasható le, szerkezete a következ®: El®ször a csomópontokat deniáljuk (Vertices), méghozzá egy azonosítóval (szám), és egy névvel (szöveg). Ha a pontokhoz már van rendelve X, Y, Z koordináta, akkor azokat is ide írjuk(lebeg®pontos), illetve ha a pontnak van színe, szintén. Ezután az irányítatlan (Edges) és az irányított (Arcs) élek leírása következik, három számmal. Az els® a kezd®pont azonosítója, a második a végponté, a harmadik pedig az élsúly. Ezekb®l az adatokból ki tudunk rajzolni egy hálózatot. A programban ez a hálózat úgynevezett objektumként jelenik meg, azaz egy adatstruktúraként, a rajta végezhet® m¶veletekkel együtt. Egy hálózat struktúrája a következ®:
class paramdata { public: vector<string> parmdata; int GetParamPos(string paramname) { for(unsigned int i=0;i<parmdata.size();i++) { if(parmdata[i]==paramname) return i; } return -1; } };
Egy hálózatnak így van neve(pl. The Yeast Interactome), és típusa(pl. PPI 1 ). Tartalmaz csomópontokat, kapcsolatokat, és tartalmazhat csomóponti és kapcsolati paramétereket. Ezek a paraméterek gyakorlatilag bármilyen adatot tartalmazhatnak, minden elemre egy lebeg®pontos vektort tárolhatunk. Így tároljuk az élsúlyokat, a pontok disszipációját. Elemenként több adat lehet szükséges például egy él átviteli-függvény együtthatóinak a meg®rzéséhez. A hálózat egy pontjának van azonosítója, neve, állapotai, X,Y koordinátája, és kapcsolatai. Ezenkívül a ponthoz tartozó paraméterek vektorai is itt vannak. A program Z koordinátákat nem kezel, csak 2 dimenzióban rajzol, illetve az azonosító már nem szabadon választott, a legels® elem azonosítója 0, az utolsóé pedig
n − 1. Ez fontos gyorsítást jelent, mivel nem kell minden alkalommal kikeresni a megfelel® azonosítójú pontot, hanem pontosan tudjuk, hol találjuk a tömbben. Két állapotunk van, a state és a newstate nev¶. Mivel a lépésközt tetsz®legesen kicsire lehet választani, így az egyszer¶bb szinkron update megvalósítása mellett döntöttem. Azaz a modell minden lépésben kiszámolja a state vektor alapján a newstate vektor megfelel® elemét, majd ha kész, akkor a következ® lépés elején a newstate vektort átírjuk a state vektorba. A kapcsolatoknak is lehet neve, pl. metabolit-hálózatokban az összeköt® enzimek esetén. Egy kapcsolat tartalmazza a két végpontjának azonosítóját, a nevét, azt a tényt, hogy irányított-e, valamint a kapcsolat-paramétereket. A paramétereket valahogy azonosítani kell, ezért a paramétereknek is van nevük. Felesleges azonban minden csomópontra és kapcsolatra az összes paraméter nevét eltárolni, mert úgyis ugyanaz mindegyikben. Ezért egy speciális osztályt vezettem be, a pManager -t, azaz a paraméterkezel®t. Ez mondja meg, hogy egy adott nev¶ paraméterhez a paramétervektor hanyadik eleme tartozik (GetParamPos eljárás). A leírtak alapján látszik, hogy mindez nem tárolható el a Pajek le-ban, így saját formátumot készítettem. Ez a CNET (complex network) bináris le-formátum. A le felépítése a F.1. függelékben található. Ezen a módon látja a Turbine a hálózatokat. 5.1.2.
Funktorok, a CDAT formátum
A hálózatokhoz tartoznak különböz® bemen® és kimen® adatok, mint például az állapotvektorok. Ezekben az adatokban közös, hogy vagy minden csomópontra, vagy minden kapcsolatra egy id®függvényt írnak le. Az adatok így mátrixot alkotnak, 1 Protein-protein interaction network, azaz fehérje-fehérje kölcsönhatás-hálózat.
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
34
de a funkciójukat jobban mutatja a funktor (function vector, függvények vektora) megnevezés. Egy funktort a következ® osztály deniál:
enum functype{scalar=0,nvector,nfunctor, lvector,lfunctor,vect,function,matrix}; class functor { public: string name; string desc; vector > data; functype type; unsigned long width; unsigned long length; unsigned char harmonic; static functor* LoadFunctorFromFile(string vectorfile, string funcname); static int AddFunctorToFile(functor func, string funcfile); static int SaveFunctorToFile(functor func, string funcfile); static vector<string>* functor::GetFunctorsInFile(string functorfile); double getFuncParam(string paramname); }; Tehát minden funktornak van neve, és leírása. A leírásban az eredményhez vezet® vizsgálat részletes adatait adhatjuk meg. Ha a leírásban szerepelnek =<érték> alakú adatok, akkor az <érték> paramétert a
getFuncParam() parancs segítségével kinyerhetjük. Ily módon tudjuk például a futtatott analízis lépésközének idejét tárolni. Ezután következik egy lebeg®pontos mátrix, ami magukat az adatokat tartalmazza, majd a funktor típusa. A típus meghatározásánál egy fontos kulcsszó az illeszkedés. Egy funktor illeszkedhet egy hálózat csomópontjaira vagy kapcsolataira. Ez azt jelenti, hogy a sorok száma megegyezik a gráf csomópontjainak vagy kapcsolatainak a számával. Így minden adott hálózati elemhez
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
35
hozzá tudunk rendelni egy függvényt, e módon könnyen ábrázolhatóak lesznek például a hálózat állapotváltozói. Tároljuk még a funktor szélességét (sorok száma) és hosszúságát (oszlopok száma). További jellemz®, hogy a funktor periodikus-e, vagy tranziens. Ha periodikus, akkor amikor az egyik program alkalmazza az adott funktort, azt végtelen hosszúnak fogja tekinteni, egy periódusa pedig a tárolt függvényalak lesz. Jelen pillanatban 8 fajta funktort különböztet meg a Turbine: 1. Skalár (scalar ). Egyetlen számot tároló funktor, hosszúsága és szélessége 1. 2. Csomóponti vektor (nvector ). Hossza illeszkedik a hálózat csomópontjaira, szélessége 1, vagy az állapotok száma. 3. Csomóponti funktor (nfunctor ). Hossza illeszkedik a hálózat csomópontjaira, szélessége változó lehet. Az állapotok id®függvénye lesz ilyen, valamint a perturbációs gerjesztés. 4. Kapcsolati vektor (lvector ). Hossza illeszkedik a hálózat kapcsolataira, szélessége 1, vagy az állapotok száma. 5. Kapcsolati funktor (lfunctor ). Hossza illeszkedik a hálózat kapcsolataira, szélessége változó lehet. A linkeken történ® átfolyás id®függvénye ilyen. 6. Egyéb vektor (vect ). Hossza tetsz®leges, szélessége 1. 7. Függvény (function ). Hossza 1, szélessége tetsz®leges. 8. Mátrix (matrix ). Hossza és szélessége tetsz®leges. Ennek az adatformátumnak a tárolására született meg a CDAT le, ami szintén bináris formátum. Egy CDAT-ban több funktort is tárolhatunk, de fontos, hogy nevük nem lehet egyez®, különben azonosíthatatlanok. (ezt nem is engedi a program) A CDAT felépítése a F.2. függelékben található. Eddig rendben is vagyunk. A kérdés most az, hogy honnan lesznek ilyen CDAT le-ok? Egyrészt egyszer¶bb függvényalakokat generálhatunk. Ha ennél bonyolultabbat szeretnénk, akkor pedig MATLABájt-ban érdemes elkészíteni, és a kapott mátrixot a MATLAB saját adatformátumában, MAT-ban exportálni. A Turbine a .MAT le-ok 5/6-os verziójának kezelésére van felkészítve. Ahhoz, hogy biztosan ilyen formátum készüljön, a következ® parancsot kell kiadni:
save -v6 -mat <mátrix1> <mátrix2> ... <mátrixN> . Így bármilyen függvényalakból funktort tudunk készíteni.
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
36
5.2. A Turbine parancssoros része 5.2.1.
A programok bemutatása
A Turbine toolkitben az adatok áramlása a következ®, 5.1. ábra szerint történik:
5.1. ábra. A Turbine folyamatábra. El®ször a meglev® hálózatunkat további használat céljából CNET formára kell alakítanunk. Erre szolgál az nconv eszköz. Pajek és CNET között mindkét irányban tud átalakítást végezni. A készített hálózat neve network, típusa unknown lesz. Ha ez nekünk nem szimpatikus, módosíthatjuk az nedit program használatával. Ha a hálózatunkhoz paramétert szeretnénk adni, azt szintén az nedit segítségével tudunk, az addparam parancs használatával. Paramétert eltávolítani egy hálózatból az
rmparam parancs segítségével lehet. Ha egy paraméter adatait szeretnénk kinyerni CDAT-ba, erre az nedit extract parancsot használjuk. CDAT-ot a generate program segítségével készthetünk. Jelenleg Dirac-delta, négyszögjel, szinusz, és Gauss-görbe alakú függvényalakokat tud készíteni, egy kijelölt elemre, az összes elemre, vagy véletlen számú elemre. A generált funktor neve Gen1, leírása Generated function lesz, típusa scalar, function, vect, vagy matrix, a dimenzióktól függ®en. MAT-let a dconv tud átalakítani CDAT formára, és vissza. 6-os verziót támogat, és felismeri a MATLAB vektorokat, mátrixokat, vagy ritka mátrixokat, normál vagy tömörített formában. Ennél bonyolultabb elemeket (MATLAB objektumokat) nem kezel. Minden változóból egy külön funktort készít. A funktor neve megegyezik
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
37
a MATLAB változónevével, leírása Converted from MAT lesz, típusa vect vagy matrix. Generálás vagy átalakítás után az adatok paramétereit a dedit segítségével módosíthatjuk. Itt érdemes még két kiegészít® programot megemlíteni, a dlist -et, ami egy adott CDAT-ban található funktorokat listázza különféle adataikkal együtt, és az nview -et, ami egy CNET-ben található hálózat néhány adatát írja ki. Ha több CDAT-ban található funktorokat van szükség egy le-ban látni, a merge et érdemes használni. Egy CDAT több funktorát írja szét külön le-okba a split eszköz. Az így készült le-ok neve megegyezik a CDAT-ban lev® egyes funktorok nevével. Amennyiben a lineáris modellt használjuk, a hálózat stabilitásának biztosításához az élsúlyokat normalizálni kell, erre szolgál a normalize program. A program els®dleges funkciója, hogy megvizsgálja, hogy az a node, amelyhez a legnagyobb összsúlyú kapcsolatok csatlakoznak, milyen összsúllyal rendelkezik, és egy olyan számmal szorozza végig az összes linket, hogy a legnagyobb összsúly a beállított érték (célszer¶en 1) legyen. A normalize képes még a végtelen élsúlyú linkek eltüntetésére is (ez elrontaná a számolásokat), illetve az összes élsúly reciprokát tudja venni. Ez a reciprokszámítás azért érdekes, mert az élsúlyt deniálhatjuk er®sségként, ami azt jelenti, hogy minél er®sebb egy link, annál gyorsabban mennek át rajta az adatok, illetve deniálhatjuk költségként, mely esetben minél nagyobb költség¶ a link, annál lassabban lehet átjutni rajta. Ezen két deníció közt biztosít átjárást az egyes linkek reciprokának vétele. Ezek után nekilendülhetünk az analízisnek.
A perturbációs analízist magát
a panalysis program végzi. A modell a panalysis alatt cserélhet®, a mindenkori
model.dll függvényeit használja. Új modellt beállítani a setmodel programmal tudunk. Ez a kiválaszott modellt a models könyvtárból a model.dll helyére másolja. Paraméter nélkül meghívva a jelenleg aktív modellr®l kapunk információt, névvel, leírással és az állapotváltozók számával. Ha beállítottuk a modellt, el kell készíteni egy CDAT le-t. Ez tartalmaz egy sVec nev¶, nvector típusú funktort, ami a kezd®állapotokat tartalmazza. A modell minden állapotához készítenünk kell egy nfunctor típusú funktort, aminek neve perFuncN, ahol N az adott állapot száma. Ezeket a funktorokat egy le-ba téve meghívhatjuk a panalysis programot. Meg kell adnunk az analízis teljes idejét, egy lépésköz idejét, valamint az elemezend® hálózatot, és a perturbációkat tartalmazó CDAT-ot. Eredményként az állapotváltozók és a paraméterek id®függvényét kapjuk. Ezt a CDAT-ot a megjelenít® programba betápálhatjuk, vagy perturbációs
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
38
paramétereket számoltathatunk bel®le. A perturbációs paraméterek számítását a calculate végzi. Mostani állapotában lecsengési id®t (disT), elcsendesülési id®t(silT), zavarszámot (preach), csomóponti jel-zaj viszonyt (NSNR) és hálózati jel-zaj viszonyt (SNR) tud számítani.(A mér®számok leírása a 4.2.4. fejezetben található.) Ezeket megjeleníti a konzolon is, de skalárként egy CDAT-ba is kiírható. A hálózat tanítását, a paraméterek változtatását tehát a fehérjeváltozások generálását a learn eszközzel végezhetjük.
A különböz® tanítási lehet®ségek-
nek megfelel®en az élsúlyok változtatására szolgáló algoritmus is cserélhet®. Ezt a teacher.dll-ben tároljuk. Az aktuális tanár a setteacher alkalmazással állítható be, paraméter nélkül a setmodel alkalmazáshoz hasonlóan a jelenleg beállított algoritmusról kapunk információt. A perturbáció-tanítás ciklust van, hogy szeretnénk sokszor egymás után, automatizáltan lefuttatni. Ebben nyújt segítséget a cycle program. Igazából bármilyen parancssoros programok futtatásának automatizálására használható. Egy szkriptle-ból dolgozik, ami bármilyen szöveges le lehet, és megadott számú alkalommal a le összes sorát egymás után lefuttatja, minden sort egy-egy parancsként kezelve. Ha egy sorban valahol a !c karaktersorozatot találja, azt kicseréli az éppen aktuális ciklus számára. Ezen programok állnak rendelkezésre az analízishez. 5.2.2.
Példa egy elemzésre
A Turbine m¶ködését segíthet megérteni, ha az el®bb leírtakat bemutatom egy konkrét példán. El®ször a Pajek formátumban adott hálózatunkat átkonvertáljuk:
nconv from pajek dp2_maincomp.net yeast_interactome.cnet Beállítjuk a nevét, és a típusát: nedit yeast_interactome.cnet set name "YeastI" type "PPI"! Megvizsgáljuk, hogy hány csomópontot tartalmaz:
nview yeast_interactome.cnet Beállítjuk a lineáris modellt aktívvá: setmodel linear_wdissip Megvizsgáljuk, hogy milyen paraméterekre van szüksége a modellnek: setmodel
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
39
Kiderül, hogy egy link paraméter kell, amit strength-nek hívnak, és két node paraméter, amiket D1-nek és D0-nak neveznek. Az is leolvasható, hogy egy állapotváltozóval dolgozik a modell. Élsúlyok már vannak, disszipáció azonban még nincsen a hálózat csomópontjaihoz rendelve. Rendeljünk hozzá minden csomóponthoz 0,1-es els®fokú, és 1-es nulladfokú disszipációs értéket. El®ször készítsük el a paraméterekhez tartozó függvényeket. Az nview program segítségével kiderítettük hogy a vizsgált hálózat2 2444 csomópontból áll.illetve a generált függvények neve Gen1 lesz, és típusa 6 (vect). Így a következ® parancsokat kell végrehajtani:
generate 2444 generate 2444 dedit d1.cdat dedit d0.cdat
1 all constant 0.1 to d1.cdat 1 all constant 1 to d0.cdat Gen1 set name D1 type 1 Gen1 set name D0 type 1
Ezután adjuk hozzá a hálózathoz az új paramétereket:
nedit yeast_interactome.cnet addparam node d0.cdat D0 nedit yeast_interactome.cnet addparam node d1.cdat D1 Ezzel a hálózatunk készen áll. Az analízishez kellenek még a kezd®feltételek, és a perturbációk. Legyen a kezd®állapotaink vektora konstans 1:
generate 2444 1 all constant 1 to svec.cdat! dedit svec.cdat Gen1 set name sVec type 1 Fontos, hogy a kezd®vektor neve sVec legyen, valamint a perturbációé mivel csak egy állapot van perFunc0. A perturbáció legyen egy 100 lépés hosszú Gaussgörbe, µ = 10, σ = 3 és A = 100 paraméterekkel. Figyeljük meg, hogy a perturbációs függvény funktor, így egyszerre több helyr®l is indíthatunk perturbációt.
generate 2444 100 single 1 gauss 10 3 100 to perturbation.cdat dedit perturbation.cdat Gen1 set name perFunc0 type 2 2 A hálózat egyébként az Ekman-féle éleszt® interaktom[7]
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
40
Ezután tegyük bele a készített funktorokat egy le-ba:
merge perturbation.cdat svec.cdat to startparams.cdat És most tudjuk futtatni az analízist. 1000 másodpercig, 100 ms lépésközzel futtatjuk a vizsgálatot. panalysis -a 1000 -s 0.1 yeast_interactome.cnet startparams.cdat results.cdat Ha végzett, az eredményekb®l kiszámoljuk az elcsendesülési id®t, és a D10 zavarszámot. A calculate program a nodeRes nev¶ funktort használja a számítások elvégzéséhez. dedit results.cdat nodeRes_Perturbation(0) set name nodeRes calculate silT 0.1 results.cdat calculate preach 10 results.cdat
Ezen parancsok futása után a konzolablakban megtekinthetjük az eredményeket. Tegyük fel, hogy a perturbációs eredmények segítségével szeretnénk generálni fehérjeváltozásokat. Ezt a következ®képp tesszük:
learn yeast_interactome.cnet results.cdat yeast_modified.cnet A kimeneti yeast_modified.cnet tartalmazza az új hálózatot. A Turbine részét képezi az említetteken kívül még egy le, a propeller.dll. Ahogy propeller nélkül egy valamirevaló turbina sem tud m¶ködni, ugyanígy a Turbine sem tud enélkül futni. Ez a le tartalmazza a hálózatok és a funktorok le-formátumát, és az ezeket kezel® funkciókat, mint a töltés-mentést. Amennyiben valaki saját segédprogramot szeretne készíteni a Turbine-hoz, a propeller.dll használatával könnyen tudja kezelni a fent bemutatott leformátumokat.
5.3. Grakus felület a Turbine-hoz: monitor A turbinák m¶ködését monitorokon tudjuk követni, így monitor lett a neve a Turbine grakus megjelenít®jének. Futtatásához .NET 2.0-ás, vagy ezt a verziót támogató Mono keretrendszer szükséges. A program indítása után a Monitor f®ablakával találjuk magunkat szembe (5.2. ábra), ahol már nyitva van a konzolablak(Console window). Ezzel az ablakkal van a grakus felületbe integrálva a Turbine parancssoros része. Felül beállítható az aktuális könyvtár, az alsó szövegdobozba írt parancsokat pedig a Monitor lefuttatja a rendszer parancsértelmez®jéhez hasonlóan. Az el®z®leg beírt parancsok közt a fel-le nyilakkal tudunk lépkedni, TAB-bal pedig az automatikus kiegészít® szolgáltatást lehet meghívni. Az automatikus kiegészít® megpróbálja
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
41
a beírt utolsó szót egy le vagy könyvtár nevévé kiegészíteni. Az eredmények között a TAB nyomogatásával lehet lépkedni. Amennyiben az el®z® szó egy .cdat le neve, a kiegészít® algoritmus a .cdat-ban található funktorok neveit is felhasználja a kiegészítéshez.
5.2. ábra. A Monitor f®ablaka A File->Open network menü segítségével, vagy egyszer¶en csak a .cnet le f®ablakba húzásával nyithatunk meg egy hálózatot. Ekkor a hálózathoz nyílik egy hálóablak (network window), a további vizsgálatokat itt lehet elvégezni. Amennyiben a hálózat még nincs elrendezve, egy egyszer¶ er®vezérelt layoutot biztosít a Layout->Force-directed layout gomb. Ez tulajdonképpen egy gyors mechanikai szimulációt futtat, ahol a csomópontok elektromosan töltött fémgömbök, az ®ket összetartó kapcsolatok pedig rugók, így az elektromos taszítás és a rugóállandók egymás ellen hatnak. Indításkor véletlen pozícióba helyezi a csomópontokat az algoritmus, majd az állandósult állapot elérésekor kirajzolja a gráfot. Ha meg akarjuk tartani az elrendezést, az elrendezett hálózatot a Network->Save Network menüpont segítségével menthetjük el. A hálóablakban (5.3. ábra) bal felül a hálózat megjelenítése látható, baloldalt alul egy függvénymegjelenít®, jobb oldalon pedig egy információs ablak. Jobb felül található három eszköz: Zoom, Select és Move. Select módban a hálózaton egy node-ra kattintva kijelölhetjük azt, ekkor a kijelölt pont információi megjelennek oldalt. A Node parameters dobozban vizsgálhatjuk a kiválasztott elem paramétereit, a Links of selected node dobozban pedig látjuk a csomópont kapcsolatait. Kapcsolatot ebbe az ablakba kattintva jelölhetünk ki, ekkor megjelennek a kapcsolat adatai és paraméterei is.
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
42
5.3. ábra. Hálózatvizsgáló ablak a Monitorban Zoom módban a hálózat ablakába kattintva nagyíthatjuk, a Shift nyomvatartása mellett kattintva pedig kicsinyíthetjük azt. Dupla kattintással visszatér az eredeti méretbe. Move módban egy kiválasztott pontot tudunk mozgatni. Select vagy Zoom módban húzva az ablakot tudunk scrollozni. Ha egy ismert nev¶ vagy azonosítójú pontot keresünk, akkor a Find menüt lehet segítségül hívni. Lehet csak névre, csak azonosítóra, vagy mindkett®re keresni, a keres® csak a kitöltött mez®ket veszi gyelembe. A Monitor többi funkciójának használatához be kell töltenünk néhány funktort. Ezt a Results->Load results menüben tehetjük meg. Ekkor a Loaded Items dobozban megjelennek a betöltött funktorok, és látható lesz néhány információjuk. Egy funktorra rákattintva amennyiben az a node-okra vagy a linkekre illeszkedik egy megfelel® elemet kiválasztva alul, a függvénymegjelenít® ablakban láthatóvá válik az elem id®függvénye. A függvényt a Z+ gombbal nagyíthatjuk, a Z- gombbal kicsinyíthetjük, az 1:1-es gomb pedig a teljes látképet adja vissza. A ZM gombbal egy keretet rajzolva a kívánt területre nagyíthatunk. A Grid, Label és Legend gombok a négyzetháló, az oldalsó számok, és a jelmagyarázat kijelzését kapcsolják ki/be. Hogyha egy függvény meg van jelenítve, az ablakban mozgatva az egeret a program jobb alul kijelzi az aktuális X pozícióhoz tartozó Y értéket. Ha több funktor van kijelölve, és így több függvény is van, az alul középen található dobozzal választhatunk
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
43
közülük. Talán a leglátványosabb funkciót hagytam utoljára. Ha egy illeszked® funktorra vagy paraméterre rákattintunk jobb gombbal, három választási lehet®ségünk adódik. Use as weight, Use as color, és Unuse. A Use as weight funkció a kijelölt funktor vagy paraméter értékével logaritmikusan arányosan jeleníti meg a pontokat vagy éleket. A Use as color lehet®séget használva az elemek színe kap logaritmikus skálázást. Azt, hogy milyen skáláról válasszon a program színeket, a Node coloring és a Link coloring dobozokban lehet megadni. Single color módban minden pont narancssárga, és minden él kék, függvényértékt®l függetlenül. Heat módban a feketetest-sugárzás színskálájából választunk, a legalacsonyabb szín a fekete, a legmagasabb pedig a fehér. Rainbow módban az érték a pont színének frekvenciájával lesz logaritmukusan arányos, tehát a legalacsonyabb értékek pirosak lesznek, a legmagasabbak pedig lilák. A végtelen értékek világosszürkék, az érvénytelenek (NaN) pedig sötétszürke színnel vannak jelezve. Ha valamelyik elemtípust egyáltalán nem akarjuk látni (nagy hálózatoknál így gyorsíthatunk a kijelzésen), akkor a Hide-ot kell választani színezésnek. A program gyel arra, hogy melyik pontokon vagy éleken történik esemény, a perturbációs energia hol a legmagasabb, és ezeket rajzolja ki utoljára, így még rengeteg link esetén is látszódnak a fontosak.
5.4. ábra. A Monitor Options menüje A színek és méretek skálázása változtatható, ezek az adatok az Options menüben találhatóak (5.4. ábra). Itt el®ször ki kell választanunk, hogy melyik skálát kívánjuk módosítani: a csomópontok vagy a kapcsolatok színét. Egy lehet®ség csak akkor látható, ha van funktor vagy paraméter hozzárendelve. A helyes skálázás fontos ahhoz, hogy megfelel®en lássuk az eredményeket, ezért err®l kicsit részletesebben írok. A logaritmikus értékek 0 körül mutatják a legnagyobb változást, ezért
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
44
a skálázás középértékét (Center Value) célszer¶ úgy állítani, hogy ott legyen, ahol a változások történnek. Az Autocenter gomb az értékek négyzetes közepére állítja a középértéket. A logaritmus bázisát módosíthatjuk a Scale dobozban, nagyobb bázissal jobban elkülönülnek az értékek, de hamar szaturálódik a kijelzés. Az Autoscale gomb egy olyan skálát állít fel, amely pont a legnagyobb színt rendeli a legnagyobb értékhez. A Center Heat (középh®) azt állítja, hogy a lehetséges 786 színb®l a Center Value-hoz melyiket rendeljük. Ezzel, ha tudjuk, hogy a középértékt®l egyik irányba található értékek érdekelnek mindket jobban, javíthatjuk a felbontást. Cserébe a középérték másik oldalán hamarabb szaturálódik a rendszer. A logaritmus bázisa az éppen aktuális középh®t®l függ, ezért a Center Heat módosítása után érdemes lehet újraskálázni a rendszert. A súlyok skálája lényegesen egyszer¶bb, mert ebben egy-két pixeles eltérések is jól láthatóak. A Node basic size a csomópontok kezd®méretét állítja, a Link basic size pedig az élekét. A skálázás úgy történik, hogy az összes elemet felszorozzuk úgy, hogy a legkisebb elem értéke legyen 2, majd ezen értékeknek vesszük a kettes alapú logaritmusát. Így sok különböz® értéket meg tudunk jeleníteni. Csak a pozitív súlyú elemek láthatóhak a képerny®n, az esetleges negatív értékek nem kerülnek kirajzolásra. Így az elszakadt kapcsolatok nem rajzolódnak ki. Azt, hogy funktor esetében melyik id®pillanat színét/súlyait szeretnénk látni, azt a jobb alsó sarokban állíthatjuk be. Ha a beolvasott lépésid® nem megfelel®, vagy nem tartalmazza a le, akkor módosíthatjuk. Ezután a Current time szövegdobozba beírva a kívánt id®t, és a Set gombra kattintva az adott id®pillanatra ugorhatunk. Ugyanezt a függvényablakban is meg lehet tenni, duplakattintással arra az id®pillanatra ugrunk, amelyik felett a függvényablakban az egér épp tartózkodik. Az aktuális id®pillanatot egy piros vonal jelzi. Azt, hogy a perturbáció hogy zajlott, lmszer¶en lejátszhatjuk a Play gombbal. Ekkor a mellette található beállított sebességgel kezdi el a lejátszást, amennyiben képes ennyi képkockát megjeleníteni másodpercenként a számítógép. Ha nem, akkor a lehetséges maximális sebességgel történik a lejátszás. A Play every nth frame szövegdobozában beállíthatjuk, hogy csak minden n-edik képkockát játsszon le a gép, így gyorsabban végig tudjuk nagy hálózatok alakulásást nézni. A Pause gomb szünetelteti a lejátszást, a Stop gomb pedig leállítja.
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
45
5.4. Kiterjesztések A program tervezésében fontos szempont volt, hogy minél egyszer¶bben lehessen hozzá kiterjesztéseket, plug-ineket írni. Ha egy saját parancssoros programot szeretnénk a Turbine-hoz írni, akkor a propeller.dll használatával a hálózatok, funktorok, és a rajtuk végezhet® m¶veletek deniálásra kerülnek, csak használni kell ®ket. Ehhez pedig csak annyi a teend®, hogy a propeller.h fejlécle-t a program elejére be kell f¶zni (include). Ha új modellt szükséges készíteni, annak az a kulcsa, hogy a model.h le változtatása nélkül, a model.cpp le-ban kell megtenni a szükséges módosításokat, így a lefordított dll cserélgethet® lesz, és a setmodel programmal tudjuk használni. Ugyanígy kell eljárnuk új teacher.h készítésekor. 5.4.1.
Hálózatkezel® függvények
Hálózat betöltésére a
static network* LoadNetworkFromFile(string networkfile); függvényt használhatjuk. Paraméterként a betöltend® CNET le nevét adjuk meg. Siker esetén a hálózat memóriában található példányára vonatkozó mutatóval tér vissza, sikertelenség esetén NULL-al. Hálózatot menteni a
static int SaveNetworkToFile(string networkfile, network savenet); függvénnyel tudunk. Sikertelenség esetén a visszatérési érték negatív. A csomópontok paramétereit az nManager objektumon, a kapcsolatok paramétereit pedig az lManager objektumon keresztül állíthatjuk. Ha új kapcsolatot, vagy csomópontot veszünk fel a hálózatba, ne felejtsük el kitölteni a csomópont links mezejét és a kapcsolat v1 vagy v2 mez®it. 5.4.2.
Paraméterek kezelése
Sok elemhez rendelhet® a hálózatban paraméter. Egy elemhez többfajta paramétert is rendelhetünk, illetve egy paraméter is állhat több elemb®l, így a paraméterek alakja egy kétdimenziós vektor (vector >). Helytakarékossági illetve sebességnövelési indokokból azt, hogy melyik paraméter melyik pozícióban van,
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
46
nem a tömb részeként, hanem a tömböt deniáló osztály változójaként tároljuk, egy menedzser objektum segítségével. Az objektum parmdata változója szöveges elemek listája, méghozzá úgy, hogy a listában pontosan azon a helyen vannak az elemek, ahol a paraméterváltozóban. A szöveg a paraméter neve, így a
int GetParamPos(string paramname) függvény segítségével lekérdezhetjük, hogy egy adott paraméter melyik pozícióban van eltárolva. Ezután innen indexelhetjük a paraméter-tömböt. Negatív visszatérési érték azt jelenti, hogy ilyen nev¶ paraméter nincs a hálózatban. 5.4.3.
Funktor-kezel® függvények
A Turbine functor osztálya öt darab függvényt tartalmaz. Ezek:
static functor* LoadFunctorFromFile(string vectorfile, string funcname); static int AddFunctorToFile(functor func, string funcfile); static int SaveFunctorToFile(functor func, string funcfile); static vector<string>* GetFunctorsInFile(string functorfile); double getFuncParam(string paramname); A LoadFunctorFromFile()segítségével funktort tölthetünk be egy CDAT-ból. Mivel egy CDAT több funktort is tartalmazhat, ezért a funktor nevével kell hivatkozni a betöltend® adatra(funcname). Azt, hogy egy le-ban milyen nev¶ funktorok találhatóak, azt a GetFunctorsInFile() segítségével kérdezhetjük le. A visszatérési vektorban a le-ban található funktorok nevei vannak. Egy funktor tárolhat vizsgálati paramétereket is, az 5.1.2. fejezetben olvashatóak szerint, ezeket az adatokat lehet a getFuncParam() segítségével kinyerni. File-ba kétféleképp menthetünk. A
SaveFunctorToFile() minden esetben új le-t hoz létre, és ha van ugyanilyen nev¶ le, azt felülírja. Az AddFunctorToFile() ezzel szemben ha létezik a le, hozzáadja a funktort a végéhez, illetve, ha a le-ban már található ilyen nev¶ funktor, akkor azt lecseréli.
5. FEJEZET.
5.4.4.
A KÉSZÍTETT SEGÉDPROGRAM
47
A model objektum függvényei
A model objektum feladata gyakorlatilag a dierenciális lépés végrehajtása, azaz az egyes csomópontok és kapcsolatok state vektora és a paraméterek alapján a
newstate változók értékeinek kitöltése. A modellnek is vannak saját paraméterei, ezek érhet®ek el a modelParms objektumon és a pManager-en keresztül. Ahhoz, hogy saját modellt írhassunk, hat függvénnyel kell megismerkednünk: model(double st, network *netw); void PerStep(double t); void LinkStep(link *l, double t); void NodeStep(node *n, double t); bool AddParamfromConf(string paramname); bool hasRequiredParams(network net); Az AddParamfromConf() segítségével a modell kongurációs le-jából tölthetünk be paramétert. A kongurációs le neve ugyanaz, mint a modell neve, az alkalmazás könyvtárában található, és kiterjesztése .conf. A függvény paramétere a betöltend® paraméter neve. Siker esetén automatikusan hozzáadja a paraméterlistához, a visszatérési érték true. Ha nem sikerült, akkor pedig false. A konstruktorban történik meg a modellparaméterek beállítása, a szükséges hálózatparaméterek, állapotok vizsgálata, esetleg a kés®bb szükséges állandók kiszámítása. Ha a modell készen áll az indulásra, az lSuccess változó true -ra állításával jelzi ezt. A hasRequiredParams() megvizsgálja, hogy a kapott hálózat tartalmazza-e a szükséges paramétereket, melyeket a paraméterek nevének requiredNodeParams és
requiredLinkParams változókban történ® tárolásával adhatunk meg. Ne felejtsük el a statenames és lstatenames tömbbe beállítani a rendszer állapotait! Az indítás után az analízis minden egyes lépésében egyszer meghívódik a PerStep() függvény, valamint lépésenként minden csomópontra egyszer a NodeStep(), és minden kapcsolatra egyszer a LinkStep(). Ezen függvények feladata a hálózat newstate vektorának beállítása. 5.4.5.
A teacher objektum függvényei
A teacher objektum gyakorlatilag ugyanaz pepitában, mint a model, de a feladata más, ezért a futásidej¶ függvényei is mások. Ugyanúgy m¶ködik azonban a konstruktora, és a paraméterezése. A teacher objektum függvényeit a learn program
5. FEJEZET.
A KÉSZÍTETT SEGÉDPROGRAM
48
hívja meg, ami átadja a perturbációs analízis eredményeit, ez alapján kell elvégezni a hálózatmódosításokat a következ® függvények segítségével.
int ChangeLink(network &net, link& l, vector<double> function); int ChangeNode(network &net, node& n, vector<double> function); int finalize(network &net); A ChangeLink() minden kapcsolatra egyszer hívódik meg, úgy, hogy az eredmények közül az adott linkre vonatkozó id®függvénnyel hívjuk meg. A ChangeNode() hasonlóképpen m¶ködik a kapcsolatokra. A finalize(network &net) összesen egyszer hívódik meg, f® feladata a hálózat kitakarítása, azaz például a 0 alatti érték¶ linkek megszüntetése. Bármi más is lehet azonban itt, ami a fels® két függvénybe nem fér bele.
6. fejezet
Mérések
6.1. Beállítások Az els® dolog, amivel szembesülnünk kell, az az, hogy amint diszkrét id®ben kezdünk számolni, a dierenciálegyenletekkel stabilitási gondok lépnek fel. A kapcsolatok nem er®södhetnek minden határon túl, hiszen ha olyan nagyok az együtthatók, hogy valamelyik fehérjéb®l egy lépésben több energia folyik át másokra, mint az ® összes energiája, akkor megsértettük az energiamegmaradás törvényét. Mi több, ha ez a növekmény akkora, hogy nem disszipálódik el, miel®tt néhány más fehérjén keresztül visszacsatolódna, akkor gerjedni fog a rendszer, és az állapotváltozókat hamar a végtelenben találjuk. Úgy kell tehát beállítanunk a különböz® paramétereket, hogy a kapcsolatok er®sségei egyrészt kiindulási értékükben se okozzanak gerjedést, másrészt a várható energiaváltozásokra válaszul adott er®sségváltozással együtt is a stabilitási tartományban maradjon a rendszer. El®ször is stabilizáljuk a kiindulási állapotot. A visszacsatolások megkeresése igen kellemetlen feladat (NP-nehéz), így egyszer¶bb feltételre van szükség. Ha megvizsgáljuk az összes pont átereszt®képességét1 , és a maximális átereszt®képességgel leosztom az összes kapcsolatot, akkor (ha a lépésköz 1 másodperc, vagy kisebb) energetikailag stabil lesz a hálózat. Ez az eljárás a hálózat normalizálása. Tudjuk, hogy körülbelül 1000 iteráció az, amit a program jelenlegi verziója egy percen belül ki tud számolni, így, mivel a hangoláshoz sok futtatás kell ebben az id®tartományban már értékelhet® eredményeket kell kapjunk. A függvényeink X-tengelye ezzel méretezve van, tegyük hát az Y tengellyel is ezt. Milyen nagyságrendben legyenek az adatok? A kapcsolater®sségek szorzóként vannak jelen, így 1 Egy pont átereszt®képessége a pontot elhagyó kapcsolatok er®sségének összege.
49
6. FEJEZET.
50
MÉRÉSEK
nekik mindegy, a többi paraméter még szabadon állítható, ezért teljesen tetsz®leges a nagyságrend. Így erre a méretre is 1000-et választottam. Ez azt jelenti, hogy
Ecr , azaz a kritikus energiaszint 1000. Ha ezt túllépi egy fehérje, akkor átalakulnak a kapcsolatai, és lecsökken a szabad energiája 0-ra - így 1000-nél sokkal nagyobb adatok nem lesznek a szimulációban. Következ®nek az öregedési együtthatókat állapítsuk meg. Az egyes node-ok öregedési érzékenysége más információ híján, és az egyszer¶ség kedvéért egyforma lesz. Egy öreg szervezet fehérjéinek körülbelül 80%-a oxidált. Legyen az öregkor határa a 800. lépés körül. Az öregedési érzékenyégeket tehát úgy állítom be, hogy a 800. lépésnél az eredetileg 1 egység er®s kapcsolatok 0,2 egyég érték¶ek legyenek. Így A: Z 0, 2 = 0
innen
t
8003 t2 1 · 2A t = 2A d 3
5 · 3 · 21 A= = 1, 465 · 10−8 8003 A disszipációs állandó mértékét úgy állapítottam meg, hogy lépésenként egy nagyságrend csökkenéssel számolva is 3 lépés távolságig legyen értelmezhet® függvényalakunk, ez 3 nagyságrendet jelent, így a disszipációs állandó az 1000-es maximális értékkel számolva 1. Ez is egyforma minden csomóponton az egyszer¶ség kedvéért. Ami sokáig problémát jelentett, az a második egyenlet (4.1. fejezet) instabilitása. Ugyanis hiába igaz az, hogy a kapcsolat erejének növekedése arányos a kapcsolaton átfolyó energiamennyiséggel, az átfolyás mértékének kifejezésében benne van maga a kapcsolater®sség is (ráadásul a négyzeten), ezért a kapcsolater®sség az átfolyással köbösen növekedik, és ez a távolság szerinti exponenciális lecsengéssel együtt azt jelentette, hogy ha nem akarok gerjedést, akkor a nem perturbált pontok csak igen keveset tudnak tanulni. A gordiuszi csomó átvágását az jelentette, hogy a második rendszeregyenletben a hálózat átlagos kapcsolater®sségét használtam, a kísérletek is eszerint zajlottak. Az er®södési paraméter értékét úgy tudtam meghatározni, hogy kísérleteim alapján megállapítottam, hogy a kapcsolater®sségekben körülbelül egy nagyságrend változást még stabilan elvisel a hálózat. Ennek az értéknek a felét rendeltem a maximális ow-hoz (1000 az egyik oldalon, 0 a másikon) tartozó változáshoz. Az átlagos kapcsolater®sség 0,01 (a maximális fokszám 112, ezen linkek összértéke lett 1), tehát
6. FEJEZET.
51
MÉRÉSEK
Cs ((1000 − 0)0, 01)2 = 0, 04 innen
0, 04 = 4 · 10−7 1002 Cw -t, a gyengülési konstanst minél inkább 1 alá szükséges vinni a tanulási folyamat er®sítésének érdekében, de úgy, hogy stabil maradjon a rendszer. Néhány próbálkozás után a 0,5-0,6 körüli tartomány t¶nt megfelel®nek. Ezek után további próbálkozások során optimalizáltam a paramétereket, a végleges paramétersorozat, amivel a mérések történtek, a következ®: Cs =
Ec r
1000
A
2 · 10−8
Cs
4 · 10−5
Cw
0.5
lépésköz
1s
analízis hossza
1000s
6.2. Perturbációs kísérletek Paraméterekkel és egy stabil rendszerrel felvértezve az els® kísérletsorozatom a perturbációs modell tulajdonságait vizsgálta egyfajta validálási szempontból. Gauss típusú függvényekkel (µ = 6, σ = 1, A = 100) gerjesztettem a hálózatot, és vizsgáltam a válasz tulajdonságait. Válaszadás szempontjából háromféle elemet különböztettem meg: date-hubokat, party-hubokat és nem-hubokat, a 1.4.2 fejezetben leírt tulajdonságok szerint. A hálózathoz a Holstege-féle expressziós adatokból[13] származó élsúlyokat használtam, a hubok azonosítását az Ekman-féle lista alapján végeztem[7]. Egy él súlyát a két végén található csomópontok expressziós adatainak számtani közepeként határoztam meg, mivel az expresszió mértékével korrelál a találkozás valószín¶sége. 6.2.1.
Egyedi vizsgálat
Az els® kísérletben kiválasztottam az 5-5 legnagyobb fokszámú date-hubot, partyhubot, és az azonosítók listájában az els® 5 nem-hubot. Azért így választottam ki a nem-hubokat, mert a hálózati azonosító nem mutat semmilyen sorrendiséget, így megfelel®en véletlenszer¶, és A fehérjék adatai a F.3. függelékben találhatóak.
6. FEJEZET.
52
MÉRÉSEK
Külön-külön mind a 15 elemre egy perturbációt küldtem, majd vizsgáltam a dinamikus mér®számokat. A date-hubok és party-hubok azonosítóinak meghatározása a ModuLand segítségével történt.[18] Az eredmények a 6.1.,6.2. és a 6.3. táblázatokban láthatók.
N G TS D
1. node 222,903 66 s 40
2. node 221,262 64 s 25
3. node 221,470 64 s 71
4. node 227,913 75 s 29
5. node 227,731 74 s 10
Átlag 224,256 68,6 s 35
Szórás
3,317 5,459 s 22,814
6.1. táblázat. Nem-hubok egyedi mérési eredményei. G a maximális perturbációs érték, TS az elcsendesülési id®, D a megzavart pontok száma.
P G TS D
1. node 125,164 24 s 28
2. node 144,594 25 s 57
3. node 153,563 27 s 69
4. node 150,435 26 s 90
5. node 134,919 24 s 82
Átlag 141,735 25,2 s 65,2
Szórás
11,671 1,304 s 24,304
6.2. táblázat. Party-hubok egyedi mérési eredményei. G a maximális perturbációs érték, TS az elcsendesülési id®, D a megzavart pontok száma.
D G TS D
1. node 64,904 16 s 8
2. node 105,574 18 s 55
3. node 113,209 19 s 70
4. node 127,714 22 s 66
5. node 119,955 21 s 101
Átlag 106,271 19,2 s 60
Szórás
24,53 2,387 s 33,712
6.3. táblázat. Date-hubok egyedi mérési eredményei. G a maximális perturbációs érték, TS az elcsendesülési id®, D a megzavart pontok száma.
A mérések során kétféle jellegzetes függvényalakot lehet megkülönböztetni (6.2.1. ábra). Az egyik (csúcsosabb) azokon a pontokon látható, melyeket közvetlenül érte a perturbáció, míg a másik azokon a pontokon, melyek indirekt módon kapták a zavart. Következtetések
A 6.1, 6.2, 6.3 táblázatok alapján levonható következtetés, hogy a hubok hatékonyabban terjesztik a perturbációkat, így a rajtuk keletkez® zavar könnyebben relaxálódik a hálózatban. A date-hubok a party-huboknál nagyobb szórást mutatnak
6. FEJEZET.
53
MÉRÉSEK
(a) Direkt függvényalak
(b) Indirekt függvényalak
6.1. ábra. Perturbációs függvényalakok, direkt és indirekt.
G TS D
Nem-hubok 243,526 188 s 300
Élsúlyozott Date-hubok Party-hubok 186,723 184,440 37 s 44 s 647 602
Élsúlyozatlan Nem-hubok Date-hubok Party-hubok 243,532 179,700 195,221 191 s 34 s 46 s 287 409 423
6.4. táblázat. 20-as perturbáció mérési eredményei minden mér®számban. Ez a date-hubok modulok közötti, változatosabb helye miatt lehet így. Leggyorsabb a relaxáció a date-hubokról, majd a party-hubokról, végül pedig a nem-hubokról. Ennek az az oka, hogy a date-hub különböz® modulokra terjeszti szét az ®t ér® zavart, míg a party-hub összes kapcsolata egy modulhoz tartozik. A zavarszám fordított arányosságot mutat a relaxációs id®vel és a maximális perturbációval. 6.2.2.
Többszörös vizsgálat
Ebben a kísérletben kiválasztottam a 20-20 leger®sebb date-hubot, party-hubot illetve az els® 20 azonosítójú nem-hubot (F.3. függelék), és olyan gerjesztéseket készítettem, ahol egyszerre egy ilyen 20-as csoport minden tagját az adott Gauss-féle függvénnyel gerjesztem. Az érdekesség kedvéért élsúlyozott és élsúlyozatlan esetben is megvizsgáltam az eredményeket. Ezek a 6.4. táblázatban találhatók. A perturbációs képek (6.2. ábra) több jelenséget szépen mutatnak. Az összes képet akkor készítettem, amikor a legtöbb csomópont látható. A beállítások a diplomamunka összes további képén: node center value 0, center heat 0, scale auto. link center value 0, center heat 100, scale 1,0001. Egyértelm¶en látszik, hogy sokkal jobban terjesztik a perturbációt a hubok. Ezt abból lehet látni, hogy a 6.2(b), és a 6.2(c) ábrákon jóval több folt színez®dik ki, mint a 6.2(a) ábrán.
Figyelemre méltó, hogy a party-hubok ugyan egyenletesebben terítik szét a perturbációt (6.2. ábra, a party-huboknál a gerjesztetlen pontok színe közelebb áll a gerjesztettekéhez), azonban a date-hubok mégis hasonló id® alatt relaxálnak (6.4). Ez szintén abból ered, hogy a date-hubok intermoduláris kapcsolatokkal rendelkeznek, míg a party-hubok csak egy modulon belül tudnak terjeszteni. Érdekes meggyelés még az is, hogy a helyes élsúlyozás fordított irányban változtatta a relaxációs id®ket a date-huboknál és a party-huboknál.
6.3. Tanulás és leromlás 6.3.1.
Tanítási kísérlet
Ezután a hálózat tanulási képességeit vizsgáltam. Élsúlyozatlan hálózatot használtam, mert jobban taníthatónak bizonyult. Kétféle perturbációt készítettem, mindkett® 60 lépés periódusidej¶ Gauss-gerjesztéssorozatot használ, µ = 6, σ = 1, A = 50 paraméterekkel, 600 node-on. Azért ilyen jelet, mert ezzel a gerjesztéssel ≈ 60000 egység energiát viszünk be a rendszerbe, az pedig 60 lépés alatt (legjobb esetben)
60 · 2444 = 146640 egység energia disszipálására képes, így ha megfelel®en tudja alakítani a hálózat a kapcsolatait, akkor képes az egészet disszipálni. Az említett két perturbáció között az az apró, de lényeges különbség, hogy az els® a 0600-ig terjed® sorszámú node-okra hat, míg a másik az 10001600-ig terjed®ekre, az azonosító alapján való választás itt is megfelel® véletlenszer¶séget biztosít. A kísérlet lényege, hogy 1000 lépésen keresztül futtatom a két perturbációt, és megvizsgálom, hogy milyen saját mintázatokat alakítanak ki. Ezután ismét futtatom a két perturbációt, azonban úgy, hogy a kiindulási élsúlyok ez alkalommal mindkét függvénynél az els® perturbáció sajátmintázata. Így meggyelhet®, hogy egy egyfajta perturbációt megtanult hálózat hogyan viselkedik egy ismeretlen perturbáció hatására. Ennek a kísérletnek az eredményei láthatóak a 6.3. ábrán. Az els® két ábrán (6.3(a), 6.3(b)) a két sajátminta látható, ezen nincs semmi meglep®. A harmadik eredmény(6.3(c)) azt mutatja, hogy a tanulás a jelenlegi modellben egy lassuló folyamat, második futtatásra már nem változott az el®ször bevésett minta. A (6.3(d)). ábra által mutatott eredmény nagyon meglep®. Azt várnánk, hogy a második fajta perturbáció hatására megváltoznak a kapcsolatok, és egy, a 6.3(a) és a 6.3(b) ábra közti minta alakul ki. Ezzel szemben a hálózat nem volt képes megtanulni az új ismereteket, a változás gyakorlatilag észrevehetetlen.
6. FEJEZET.
56
MÉRÉSEK
(a) Az els® perturbáció sajátmintája
(b) A második perturbáció sajátmintája
(c) Az els® perturbáció mintája az els® saját- (d) A második perturbáció mintája az els® samintából való kiindulással
játmintából való kiindulással
6.3. ábra. A tanulási kísérlet kapcsolater®sség-mintái. Egy ilyen minta a hálózat Turbine-ban ábrázolt képének a csomópontok eltüntetésével, és a kapcsolatok élsúly szerinti h®képes színezésével áll el®.
6. FEJEZET.
MÉRÉSEK
57
Meggy®z®en mutatja az említett különbséget a 6.4 ábra, ahol a 6.3 ábrán látható két-két kép különbségét jelenítettem meg. Ugyanennek a jelenségnek a hatását láthatjuk a függvényalakokban is (6.5. ábra). A 6.5(a). ábrán látható node kezdetben nem képes a teljes kapott energiamennyiséget disszipálni, azonban a kapcsolater®sségek állításával, azaz tanulással a kés®bbi id®pillanatokban két gerjesztés közt sikeresen 0-ra tudja vinni az értékét, tehát a teljes kapott disszipálja. A 6.5(a). ábrán, ahol ez a perturbáció másodikként érkezik a hálózatba, a node már nem képes megfelel®en állítani a kapcsolater®sségeket, így egyre több energiája lesz, és végül (ez a kísérletben már nem látszik) kitekeredik. A 6.5(c), és a 6.5(d) ugyanezt mutatja be egy olyan csomóponton, ami kevésbé elszigetelt, azaz nem 2, hanem 10 a fokszáma. Itt is meggyelhet® ugyanaz a sikeres, és sikertelen tanulási folyamat, csak sokkal kevésbé látványos. Következtetések
Roppant érdekes jelenség, hogy a hálózat nem tudja a megfelel®en bevés®dött mintázatot átállítani (6.3). Oka valószín¶leg az lehet, hogy a tanult rendszer a saját er®s útvonalai er®ltetésével, szuboptimálisan vezeti el az energiát, viszont ennek hatására nem alakulnak át a megfelel® mértékben a kapcsolatok. A nagyobb fokszámú csomópontok ezzel a zavarással szemben is stabilabbnak bizonyultak, amint azt a 6.5(c) és a 6.5(d) ábrákon látjuk. 6.3.2.
Öregedés
A következ®kben elvégeztem ugyanezt a kísérletet, azonban a második futtatásra bekapcsoltam a modell t2 -es oxidációs öregedési komponensét. Mivel a tanulás id®ben lineáris, azt várom, hogy eleinte a tanulási hatás er®sebb, majd fordul a kocka, és az öregedés hatása lesz a dönt®. Ezt az elgondolást igazolja a 6.6. ábra. Amit láthatunk a 6.6. ábrán, az az, hogy a kiindulási, kissé emelked® alapállapotot hamar kompenzálja a tanulás, bár már itt is kicsit lassabb a hatás, mint az öregedés nélküli modellnél. Ezután egy rövid plateau következik a 400. képkockától a 600. képkockáig, azaz sem a perturbációs csúcsokban, sem a minimumokban nincs észlelhet® változás. Itt van a tanulás és az öregedés éppen egyensúlyban. Végül elkezdenek szétszakadni a kapcsolatok, hirtelen teljesen gátolt lesz a relaxáció, és a node energiája rohamosan elkezd emelkedni. A függvényalakok vizsgálatával (6.7. ábra) azt is észrevehetjük, hogy az új perturbációt fogadó hálózat hamarabb elöregszik, hamarabb belép abba a tartományba,
6. FEJEZET.
58
MÉRÉSEK
(a) A két egyedi perturbáció által kialakított (b) Az els® minta és az els® perturbáció kétszeri minta különbsége
futtatásával kapott minta különbsége
(c) Az els® minta és a két különféle perturbáció (d) Az els® perturbáció kétszeri futtatásával kafuttatásával kapott minta különbsége
pott minta és a két különféle perturbáció futtatásával kapott minta különbsége
(e) A második perturbáció futtatásával kialakított minta és a két különféle perturbáció futtatásával kapott minta különbsége
6.4. ábra. A tanulási kísérlet kapcsolater®sség-mintáinak különbségi képei. Ezek a képek a 6.3. ábra képeinek felhasználásával, Adobe Photoshop CS3 segítségével készültek. A képeket egymásra helyeztem, majd a rétegek keverésének módját Dierence-re állítottam. Minél sötétebb egy rész, annál nagyobb az egyezés.
6.6. ábra. Öreged® hálózat egy pontjának függvénye (1-es számú perturbáció, alapállapotból indulva, node 0)
(a) Node 0 (az els® gerjesztési csoport része) öre- (b) Node 1300 (a második gerjesztési csoport régedése.
sze) öregedése.
6.7. ábra. Tanulási-öregedési függvényalakok.
6. FEJEZET.
60
MÉRÉSEK
ahol gyakorlatilag már nincs disszipáció(6.7(b)). Alaposabb meggyeléssel pedig az is felt¶nik, hogy ugyanennek a node-nak az energiája lassabban növekedik a végs® tartományban, mint a csak egyféle perturbációt látott rendszer ábrázolt node-ja (6.7(a)). Ez persze nem feltétlenül jelent bármit is, mert különböz® node-ok, de a felmerült sejtést a sajátminták vizsgálata igazolni látszik a 6.8. ábra szerint.
(a) Egyfajta perturbáció, 676. lépés
(b) Egyfajta perturbáció, 840. lépés
(c) Kétfajta perturbáció, 676. lépés
(d) Kétfajta perturbáció, 840. lépés
6.8. ábra. Hálózatszakadás különféle tanulási modellek esetén. Azt vehetjük észre az ábrákon, hogy bár a 676. lépésben a különböz® perturbációkat kapott hálózat már lényegesen rosszabbul néz ki, a csak egyféle perturbációt kapott hálózat a 810. lépés körül nagyon gyorsan elkezd kiégni, és a 840. lépésre már egyértelm¶en fordul a kocka, és a különböz® perturbációkat kapott hálózat bír több él® kapcsolattal. Következtetések
A modellben ábrázolt öregedés igazolni látszik Kiss és mtsai. cikkjében[16] megfogalmazott állítás egyik irányát, azaz a kapcsolatok tartós romlása addig kerülhet® el, amíg a tanulási folyamat er®sebben hat az öregedési folyamatnál (6.6). Az állítás másik irányának igazolásához (azaz, hogy a túlzott tanulás szintén hálózatgyengít® hatással bír) a kés®bbiekben másfajta kísérletek szükségesek. Az öregedés oxidációs formája a használt hálózatban, az adott kétféle gerjesztéssel a 800. lépés körül a legtöbb kapcsolat kiégését okozza (6.7, és 6.8. ábra). A folyamat kezdetét és
6. FEJEZET.
MÉRÉSEK
61
alakulását azonban a hálózat tanultsági állapota befolyásolni látszik. Többfajta perturbáció hatására korai, lassú öregedés jön létre, míg a csak egyfajta perturbációt ismer® hálózat hosszú ideig kitart, de utána hirtelen gyors öregedést mutat. Ez azt jelenti, hogy ha sokféle módon tesz tönkre az élet egy rendszert, akkor hamarabb elhasználódik, de tovább él, míg ha kevesebb fajta stresszt él át, akkor ugyan tovább marad atal, de végül hamarabb hal meg.
Összefoglalás
Diplomamunkámban két, egymástól távolinak t¶n® területet, az elméleti biológiai kutatást és a villamosmérnöki gondolkodásmódot próbáltam házasítani. Ez a határmezsgye jelen esetben a hálózatkutatás világa volt. A hálózatok képességeinek bemutatása után arról írtam, hogy ezt hogyan tudjuk a biológiában hasznosítani. Megvizsgáltam egy olyan ötletet, amely közel áll a mérnöki gondolkodáshoz, és sok új összefüggés felderítésével kecsegtet. Ez a perturbációs elemzés. A perturbációs elemzés ötletéb®l kiindulva készítettem egy programot, mely cserélhet® modellekkel képes egyrészt többváltozós, több forrású perturbációs elemzést végezni, másrészt az ehhez tartozó változásokat is tudja generálni. A programot Turbine-nak neveztem el. Bemutattam két lehetséges modellt, majd az egyiket szimulációs szintre kidolgoztam. A kész modell és program segítségével alapvet® perturbációs, majd tanulási-öregedési kísérleteket végeztem. A modell segítségével megállapítottam, hogy a hubok relaxációja egyértelm¶en jobb, mint az egyszer¶ elemeké, és valószín¶leg a hubok fajtája, inter-, vagy intramoduláris helyzete is módosítja a relaxáció tulajdonságait. Végeztem egy tanulási kísérletet, ahol arra a következtetésre jutottam, hogy a kapcsolatok er®sségét megfelel® er®séggel bevés® hálózat már alig-alig tud új perturbációhoz alkalmazkodni. Végül pedig egy öregedési kísérlet segítségével megállapítottam, hogy a többféle perturbációt átélt hálózat hamarabb elhasználódik, de végül mégis tovább marad m¶köd®képes, mint egy csak egyféle perturbációt átélt hálózat.
62
Köszönetnyilvánítás
Dolgozatom végén szeretnék köszönetet mondani azoknak az embereknek, akik nélkül ez a munka nem készülhetett volna el:
• Csermely Péternek, konzulensemnek tanácsaiért, bátorításáért, a temérdek hibajavításért, és a megfelel® id®ben írt érdekl®d® levelekért :) • Mihalik Ágostonnak a hálózat élsúlyainak elkészítéséért • Barkóczi Bíborkának a diplomamunka orvosi átnézéséért, és a fogalmazásmód foltozgatásáért • Vízer Dánielnek a diplomamunka mérnöki átnézéséért, és a fogalmazásmód foltozgatásáért • Simkó Gábornak a LINK-Group bemutatásáért • és a többi LINK-nek a rengeteg ötletért. (www.linkgroup.hu)
63
Irodalomjegyzék
[1] M. A. Antal Cs. Böde P. Csermely: Perturbation waves in proteins and protein networks: Applications of percolation and game theories in signaling and drug design. 10. évf. (2009), Current Protein and Peptide Science, 161172. p. [2] A.-L. Barabási: Behálózva. 2003, Helikon, Budapest. [3] J.D. Congdon R.D. Nagle O.M. Kinney R.C. van Loben Sels: Hypotheses of aging in a long-lived vertebrate, blanding's turtle (emydoidea blandingii). 36. évf. (2001), Experimental Gerontology, 813827. p. [4] P. Csermely: A rejtett hálózatok ereje. 2005, Vince Kiadó, Budapest. [5] L. Cyckowski P. Grobstein: Ant colonies: Social organization without a director? http://serendip.brynmawr.edu/complexity/models/antcolonies/, 2006. július. [6] A. D. de Grey B. N. Ames J. K. Andersen A. Bartke J. Campisi C. B. Heward R. J. McCarter G. Stock: Time to talk sens: critiquing the immutability of human aging. 959. évf. (2002), Annals of the New York Academy of
Sciences, 452462. p. [7] D. Ekman S. Light A. K. Bjorklund A Elofsson: What properties characterize the hub proteins of the protein-protein interaction network of saccharomyces cerevisiae? 4. évf. (2006) 7. sz., Genome Biology. [8] L.C. Freeman: A set of measures of centrality based on betweenness. 1977. 40. sz., Sociometry, 3541. p. [9] J. Gleick: Chaos. Making a New Science. 1988, Penguin Books, London. [10] L. Hamill N. Gilbert: Social circles: A simple structure for agent-based social network models. 12. évf. (2009) 2. sz., Journal of Articial Societies and Social
Simulation, 3. p. 64
65
IRODALOMJEGYZÉK
[11] J.-D.J.
Han N.
Bertin T.
Hao D.S.
Goldberg G.F.
Berriz L.V.
Zhang D. Dupuy A.J.M. Walhout M.E. Cusick F.P. Roth M. Vidal: Evidence for dynamically organized mobility in the yeast protein-protein interaction network. 430. évf. (2004), Nature, 8893. p. [12] D.O. Hebb: The organization of behavior. 1949, Wiley, New York. [13] F.C. Holstege E.G. Jennings J.J. Wyrick T.I. Lee C.J. Hengartner M.R. Green T.R. Golub E.S. Lander R.A. Young: Dissecting the regulatory circuitry of a eukaryotic genome. 95. évf. (1998), Cell, 717728. p. [14] T. Ito T. Chiba R. Ozawa M. Yoshida M. Hattori Y. Sakaki: A comprehensive two-hybrid analysis to explore the yeast protein interactome. 98(8). évf. (2001. április), Proceedings of the National Academy of Sciences of the United
States of America, 45694574. p. [15] C. Kingsford S. Navakhla G. Marcais: Better network modules: New tools for protein network analysis. http://www.cbcb.umd.edu/research/bionet/. [16] H. J. M. Kiss Á. Mihalik T. Nánási B. Ory Z. Spiró Cs. Soti P. Csermely: Ageing as a price of cooperation and complexity. 31. évf. (2009) 6. sz.,
BioEssays, 651664. p. [17] T.
Korcsmáros I.
J.
Farkas M.
S.
Szalay P.
Rovó D.
Faze-
kas Z. Spiró C. Böde K. Lenti T. Vellai P. Csermely: Uniformly curated signaling pathways reveal tissue-specic cross-talks, novel pathway components, and drug target candidates. URL http://signalink.org/. [18] A. I. Kovacs R. Palotai M. S. Szalay P. Csermely: Community landscapes: an integrative approach to determine overlapping network module hierarchy, identify key nodes and predict network dynamics. 2009., arXiv:0912.0161v2. [19] J. Lehár A.S. Krueger W. Avery A.M. Heilbut L.M. Johansen E.R. Price R.J. Rickles G.F.III Short J.E. Staunton X. Jin M.S. Lee G.R. Zimmermann A.A. Borisy: Synergistic drug combinations tend to improve therapeutically relevant selectivity. 27. évf. (2009), Nature Biotechnology, 659 666. p. [20] G.H. Lewes: Problems of Life and Mind (First Series). 1875, London:Trübner. [21] J. Lovelock: Gaia: A New Look at Life on Earth. 2000, Oxford University Press.
IRODALOMJEGYZÉK
66
[22] D. E. Martínez: Mortality patterns suggest lack of senescence in hydra. 33. évf. (1998) 3. sz., Experimental Gerontology, 217225. p. [23] Santo fortunato (research). http://sites.google.com/site/santofortunato/research, 2010. január. [24] M.A. Paradiso M.F. Bear B.W. Connors: The organization of behavior. 1949, Lippincott Williams & Wilkins, Hagerstwon, MD. [25] M. Scheer J. Bascompte W. A. Brock V. Brovkin S. R. Carpenter V. Dakos H. Held H. E. van Nes M. Rietkerk G. Sugihara: Earlywarning signals for critical transitions. 461. évf. (2009), Nature, 5359. p. [26] B. Szilágyi Z. Benyó F. Juhász L. Kovács: Folyamatszabályozás. Folyamatszabályozás. 2007. [27] D.J. Watts S. Strogatz: Collective dynamics of 'small-world' networks. 393. évf. (1998), Nature, 440442. p. [28] D. Wienert: Age-dependent changes of the circadian system. 17. évf. (2000) 3. sz., Chronobiology International, 261283. p.
Függelék
67
FÜGGELÉK
68
F.1. A CNET le-formátum • 4 byte le-azonosító (CNET) • 4 byte verzió-azonosító (v1.2) • 3 byte aláírás ('U,FF,BS'). Ez a három karakter a 85-ös, a 12-es és a 8-as kódú karakter, amit azért tudok könnyen megjegyezni, mert a születési dátumom. :) • 1 byte hálózat nevének hoszza • n byte hálózat neve • 1 byte hálózat típusnevének hossza • n byte hálózat típusneve • 4 byte csomópontok száma • 4 byte kapcsolatok száma • 1 byte csomóponti paraméterek száma • 1 byte kapcsolatparaméterek száma • minden csomópontparaméterhez • 1 byte paraméternév-hossz • n byte paraméternév • minden kapcsolatparaméterhez • 1 byte paraméternév-hossz • n byte paraméternév • minden csomóponthoz • 1 byte névméret • n byte név • 8 byte X-koordináta
FÜGGELÉK
• 8 byte Y-koordináta • minden csomópontparaméterhez • 4 byte paramétervektor-hossz • n*8 byte paramétervektor • minden kapcsolathoz • 1 byte névméret • n byte név • 4 byte kezd®pont-azonosító • 4 byte végpont-azonosító • 1 byte irányítottságjelz® • minden kapcsolatparaméterhez • 4 byte paramétervektor-hossz • n*8 byte paramétervektor
69
FÜGGELÉK
70
F.2. A CDAT le-formátum • 4 byte le-azonosító (CDAT) • 4 byte verzió-azonosító (v1.0) • 3 byte aláírás ('X,TAB,SUB'). Ez a három karakter a 88as, a 11-es és a 26-as kódú karakter, amit pedig azért tudok könnyen megjegyezni, mert az öcsém születési dátuma. :) • 1 byte le-ban tárolt funktorok száma. • minden funktorhoz • 1 byte funktor nevének hossza • n byte funktor neve • 1 byte leírás hossza • n byte leírás • 1 byte periodikusságjelz® • 1 byte típus • 4 byte szélesség • 4 byte hosszúság • szélesség*hossz¶ság*8 byte függvényadatok
71
FÜGGELÉK
F.3. A kísérletekben használt fehérjék A hub-fehérjék azonosítása az Ekman-cikkben megadott adatok [7] alapján történt. Az egyedi kísérletekben minden listából az els® 5 elemet használtam. A sorszám az interaktomban az adott fehérje sorszáma, 0-tól számozva. A fokszám a szomszédok száma az interaktomban, az átereszt®képesség pedig a pontból kifutó élek összélsúlya. Az említett cikk 8-as fokszámtól felfele számított egy fehérjét hubnak, ezért van a nem-hubok listájában minden fehérjének 8 alatti fokszáma. Sorszám a hálózatban 61 351 400 123 44 382 295 46 366 137 319 523 172 395 7 402 53 129 35 331