the maximum clique enumeration problem: algorithms, applications, and implementations

Using the seminal maximal clique enumeration algorithm due to Bron and Kerbosch as a benchmark, we designed, implemented, and extensively tested three algorithmic improvements, The last based on observations about the nature of graphs produced by transkriptomic data. Yhdessä kuvataan näitä parannuksia, me kuvataan olemassa oleva työkalu löytää yhden suurimman clique, perustuu teorian kiinteän parametrin jäljitettävyys (FPT) . Tällainen työkalu on välttämätön kaikille kolmelle parannukselle, koska kaksi ensimmäistä luottaa suurimman clique-koon tietämykseen, ja viimeinen käyttää maximum clique-löytötyökalua aliohjelmana. Kaikki koodit on kirjoitettu C / C++ – kielellä ja käännetty Linuxille. Testaukseen käytämme 100 graafia, jotka on johdettu 25 eri datasetistä, jotka ovat julkisesti saatavilla GEO: ssa. Keskitymme transkriptomiseen dataan, koska se on runsasta, ja vältämme synteettistä dataa, koska olemme oppineet kauan sitten, että tehokkailla algoritmeilla on vain vähän merkitystä toiselle. (Patologinen matchings totesi varten huippupiste kansi voidaan laajentaa clique, mutta samoin nekin ovat tietenkin erittäin merkityksettömiä todellisia tietoja.) Pyrkiessämme parantamaan suorituskykyä, tutkimme transkriptomisten kuvaajien rakennetta ja tutkimme maksimaalisten clique-peitteiden ja olennaisten vertex-sarjojen käsitettä. Itse asiassa havaitsemme, että oikealla esikäsittelyllä pystymme räätälöimään algoritmeja sellaisten tietojen mukaan, joita rutiininomaisesti kohtaamme, ja että voimme nyt ratkaista aiemmin mahdottomina pidettyjä tapauksia.

algoritmit

seuraavissa jaksoissa kuvataan jokainen toteuttamamme ja testaamamme MCE-algoritmit. Ensimmäinen on algoritmi Bron ja Kerbosch, jota kutsumme perus Backtracking ja käyttää vertailukohtana. Koska kaikki myöhemmät parannukset hyödyntävät algoritmia, joka löytää yhden maksimiklikan, Seuraavaksi kuvataan olemassa olevaa työkalua, nimeltään Maximum Clique Finder (MCF), joka tekee juuri niin. Me seuraavaksi muokata perus Backtracking algoritmi hyödyntää sitä, että haluamme vain löytää suurin kuppikuntia ja voi nopeasti laskea suurin kuppikuntien koko. Kutsumme tätä lähestymistapaa älykkääksi Takaisinvedoksi, koska se palaa aktiivisesti etuajassa oksilta, jotka eivät johda maksimaaliseen kuppikuntaan. Me sitten muokata MCF itse luetella kaikki maximum clique, lähestymistapa kutsumme Parametrisoitu Maximum Clique, tai Parametrisoitu MC. Tämä on tavallaan jälleen yksi taka-askel, joka menee vielä pidemmälle sen tosiasian hyödyntämiseksi, että haluamme löytää vain maksimaalisia kuppikuntia. Lopuksi, joka perustuu havaintoihin biologisten kuvaajien ominaisuuksista, otamme käyttöön käsitteet suurin klikki kattaa ja olennaiset huippupiste asetetaan, ja soveltaa niitä merkittävästi parantamaan ajonaikaa taaksepäin algoritmeja.

basic backtracking

seminal maximal clique-julkaisu kuvaa kahta algoritmia. Yksityiskohtainen esitys toisesta, joka on parannettu versio ensimmäisestä, annetaan. Se on tämä toinen, tehokkaampi menetelmä, jonka toteutamme ja testaamme. Viittaamme siihen tässä peruslähtökohtana. Kaikki maksimaaliset kuppikunnat on luetteloitu syvyyshakupuun läpikäymisellä. Ensisijaiset Tietorakenteet käytetään kolme maailmanlaajuista sarjaa vertices: COMPSUB, ehdokkaat ja ei. COMPSUB sisältää nykyisen klikin kärkipisteet, ja se on aluksi tyhjä. Ehdokkaat sisältää tutkimaton vertices, joka voi laajentaa nykyisen clique, ja aluksi sisältää kaikki vertices, kuvaaja. Ei sisällä tutkittu vertices, joka ei voi laajentaa nykyistä clique, ja on aluksi tyhjä. Jokainen rekursiivinen puhelu suorittaa kolme vaihetta:

  • valitse Vertex v ehdokkaissa ja siirrä se COMPSUB.

  • Poista kaikki vertices ei vieressä v molemmista ehdokkaista ja ei. Tässä vaiheessa, jos molemmat ehdokkaat ja ei ovat tyhjiä, niin COMPSUB on maksimaalinen klikki. Jos näin on, output COMPSUB kuin maximal cique ja jatkaa seuraavaan vaiheeseen. Jos ei, niin rekursiivisesti soittaa edelliseen vaiheeseen.

  • siirrä V compsubista NOT.

huomaa, että NOT käytetään pitämään tuottamasta päällekkäisiä maximal kuppikuntia. Hakupuu voidaan karsia päättämällä haara aikaisin, jos jotkut huippupiste ei ole kytketty kaikkiin vertices ehdokkaita.

kärkipisteet valitaan siten, että karsinta tapahtuu mahdollisimman pian. Jätämme yksityiskohdat pois, koska ne eivät liity algoritmin muutoksiin.

Peruskartoituksen säilytysvaatimukset ovat suhteellisen vaatimattomat. Mitään tietoja aiemmista maksimiklikeistä ei tarvitse säilyttää. Testaamissamme parannuksissa keskitymme nopeuteen, mutta myös muistin käytön parantamiseen. Tällaiset rajoitukset eivät siis missään tapauksessa ole esteenä millekään testatuille menetelmillemme. Joissakin ympäristöissä muistin hyödyntäminen voi kuitenkin olla äärimmäistä. Viittaamme kiinnostuneeseen lukijaan .

Peruslähtökohtainen toteutus toimii alustavana vertailukohtana, jota voimme nyt yrittää parantaa.

yhden maksimiklikin löytäminen

käytämme termiä Maximum Clique Finder (MCF) tarkoittamaan ohjelmistoa, jonka olemme toteuttaneet ja jalostaneet suurimman kokoluokan löytämiseen . MCF käyttää sarjaa esikäsittelysääntöjä sekä haarautumisstrategiaa, joka heijastaa tunnettua FPT-lähestymistapaa vertex coveriin . Se vetoaa ensin yksinkertaiseen ahneeseen heuristiin löytääkseen kohtuullisen suuren kuppikunnan nopeasti. Tätä kuppikuntaa käytetään sitten esikäsittelyyn, koska se asettaa alarajan suurimmalle kuppikunnalle. The heuristic toimii valitsemalla korkeimman asteen huippupiste, v, sitten valitsemalla korkeimman asteen naapuri v. Nämä kaksi vertices muodostavat alkuperäisen clique C, joka on sitten iteratiivisesti laajennettu valitsemalla korkeimman asteen huippupiste vieressä kaikki C. kunkin iteraation, kaikki huippupiste ei vieressä kaikki C on poistettu. Prosessi jatkuu, kunnes ei enää vertices olemassa ulkopuolella C. Koska |C |on pienempi raja on suurin clique koko, kaikki vertices kanssa aste alle| C – 1 / voidaan pysyvästi poistaa alkuperäisestä kuvaajasta. Seuraavaksi kaikki vertices kanssa aste n-1 poistetaan väliaikaisesti kuvaajan, mutta säilytetään luettelossa, koska ne on osa mitään maksimi clique. MCF hyödyntää uudenlainen väri esikäsittely, käytetään aiemmin ohjaamaan haarautumisen. Tämä esikäsittelymuoto pyrkii vähentämään kuvaajaa seuraavasti. Koska tunnettu alaraja k koko enintään clique, kunkin huippupiste v sovellamme nopeasti ahne väritys v ja sen naapurit. Jos nämä vertices voidaan värillinen vähemmän kuin k värejä, niin v ei voi olla osa enintään clique ja on poistettu kuvaajasta. Kun kuvaaja on näin vähennetty, MCF käyttää standardi rekursiivinen haaroitus, vertices, jossa jokainen haara olettaa, että huippupiste joko on tai ei ole suurin clique.

älykäs takaisinkytkentä

ottaen huomioon suhteellisen tehokkuuden, jolla voimme löytää yhden maksimiklikin, vaikuttaa loogiselta harkita, voiko kyseisen klikin koon tuntemisesta olla apua kaikkien maksimiklikkien luetteloinnissa. Kuten on käynyt ilmi, suurimman klikin koon k tuntemus johtaa pieneen, suoraviivaiseen muutokseen Peruslukualgoritmissa. Erityisesti kunkin solmun hakupuun tarkistamme, jos on vähemmän kuin k vertices unionin COMPSUB ja ehdokkaita. Jos näin on, oksa ei voi johtaa K-kokoiseen kuppikuntaan, joten palaamme takaisin. KS. Kuva 2. Vaikka muutos voi vaikuttaa vähäiseltä, tuloksena oleva hakupuun karsiminen voi johtaa hakuavaruuden huomattavaan pienenemiseen. Tämän lisäksi pieni muutos haarautumiseen, käytämme väri esikäsittely kuten aiemmin on kuvattu vähentää kuvaajan ennen sen lähettämistä parannetun backtracking algoritmi. Värien esikäsittely yhdistettynä pieneen haarautumismuutokseen, jota kutsumme älykkääksi Takaisinkierrätykseksi.

kuva 2
kuva2

älykäs peräänajo. Pieni muutos Bron-Kerbosch-algoritmiin käyttää precomputed maximum clique-kokoa trimmatakseen rekursiopuun. Syöttökäyrää on tyypillisesti pienennetty värien esikäsittelyllä. % endfigure.

Parametrisoitu luettelointi

ottaen huomioon, että MCF käyttää vertex-haarautumisstrategiaa, tutkimme, voitaisiinko sitä muokata luetteloimaan ei vain yhtä, vaan kaikkia maksimiklikkejä. On käynyt ilmi, että MCF, myös, sopii suoraviivainen muutos, joka johtaa luettelointi kaikki maksimi kuppikuntia. Muutos on yksinkertaisesti ylläpitää maailmanlaajuista listaa kaikista kuppikunnista, joiden koko on suurin tähän mennessä löydetty. Aina kun suurempi maksimi clique löytyy, lista huuhdellaan ja päivitetään sisältämään vain uusi maksimi clique. Kun hakutila on käytetty loppuun, maksimiklikkien lista on lähtö.

on kuitenkin pidettävä erityistä huolta siitä, että tietyt välilevyjen aikana käytetyt esikäsittelysäännöt eivät ole enää voimassa. Ajatellaanpa esimerkiksi lehtiverteen poistamista. Clique analogi on löytää huippupiste aste n – 2 ja poistaa sen yksinäinen ei-naapuri. Tässä säännössä oletetaan selvästi, että halutaan vain yksi maksimiklikki, koska siinä jätetään huomiotta kaikki klikit, jotka riippuvat hylätystä huippupisteestä. Sen vuoksi tämä esikäsittelysääntö on jätettävä pois haarautumisen alettua.

Maksimiklikki kattaa

jos pidämme MCF: ää Black box-alirutiinina, jota voidaan kutsua toistuvasti, sitä voidaan käyttää yksinkertaisessa ahneessa algoritmissa disjoint maximum cliquesin maksimijoukon laskemiseen. Me vain laskea maksimi clique, poistaa sen kuvaajasta, ja iterate kunnes koko enintään clique pienenee. Tutkiaksemme tällaisen joukon laskemisen etuja, otamme käyttöön seuraavan käsitteen:

määritelmä 1 g = (V, E) maksimiklikki kansi on joukko V’ ⊆ V, jonka ominaisuus on, että jokainen g: n maksimiklikki sisältää jonkin huippupisteen kannessa.

suurimman joukon disjoint maximum cliques sisältämien kaikkien kärkipisteiden unioni on tietenkin maksimiklikki cover (vastedes MCC), koska kaikkien maksimiklikkien on oltava päällekkäisiä tällaisen joukon kanssa. Tämä johtaa hyödylliseen pelkistysalgoritmiin. Kaikki huippupiste ei vieressä vähintään yksi jäsen, MCC ei voi olla enintään clique, ja voidaan siten poistaa.

käytännössä havaitsemme, että MCC: n soveltaminen ennen aikaisempia takaisinvetoalgoritmeja tuottaa vain marginaalisen parannuksen. MCC: n käsite johtaa kuitenkin paljon tehokkaampaan lähestymistapaan, joka perustuu yksittäisiin verticeihin. Koska MCC: n tekemät parannukset sisältyvät seuraavaan lähestymistapaan, emme testaa MCC: tä itse.

Essential vertex set

tutkimuksemme MCC-algoritmista paljasti, että se ei tyypillisesti pienennä kuvaajan kokoa enempää kuin MCF: ään jo sisällytetyt esikäsittelysäännöt. Esimerkiksi MCF jo nopeasti löytää alemman raja on suurin clique koko ja poistaa kaikki huippupiste aste pienempi kuin tämä sidottu. Kun lähempää tarkastelua kuitenkin huomasimme, että 74 75 kaaviot, että me alun perin testattu konferenssin versio tämän paperin, vain yksi clique oli tarpeen, MCC. Toisin sanoen yksi maksimiklikki kattoi kaikki muut maksimiklikit. Ja nykyisellä 100 graafin testialustallamme, joka tapauksessa yksi maksimiklikki riittää MCC: lle. Itse asiassa tämä vastaa läheisesti kokemustamme, jossa näemme tyypillisesti suurta päällekkäisyyttä suurten kuppikuntien kesken transkriptomisissa kuvaajissa, joita kohtaamme säännöllisesti. Tämän havainnon perusteella tarkennamme nyt MCC: n käsitettä. Sen sijaan, että kattaa enintään kuppikuntia kanssa kuppikuntia, me kattaa enintään kuppikuntia yksittäisten vertices.

määrittelemme olennaisen kärkipisteen sellaiseksi, joka sisältyy jokaiseen maksimiklikkiin. Tietenkin on mahdollista, että tietyn kaavion ei ole tällaista huippupiste, vaikka se sisältää monia päällekkäisiä suurin kuppikuntia. Mutta suurten transkriptomisten kuvaajien empiirinen testaus osoittaa, että ylivoimainen määrä sisältää lukuisia olennaisia kärkipisteitä. Ja kuvaajan pienentämiseksi yksikin riittää. Olennainen huippupiste on mahdollista olla erittäin hyödyllinen, koska sen avulla voimme poistaa kaikki sen ei-naapurit. Käytämme seuraavaa havaintoa: mille tahansa kuvaajalle G, ω(G) >ω(G/v), Jos ja vain jos v kattaa kaikki maksimiklikit, missä ω (G) on G: n suurin klikki.

määrittelemme olennaisen joukon kaikkien olennaisten kärkipisteiden joukoksi. The Essential Set (ES) algoritmi, kuten on kuvattu kuvassa 3, löytää kaikki olennaiset vertices on kuvaaja. Se sitten vähentää kuvaajan poistamalla, kunkin olennaisen huippupiste, kaikki ei-naapurit, että huippupiste. ES-algoritmi voidaan suorittaa yhdessä minkä tahansa taaksepäin vievän MCE-algoritmin kanssa tai itse asiassa ennen mitään MCE: tä jollakin menetelmällä tekevää algoritmia, koska sen ulostulo on pelkistetty graafi, joka vielä sisältää kaikki maksimiklikit alkuperäisestä graafista. Kuten testimme osoittavat, ES-algoritmin tarjoama ajonaikainen parannus voi olla dramaattinen.

kuva 3
kuva3

Essential Set (ES) algoritmi. ES-algoritmi löytää kaikki olennaiset vertexit kuvaajasta ja poistaa niiden ei-naapurit.

toteutus

toteutimme kaikki algoritmit joko C-tai C++ – kielellä. Koodi laadittiin käyttäen GCC 4.4.3-kääntäjää Ubuntu Linux-versiossa 10.04.2-käyttöjärjestelmässä sekä GCC 3.3.5-kääntäjää Debian Linux-versiossa 3.1. Kaikki ajoitukset suoritettiin jälkimmäisessä Debian-ympäristössä klusterin omistetuilla solmuilla, jotta varmistettaisiin, etteivät ne vaikuta samanaikaisten prosessien ajoituksiin. Jokaisessa solmussa oli kaksiytiminen Intel Xeon-suoritin, joka toimi 3,20 GHz: n taajuudella ja 4 Gt: n päämuistilla.

Testing

in the conference version of this paper, we used three different datasets at 25 Grounds each to derived a total of 75 graphs on which to test our algorithmic improvements. Vaikka nämä kaaviot varmasti riittivät alustavaksi todisteeksi käsitteestä, niistä voidaan esittää kaksi huolenaihetta. Ensinnäkin voidaan väittää, että kolme tietokokonaisuutta ei ole riittävän suuri otoskoko antamaan todellista käsitystä transkriptomisten tietojen yleisestä luonteesta tai algoritmisen parannuksen yleisestä tehokkuudesta tällaisiin tietoihin, vaikka kynnysarvoja on paljon. Toiseksi, koska nämä kolme tietokokonaisuutta ovat omistusoikeudellisia eivätkä julkisesti saatavilla, tulokset eivät olleet niin helposti toistettavissa kuin ne olisivat muuten voineet olla. Vaikka tunnistamattomien versioiden hankkiminen oli mahdollista, se oli tarpeeton muistilappu uusittavuudelle.

käsittelemme näitä huolenaiheita luomalla uuden sarjan transkriptomisia kuvaajia, joilla voimme testata algoritmisia parannuksiamme. Sarja koostuu kaavioista, jotka on johdettu 25 aineistosta, jotka on saatu geenin ilmentymästä Omnibus (GEO), joka on julkisesti saatavilla oleva arkisto. Kutakin aineistoa varten luotiin kaaviot neljälle eri kynnysarvolle, yhteensä 100 kuvaajalle. Aineistot valittiin tarjoamaan kohtuullisen monipuolinen otanta kokeellinen tyyppi, lajit, ja mRNA microarray siru tyyppi. Ne kattavat 8 eri lajia ja useita erilaisia koeolosuhteita, kuten aikasarja, kanta, annos ja potilas. Koska kuvaajamme on johdettu thresholding correlation-arvoista, jätimme tarkastelun ulkopuolelle kaikki tiedot, joissa on alle 12 ehtoa. Näin harvoilla ehdoilla lasketut thrashholding-korrelaatiot voivat tuottaa kohtuuttoman suuria määriä vääriä positiivisia ja vääriä negatiivisia. Olosuhteiden määrä vaihtelee alhaisesta 12: sta korkeaan 153: een. Yhdeksää aineistoa ei ollut muutettu lokiksi, jolloin suoritimme log-transformaation. Neljä aineistoa sisälsi puuttuvia arvoja; näissä tapauksissa käytimme korrelaatio P-arvoja eikä korrelaatioita kynnykselle. Taulukossa 1 on luettelo testauksessa käytetyistä GEO-tietokokonaisuuksista.

Taulukko 1 testauksessa käytetyt GEO-tietokokonaisuudet

vuodesta lauseke tiedot, meidän ensimmäinen rakennettu painotettu kuvaajia, joissa vertices edustivat koettimet ja reuna painot olivat Pearson korrelaatiokertoimet computed koko kokeellisissa olosuhteissa. Tämän jälkeen muutimme painotetut graafit painotuksettomiksi kuvaajiksi säilyttämällä vain ne reunat, joiden painot olivat jollakin valitulla raja-arvolla, t: llä tai sen yläpuolella. jokaiselle aineistolle valitsimme neljä arvoa t: lle. kaikki koko – /tiheysarvot olivat siinä spektrissä, joka on tyypillisesti nähty työssämme biologisten aineistojen parissa. Pienimmässä kuvaajassa oli 3 828 verticeä ja 310 380 särmää, suurimmassa 44 563 särmää ja 2 052 228 särmää.

koepohjamme graafien maksimiklikkien määrä vaihteli 8: sta 74486: een. Kuten edellisessä koepohjassamme nähtiin, kuvaajan kokoon tai tiheyteen perustuvaa kuviota ei ollut havaittavissa. Voidaan kysyä, miksi on niin laajaa, arvaamatonta vaihtelua. On käynyt ilmi, että enimmäismäärä klikkejä voi olla erittäin herkkä pieniä muutoksia kuvaajan. Jopa yhden reunan muokkauksella voi olla valtava vaikutus. Tarkastellaan esimerkiksi graafia, jossa on ainutlaatuinen suurin klikki koko K, sekä joukko hajanaisia klikkejä koko K-1. Vain yhden reunan poistaminen suurimmasta klikistä voi nyt johtaa moniin K – 1-kokoisiin maksimiklikkeihin. Reunojen lisäämisellä voi tietenkin olla samanlaisia vaikutuksia. Havainnollistava esimerkki on kuvassa 4.

Kuva 4
kuva4

maksimaalinen Kuppikuntaherkkyys. Graafin maksimiklikkien määrä voi olla hyvin altis häiriöille, jotka johtuvat esimerkiksi kohinasta. Esimerkiksi kuvaaja voi sisältää yhden maksimikliikin C, joka edustaa kokoluokaltaan K: n oletettua verkostoa, sekä minkä tahansa joukon C: n K – 2: een liitettyjä kärkipisteitä.A: ssa on yksi maksimiklikki, jonka koko on K = 5, ja ”monia” muita kärkipisteitä (vain kolme on esitetty), jotka on liitetty K – 2 = 3: een sen solmuista. In (b), melu johtaa poistaa yhden reunan, luo monia maksimi kuppikuntia nyt koko k – 1 = 4.

kunkin algoritmin kunkin kaavion, teimme ajoitukset omistettu solmu klusterin välttää häiriöitä muista prosesseista. Jos algoritmi ei valmistunut 24 tunnin kuluessa, se pysäytettiin ja graafin katsottiin jääneen ratkaisematta. Valitsimme kynnysarvot levittääksemme graafien ajonaikoja viiden testaamamme algoritmin päälle. Suurin (pienin korrelaation p-arvon tapauksessa) kynnys valittiin siten, että suurin osa algoritmeista, elleivät kaikki, ratkaisi kuvaajan. Pienin (suurin korrelaation p-arvon tapauksessa) raja-arvo valittiin siten, että ainakin yksi algoritmeista, mutta ei kaikki, ratkaisi kuvaajan.

jokaisessa kaaviossa ajoitimme Peruslähtökohdan, älykkään taustatyön ja Parametrisoidun MC: n suorituskyvyn. Sitten pienensimme kuvaajia ES: llä ja testasimme uudelleen älykkäällä takaisinkytkennällä ja Parametrisoidulla MC: llä, jolloin ajonaikoihin sisältyy sekä vähennys-että laskutoimitusvaihe. Kuten odotettiin, peruslähtökohta todettiin kilpailukyvyttömäksi. Sekä älykäs Backtracking että Parametrisoitu MC osoittivat selvästi, usein dramaattista, parannusta perus Backtrackingiin verrattuna. Kuvassa 5 esitetään kunkin viiden menetelmän ajonopeudet Kaikissa 100 testikuvaajassa. Joissakin helpommissa kuvaajissa, joiden ratkaisemiseen meni alle kolme minuuttia, ES: n yleiskustannukset aiheuttivat itse asiassa pienen nousun kokonaisajossa. Mutta vaikeammissa tapauksissa sen todellinen hyöty kävi ilmeiseksi, sillä se vähensi ajonaikaa suuruusluokkaa tai enemmän. Ja kaikissa tapauksissa, joissa kaksi tai vähemmän algoritmeja ratkaisi graafin, algoritmi oli joko es älykkäällä Takaisinvedolla, ES Parametrisoidulla MC: llä tai molemmilla.

kuva 5
kuva5

ajoitukset. Ajoitukset MCE: n eri lähestymistavoista 100 biologisen kuvaajan testialustalla. Ajoitukset sisältävät kaikki esikäsittely, sekä aika löytää suurin clique koko, tarvittaessa. Ajot keskeytettiin 24 tunnin kuluttua ja katsottiin ratkaisemattomiksi, kuten ne, joiden näytettiin kestävän 86400 sekuntia. Kuvaajan esiintymät lajitellaan ensin perus-Backtrackin ajonaikojen mukaiseen järjestykseen, sitten älykkään taustatutkimuksen ajonaikojen mukaiseen järjestykseen. Tämä on järkevä tapa visualisoida ajoitukset, joskaan ei täydellinen, koska kuvaajat, jotka ovat vaikeita yhdelle menetelmälle, eivät välttämättä ole yhtä vaikeita toiselle menetelmälle, joten myöhemmät ajoitukset eivät ole monotonisia.

Vastaa

Sähköpostiosoitettasi ei julkaista.