Reactome pathway analysis: nagy teljesítményű memória megközelítés
a kényelmes adatstruktúra azonosítása egy adott probléma megoldására az egyik fő tényező a nagy teljesítményű végtermék eléréséhez. Ahogy Skiena elmagyarázza , a rossz adatstruktúra kiválasztása a munkához katasztrofális lehet a teljesítmény szempontjából, de a legjobb adatstruktúra azonosítása általában nem olyan kritikus, mert több olyan választás is lehet, amelyek hasonlóan teljesítenek.
a divide and conquer szabály alapján az első lépés az elemzési probléma különböző részproblémákra bontása, amely elég egyszerű ahhoz, hogy polinom időben megoldható legyen egy kényelmes adatstruktúra azonosításával. Itt az elemzési algoritmus négy részre osztható: (1) annak ellenőrzése, hogy a felhasználó fehérje/kémiai azonosítói jelen vannak-e a Reaktomban, (2) a jelenlegi azonosítók esetében, annak megállapítása, hogy ezek komplexek és/vagy halmazok részei-e, valamint a fajprojekció, (3) a talált azonosítók összesítése azokban az útvonalakban (és szuper-útvonalakban), ahol ezek jelen vannak, és végül (4) statisztikai vizsgálat elvégzése annak kiszámításához, hogy a mintaazonosítók és a talált útvonal közötti összefüggés véletlenszerű véletlennek köszönhető-e.
tovább ebben a szakaszban az egyes részeket részletesen tárgyaljuk annak sajátosságainak meghatározása érdekében; feltárni a kiválasztott adatstruktúrát és a fejlesztéshez alkalmazott mechanizmusokat; és megmutatni, hogyan lehet az egyes lépéseket összekapcsolni a következővel, hogy előálljon a végső továbbfejlesztett elemzési algoritmus. Az optimalizálás másik hangsúlyos pontja az egyes lépések memóriahasználata lesz, így a kitöltött adatstruktúrák a memóriában tarthatók, hogy javítsák a tetején megvalósított adatáthaladó algoritmusok teljesítményét.
felhasználói minta azonosítók keresés a Reaktomban
jegyzetekkel ellátott fizikai entitások (PE) a Reaktomban lehetnek egyedi entitások vagy komplexek. Az egyes entitások közé tartoznak a fehérjék, kis molekulák, RNS, DNS, szénhidrátok vagy lipidek, míg a komplexek az egyes entitások bármelyikének kombinációjából vagy az egyes entitásokból szintetizált polimerekből állnak. E két fő kategórián kívül azonban a Reactome kurátorai csoportosíthatják a kapcsolódó entitásokat halmazokba. Az ÁFSz-ek azok az építőelemek, amelyeket később bemenetként, kimenetként, katalizátorként vagy szabályozóként használnak a reakciókban.
az azonosítókat vagy a csatlakozási számokat arra használják, hogy egyértelműen egyetlen entitásra utaljanak, de az ÁFSz-eknek különböző helyeik vannak a fő azonosító, másodlagos azonosító, kereszthivatkozások, szinonimák és egyéb azonosítók tárolására. A fő azonosító helyet mindig manuálisan kommentálják azok a szakértők, akik az adatokat a Reactome-ban kurálják (kurátorok), a többi helyet pedig manuálisan tölthetik ki a kuráció során, vagy automatikusan kitölthetik a kiadási folyamat során. Ez a stratégia lehetővé teszi az azonosítók tárolását az erőforrások széles skálájához: UniProt, ChEBI, Ensembl, miRBase, GenBank/EMBL/DDBJ, RefPep, RefSeq, EntrezGene, OMIM, InterPro, Affymetrix, Agilent, KEGG Compound, Illumina stb.
ezért az elemzés első részében a fő követelmény annak megállapítása, hogy a felhasználói mintában szereplő egyes azonosítók megfelelnek-e egy vagy több PE-nek a Reactome-ban. Az azonosító akkor felel meg a PE-nek, ha megegyezik a fent említett különböző résekben tárolt azonosítók bármelyikével. Valójában a probléma megoldásának legjobb módja a fordított megközelítés követése; keresési táblázat létrehozása az összes megfelelő PE-vel minden egyes azonosítónként, amelyre a Reactome hivatkozik. Ennek következtében egy másik fontos követelmény a memóriahasználat minimalizálása, hogy az adatok a memóriában tárolhatók legyenek a lekérdezési idő javítása érdekében.
a jó adatstruktúra kiválasztását ezután a követelmények határozzák meg mind a gyors keresési táblázat megvalósításához, mind a memóriahasználat alacsony szinten tartásához. A Trie egy rendezett fa adatstruktúra, amelyet dinamikus halmaz vagy asszociatív tömb tárolására használnak, ahol a kulcsok általában húrok . A radix fa egy térre optimalizált Trie adatstruktúra, ahol minden csomópont csak egy gyermekkel egyesül a szülőjével .
egyrészt egy radix fa viszonylag alacsony memóriahasználattal rendelkezik a keresési táblához, mert a közös előtagok megosztottak, elkerülve az adatok duplikációját (ábra. 1). Másrészt az egyenlőség keresőkulcsának az adatstruktúrából származó kulccsal való összehasonlításának költsége domináns költség lehet, amelyet nem lehet elhanyagolni. A radix tree string keresési algoritmus megfelel az elemzési algoritmus eredeti céljának, mivel a fa csomópontokon történő iterálás az azonosító keresési idejét az egyes azonosítók hosszára és létezésére korlátozza a Reactome célkészletben. Ennek következtében abban az esetben, ha a keresett azonosító nem szerepel az adatstruktúrában, nincs szükség az egész elolvasására, mint a kivonatolási módszereknél, ahol a húr hash értékét minden esetben teljes egészében ki kell számítani.