- Abstract
- Innledning
- Bygge Et Clustering Tree
- En Demonstrasjon Ved Hjelp Av Simuleringer
- Et Enkelt Eksempel
- Clustering Trær for scRNA-seq Data
- Diskusjon
- Metoder
- clustree
- Simuleringer
- Iris datasett
- PBMC datasett
- tilgjengelighet av kildekode og krav
- Tilgjengelighet av støttedata
- Forkortelser
- Konkurrerende interesser
- Finansiering
- Forfatterbidrag
- ANERKJENNELSER
Abstract
Clustering teknikker er mye brukt i analysen av store datasett for å gruppere sammen prøver med lignende egenskaper. For eksempel brukes clustering ofte innen encellet RNA-sekvensering for å identifisere forskjellige celletyper som er tilstede i en vevsprøve. Det er mange algoritmer for å utføre clustering, og resultatene kan variere vesentlig. Spesielt er antall grupper tilstede i et datasett ofte ukjent, og antall klynger identifisert av en algoritme kan endres basert på parametrene som brukes. For å utforske og undersøke virkningen av varierende clustering oppløsning, presenterer vi clustering trær. Denne visualiseringen viser forholdet mellom klynger ved flere oppløsninger, slik at forskere kan se hvordan prøver beveger seg etter hvert som antall klynger øker. I tillegg kan meta-informasjon legges på treet for å informere valg av oppløsning og veiledning i identifisering av klynger. Vi illustrerer funksjonene til clustering trær ved hjelp av en rekke simuleringer, samt to virkelige eksempler, det klassiske iris datasettet og et komplekst enkeltcelle RNA-sekvenseringsdatasett. Clustering trær kan produseres ved hjelp av clustree r pakken, tilgjengelig FRA CRAN og utviklet På GitHub.
Innledning
Clustering analyse brukes ofte til å gruppere lignende prøver på tvers av et mangfoldig utvalg av applikasjoner. Vanligvis er målet med clustering å danne grupper av prøver som er mer lik hverandre enn prøver i andre grupper. Mens fuzzy eller myke clustering tilnærminger tilordner hver prøve til hver klynge med en viss sannsynlighet, og hierarkisk clustering danner et tre av prøver, danner de fleste metoder harde klynger hvor hver prøve er tildelt en enkelt gruppe. Dette målet kan oppnås på en rekke måter, for eksempel ved å vurdere avstandene mellom prøver (f .eks. |$k$|-means , PAM ), tetthetsområder over datasettet (F. eks.
i mange tilfeller er antall grupper som skal være til stede i et datasett ikke kjent på forhånd, og det er en betydelig utfordring å bestemme riktig antall klynger som skal brukes. For noen algoritmer, for eksempel |$k$|-betyr clustering, må antall klynger eksplisitt oppgis. Andre metoder har parametere som, direkte eller indirekte, styrer clustering oppløsning og dermed antall klynger produsert. Mens det finnes metoder og statistikk (for eksempel albuemetoden og silhuettplottene ) designet for å hjelpe analytikere med å bestemme hvilken klyngeoppløsning som skal brukes, produserer de vanligvis en enkelt poengsum som bare vurderer et enkelt sett med prøver eller klynger om gangen.
en alternativ tilnærming ville være å vurdere klynger ved flere oppløsninger og undersøke hvordan prøver endrer grupperinger etter hvert som antall klynger øker. Dette har ført til en rekke klyngestabilitetstiltak , hvorav mange er avhengige av klynging av forstyrrede eller delsamplede datasett. Modellutforskeralgoritmen delsamples for eksempel et datasett flere ganger, klynger hvert delsampled datasett ved forskjellige oppløsninger, og beregner deretter en likhet mellom klynger i samme oppløsning for å gi en fordeling av likheter som kan informere valget av oppløsning . Et mål for klyngestabilitet som ikke er basert på perturbasjoner, er DET SOM finnes I SC3-pakken for clustering single-cell RNA-sekvensering (scRNA-seq) data . Fra og med et sett med klyngeetiketter med forskjellige oppløsninger, blir hver klynge scoret, med klynger tildelt økt stabilitet hvis de deler de samme prøvene som en klynge ved en annen oppløsning, men straffet for å være i en høyere oppløsning.
en lignende enkel tilnærming er tatt av clustering tree visualisering vi presenterer her, uten å beregne score: (i) et datasett er gruppert ved hjelp av en hvilken som helst hard clustering algoritme ved flere oppløsninger, produsere sett med klyngenoder; (ii) overlappingen mellom klynger ved tilstøtende oppløsninger brukes til å bygge kanter; og (iii) den resulterende grafen presenteres som et tre. Dette treet kan brukes til å undersøke hvordan klynger er relatert til hverandre-hvilke klynger er forskjellige og som er ustabile. I de følgende avsnittene beskriver vi hvordan vi konstruerer et slikt tre og presenterer eksempler på trær bygget fra et klassisk clustering datasett og et komplekst scRNA-seq datasett. Tallene som vises her kan produseres I R ved hjelp av vår offentlig tilgjengelige clustree-pakke. Selv om clustering trær ikke direkte kan gi en clustering oppløsning å bruke, kan de være et nyttig verktøy for å utforske og visualisere omfanget av mulige valg.
Bygge Et Clustering Tree
for å bygge et clustering tree, starter vi med et sett med clustering og tildeler prøver til grupper med flere forskjellige oppløsninger. Disse kan produseres ved hjelp av en hard-clustering algoritme som tillater kontroll av antall klynger på noen måte. For eksempel kan dette være et sett med prøver gruppert ved hjelp av / $k$ / – betyr med / $k\,\, = \,\,1,2,3$| som vist I Fig. 1. Vi sorterer disse klyngene slik at de bestilles ved å øke oppløsningen (|$k$/), og deretter vurdere par av tilstøtende klynger. Hver klynge|$ {c_{k,\,\,i}} $ / (hvor / $i\,\, = \,\,1,\,\, \ldots,\,\, n$ / og / $n$ / er antall klynger ved oppløsning / $k$/) sammenlignes med hver klynge / ${c_{k + 1,\,\,j}}$ / (hvor / $j\,\, = \,\,1,\,\, \ldots,\,\, m$ / og / $m$ |er antall klynger ved oppløsning / $k + 1$/). Overlappingen mellom de to klyngene beregnes som antall prøver som er tildelt både / ${c_{k,\,\, i}}$ / og / ${c_{k + 1,\,\, j}}$|. Deretter bygger vi en graf hvor hver node er en klynge og hver kant er en overlapping mellom to klynger. Mens vi refererer til denne grafen som et tre for enkelhet, kan det mer korrekt beskrives som en polytree, et spesielt tilfelle av en rettet asyklisk graf der den underliggende urettede grafen er et tre .
Illustrasjon av trinnene som kreves for å bygge et klyngetre. Først må et datasett grupperes ved forskjellige oppløsninger. Overlappingen i prøver mellom klynger ved tilstøtende oppløsninger beregnes og brukes til å beregne andelen for hver kant. Til slutt blir kantene filtrert og grafen visualisert som et tre.
Illustrasjon av trinnene som kreves for å bygge et klyngetre. Først må et datasett grupperes ved forskjellige oppløsninger. Overlappingen i prøver mellom klynger ved tilstøtende oppløsninger beregnes og brukes til å beregne andelen for hver kant. Til slutt blir kantene filtrert og grafen visualisert som et tre.
mange av kantene vil være tomme, for Eksempel I Fig. 1 ingen prøver i klynge A på / $k\,\, = \,\,2$| ende opp i klynge B på / $k\,\, = \,\,3$|. I enkelte datasett kan det også være kanter som inneholder få prøver. Disse kantene er ikke informative og resulterer i et rotete tre. En åpenbar løsning for å fjerne uninformative, low-count kanter er å filtrere dem ved hjelp av en terskel på antall prøver de representerer. I dette tilfellet er imidlertid antall prøver ikke den riktige statistikken å bruke fordi den favoriserer kanter ved lavere oppløsninger og de som forbinder større klynger. I stedet definerer vi andelen metriske som forholdet mellom antall prøver på kanten og antall prøver i klyngen det går mot. Denne beregningen viser betydningen av kanten til klyngen med høyere oppløsning uavhengig av klyngestørrelsen. Vi kan da bruke en terskel til andelen for å fjerne mindre informative kanter.
den endelige grafen kan da visualiseres. I teorien kan enhver grafoppsettalgoritme brukes. For clustree-pakken har vi imidlertid brukt de to algoritmene som er spesielt utviklet for trestrukturer som er tilgjengelige i igraph-pakken . Dette Er Reingold-Tilford-treoppsettet, som plasserer overordnede noder over sine barn, og Sugiyama-oppsettet, som plasserer noder av en rettet asyklisk graf i lag samtidig som antall krysskanter minimeres . Begge disse algoritmene kan produsere attraktive oppsett; som sådan har vi ikke funnet behovet for å designe en bestemt layoutalgoritme for clustering trær. Som standard bruker clustree-pakken bare et delsett av kanter når du bygger et oppsett, spesielt de høyeste proporsjonale kantene for hver node. Vi har funnet ut at dette ofte fører til flere tolkbare visualiseringer; brukerne kan imidlertid velge å bruke alle kanter hvis ønskelig.
Uavhengig av oppsettet som brukes, plasserer den endelige visualiseringen klyngenodene i en serie lag hvor hvert lag er en annen klyngeoppløsning og kanter viser overgangen av prøver gjennom disse oppløsningene. Kantene er farget i henhold til antall prøver de representerer, og i forhold metriske brukes til å kontrollere kanten åpenhet, fremhever mer viktige kanter. Som standard justeres nodestørrelsen i henhold til antall prøver i klyngen, og fargen deres indikerer klyngeoppløsningen. Clustree-pakken inneholder også alternativer for å kontrollere estetikken til noder basert på egenskapene til prøver i klyngene de representerer,som vist i de følgende eksemplene.
mens et clustering tre er konseptuelt lik treet produsert gjennom hierarkisk clustering, er det noen viktige forskjeller. Det mest åpenbare er at et hierarkisk klyngetre er resultatet av en bestemt klyngealgoritme og viser forholdene mellom individuelle prøver, mens klyngetrærne beskrevet her er uavhengige av klyngemetode og viser relasjoner mellom klynger. Grenene til et hierarkisk tre viser hvordan klyngealgoritmen har slått sammen prøver. Kanter i et klyngetre viser derimot hvordan prøver beveger seg mellom klynger etter hvert som oppløsningen endres, og noder kan ha flere foreldre. Mens det er mulig å overlappe informasjon om prøver på et hierarkisk tre, dette er ikke vanlig gjort, men er en viktig funksjon i clustree pakken og hvordan clustering trær kan brukes i praksis.
En Demonstrasjon Ved Hjelp Av Simuleringer
for å demonstrere hvordan et klyngetre kan se ut i forskjellige situasjoner og hvordan det oppfører seg som et datasett er overkluster, presenterer vi noen illustrerende eksempler ved hjelp av enkle simuleringer (Se Metoder). Vi presenterer fem scenarier: tilfeldig uniform støy (simulering A), en enkelt klynge (simulering B), to klynger (simulering C), tre klynger (simulering D), og fire klynger (simulering E). Hver klynge består av 1000 prøver (poeng) generert fra en 100-dimensjonal normalfordeling, og hvert syntetisk datasett har blitt gruppert ved hjelp av / $k$ / – betyr clustering med / $k\,\, = \,\,1,\,\, \ldots, 8$|. Vi bruker deretter clustree-pakken til å produsere clustering trær for hvert datasett(Fig. 2).
Fem syntetiske datasett brukes til å demonstrere clustering trær. For hvert datasett vises et punktplott av de to første hovedkomponentene, et standard clustering tree og clustering tree med noder farget AV sc3 stabilitetsindeksen fra lilla (laveste) til gul (høyeste). De fem datasettene inneholder: (A) tilfeldig ensartet støy, (B) en enkelt klynge, (C) to klynger, (D) tre klynger og (E) fire klynger.
Fem syntetiske datasett brukes til å demonstrere clustering trær. For hvert datasett vises et punktplott av de to første hovedkomponentene, et standard clustering tree og clustering tree med noder farget AV sc3 stabilitetsindeksen fra lilla (laveste) til gul (høyeste). De fem datasettene inneholder: (A) tilfeldig ensartet støy, (B) en enkelt klynge, (C) to klynger, (D) tre klynger og (E) fire klynger.
Ser vi på de to første eksemplene (uniform noise og en enkelt klynge ), kan vi tydelig se hvordan et klyngetre oppfører seg når en klyngealgoritme returnerer flere klynger enn det som virkelig er tilstede i et datasett. Nye klynger begynner å danne seg fra flere eksisterende klynger, og mange prøver bytter mellom grener av treet, noe som resulterer i lave proporsjonale kanter. Ustabile klynger kan også vises og deretter forsvinne når oppløsningen øker, som vist I Fig. 2E. Når vi legger til mer struktur i datasettene, begynner klyngetrærne å danne klare grener, og lavproporsjonskanter har en tendens til å være begrenset til deler av treet. Ved å se på hvilke klynger som er stabile og hvor lave proporsjonale kanter oppstår, kan vi utlede hvilke områder av treet som sannsynligvis vil være et resultat av sanne klynger og som er forårsaket av overkluster.
det andre klyngetreet for hvert datasett viser noder farget i HENHOLD TIL sc3-stabilitetsindeksen for hver klynge. Som vi forventer, får ingen klynge en høy stabilitetspoeng i de to første eksemplene. Men mens vi tydelig ser to grener i klyngetreet for to-klyngeeksemplet (simulering C), reflekteres dette ikke I SC3-poengene. Ingen klynge mottar en høy stabilitetspoeng, mest sannsynlig på grunn av det store antallet prøver som beveger seg mellom klynger etter hvert som oppløsningen øker. SIDEN det er flere sanne klynger i de simulerte datasettene, BLIR sc3-stabilitetspoengene mer prediktive for riktig oppløsning å bruke. Det er imidlertid viktig å se på stabilitetspoengene for alle klynger ved en bestemt oppløsning, da det å ta den høyeste individuelle klyngen stabilitetspoengene kan føre til at feil oppløsning blir brukt, som det kan ses i eksemplet med fire klynger (simulering E). Disse eksemplene viser hvordan clustering trær kan brukes til å vise eksisterende clustering beregninger på en måte som kan bidra til å informere parameter valg.
Et Enkelt Eksempel
for å illustrere hvordan et klyngetre er bygget, vil vi jobbe gjennom et eksempel ved hjelp av det klassiske iris-datasettet . Dette datasettet inneholder målinger av sepal lengde, sepal bredde, petal lengde, og petal bredde fra 150 iris blomster, 50 fra hver av tre arter: Iris setosa, Iris versicolor, Og Iris virginica. Iris datasettet er ofte brukt som et eksempel for både clustering og klassifisering problemer med I. setosa prøvene er vesentlig forskjellig fra, og lineært separeres fra, de andre prøvene. Vi har gruppert dette datasettet ved hjelp av / $k$ / – betyr clustering med / $k\,\, = \,\,1,\,\, \ldots, 5$ / og produsert clustering treet vist I Fig. 3A.
Clustering trær basert på / $k$ / – betyr clustering av iris datasettet. (A) Noder er farget i henhold til verdien av / $k$ / og størrelse i henhold til antall prøver de representerer. Kantene er farget i henhold til antall prøver (fra blå som representerer få til gul som representerer mange). Gjennomsiktigheten justeres i henhold til andelen, med sterkere linjer som viser kanter som er viktigere for klyngen med høyere oppløsning. Klyngeetiketter tildeles tilfeldig av algoritmen / $k$ / – means. (B) det samme treet med nodefarging endret for å vise gjennomsnittlig kronbladlengde av prøvene i hver klynge.
Clustering trær basert på / $k$ / – betyr clustering av iris datasettet. (A) Noder er farget i henhold til verdien av / $k$ / og størrelse i henhold til antall prøver de representerer. Kantene er farget i henhold til antall prøver (fra blå som representerer få til gul som representerer mange). Gjennomsiktigheten justeres i henhold til andelen, med sterkere linjer som viser kanter som er viktigere for klyngen med høyere oppløsning. Klyngeetiketter tildeles tilfeldig av algoritmen / $k$ / – means. (B) det samme treet med nodefarging endret for å vise gjennomsnittlig kronbladlengde av prøvene i hver klynge.
Vi ser at en gren av treet er tydelig tydelig (antagelig representerer i. setosa), forblir uendret uavhengig av antall klynger. På den andre siden ser vi at klyngen på / $k\,\, = \,\,2$| deler seg rent i to klynger (antagelig i. versicolor og i. virginica) på / $k\,\, = \,\,3$|. Men når vi flytter til / $k\,\, = \,\,4$| og / $k\,\, = \,\,5$|, vi ser klynger som dannes fra flere grener med mer lave proporsjonale kanter. Som vi har sett i de simulerte eksemplene, kan denne typen mønster indikere at dataene har blitt overkluster og vi har begynt å introdusere kunstige grupperinger.
Vi kan sjekke vår antagelse om at den distinkte grenen representerer i. setosa-prøvene og at de to andre klynger ved / $k\,\, = \,\,3$| er i. versicolor og i. virginica ved å legge over noen kjente opplysninger om prøvene. I Fig. 3B vi har farget nodene med den gjennomsnittlige kronbladets lengde på prøvene de inneholder. Vi kan nå se at klynger i den distinkte grenen har de korteste kronbladene, med klynge 1 ved / $k\,\, = \,\,3$| har en mellomliggende lengde og klynge 3 som har de lengste kronbladene. Denne funksjonen er kjent for å skille prøvene i de forventede artene, Med i. setosa som har de korteste kronbladene i gjennomsnitt, i. versicolor en mellomlengde og i. virginica den lengste.
selv om dette er et veldig enkelt eksempel, fremhever det noen av fordelene ved å se et klyngetre. Vi får noen indikasjon på riktig klyngeoppløsning ved å undersøke kantene, og vi kan legge over kjent informasjon for å vurdere kvaliteten på klyngingen. For eksempel, hvis vi observerte at alle klynger hadde samme gjennomsnittlige kronbladlengde, ville det tyde på at klyngen ikke har vært vellykket, da vi vet at dette er en viktig funksjon som skiller arten. Vi kan potensielt lære mer ved å se på hvilke prøver som følger lavproporsjonskanter eller ved å legge over en rekke funksjoner for å prøve å forstå hva som forårsaker at bestemte klynger splittes.
Clustering Trær for scRNA-seq Data
ett felt som har begynt å gjøre stor bruk av clustering teknikker er analyse av scRNA-seq data. scRNA-sekvensering er en nylig utviklet teknologi som kan måle hvordan gener uttrykkes i tusenvis til millioner av individuelle celler . Denne teknologien har blitt raskt tatt i bruk i felt som utviklingsbiologi og immunologi hvor det er verdifullt å ha informasjon fra enkeltceller i stedet for målinger som er i gjennomsnitt på tvers av de mange forskjellige cellene i en prøve ved hjelp av eldre RNA-seq-teknologier. En nøkkelbruk for scRNA-seq er å oppdage og forhøre de forskjellige celletyper som er tilstede i en prøve av et komplekst vev. I denne situasjonen brukes clustering vanligvis til å gruppere lignende celler basert på deres genuttrykksprofiler. Forskjeller i genuttrykk mellom grupper kan da brukes til å utlede identiteten eller funksjonen til disse cellene . Antall celletyper (klynger) i et scRNA-seq datasett kan variere avhengig av faktorer som vevet som studeres, dets utviklings-eller miljøtilstand og antall celler fanget. Ofte er antall celletyper ikke kjent før dataene genereres, og noen prøver kan inneholde dusinvis av klynger. Derfor bestemmer hvilke clustering oppløsning å bruke er en viktig faktor i dette programmet.
som et eksempel på hvordan clustering trær kan brukes i scRNA-seq sammenheng, anser vi en vanlig brukt perifer blod mononukleære celle (PBMC) datasett. Dette datasettet ble opprinnelig produsert av 10x Genomikk og inneholder 2700 perifere blodmononukleære celler, som representerer en rekke godt studerte immuncelletyper . Vi analyserte dette datasettet ved Hjelp Av seurat-pakken, en vanlig verktøykasse for scRNA-seq-analyse, etter instruksjonene i opplæringen, med unntak av å variere clustering resolution-parameteren fra null til 5 (se Metoder). Seurat bruker en grafbasert klyngealgoritme, og oppløsningsparameteren styrer partisjoneringen av denne grafen, med høyere verdier som resulterer i flere klynger. De clustering trær produsert fra denne analysen er vist I Fig. 4.
To clustering trær av et datasett på 2700 PBMCs. (A) Resultater Fra clustering ved Hjelp Av Seurat med oppløsningsparametere fra null til 1. Ved en oppløsning på 0,1 ser vi dannelsen av fire hovedgrener, hvorav den ene fortsetter å splitte opp til en oppløsning på 0,4, hvoretter det bare er små endringer. (B) Oppløsninger fra null til 5. Ved de høyeste oppløsningene begynner vi å se mange lavproporsjonskanter, noe som indikerer klyngens ustabilitet. Seurat etiketter klynger i henhold til deres størrelse, med klynge 0 er den største.
To clustering trær av et datasett på 2700 PBMCs. (A) Resultater Fra clustering ved Hjelp Av Seurat med oppløsningsparametere fra null til 1. Ved en oppløsning på 0,1 ser vi dannelsen av fire hovedgrener, hvorav den ene fortsetter å splitte opp til en oppløsning på 0,4, hvoretter det bare er små endringer. (B) Oppløsninger fra null til 5. Ved de høyeste oppløsningene begynner vi å se mange lavproporsjonskanter, noe som indikerer klyngens ustabilitet. Seurat etiketter klynger i henhold til deres størrelse, med klynge 0 er den største.
clustering treet dekker oppløsninger null til 1 i trinn på 0,1 (Fig. 4A) viser at fire hovedgrener dannes med en oppløsning på bare 0,1. En av disse grenene, som starter med klynge 3 ved oppløsning 0,1, forblir uendret, mens grenen som starter med klynge 2, splittes bare en gang med en oppløsning på 0,4. Det meste av forgreningen skjer i grenen som starter med klynge 1, som konsekvent har delgrener delt av for å danne nye klynger etter hvert som oppløsningen øker. Det er to stabilitetsområder i dette treet – ved oppløsning 0,4-0,5 og oppløsning 0,7 – 1,0 hvor grenen som starter ved klynge 0 deler seg i to.
Fig. 4B viser et klyngetre med et større utvalg av oppløsninger, fra null til 5 i trinn på 0,5. Ved å se over dette området, kan vi se hva som skjer når algoritmen er tvunget til å produsere flere klynger enn det som sannsynligvis vil være virkelig til stede i dette datasettet. Som overclustering oppstår, begynner vi å se flere lave proporsjoner kanter og nye klynger som dannes fra flere overordnede klynger. Dette antyder at disse områdene av treet er ustabile, og at de nye klyngene som dannes, er usannsynlig å representere sanne grupper i datasettet.
Kjente markørgener brukes ofte til å identifisere celletyper som spesifikke klynger samsvarer med. Overliggende genuttrykksinformasjon på et klyngetre gir et alternativt syn som kan bidra til å indikere når klynger som inneholder rene cellepopulasjoner dannes. Figur 5 viser PBMC clustering treet I Fig. 4A overlaid med uttrykket av noen kjente markørgener.
Clustering trær AV PBMC datasett farget i henhold til uttrykket av kjente markører. Nodefargene angir gjennomsnittet av log2 – genantallet av prøver i hver klynge. CD19 (A) identifiserer b-celler, CD14 (B) viser en populasjon av monocytter, CD3D (C) er en markør For T-celler, OG CCR7 (D) viser splittelsen mellom minne OG naive CD4 T-celler.
Clustering trær AV PBMC datasett farget i henhold til uttrykket av kjente markører. Nodefargene angir gjennomsnittet av log2 – genantallet av prøver i hver klynge. CD19 (A) identifiserer b-celler, CD14 (B) viser en populasjon av monocytter, CD3D (C) er en markør For T-celler, OG CCR7 (D) viser splittelsen mellom minne OG naive CD4 T-celler.
ved å legge til denne ekstra informasjonen, kan vi raskt identifisere noen av celletypene. CD19 (Fig. 5A) er en markør For b-celler og er tydelig uttrykt i den mest distinkte grenen av treet. CD14 (Fig. 5B) er en markør for en type monocyt, som blir mer uttrykt når vi følger en av de sentrale grenene, slik at vi kan se hvilken oppløsning som identifiserer en ren populasjon av disse cellene. CD3D (Fig. 5C) er en generell markør For T-celler og uttrykkes i to separate grener, en som splittes i lavt og høyt uttrykk FOR CCR7(Fig. 5D), skille minne OG naive CD4 T-celler. Ved å legge til uttrykk for kjente gener til et klyngetre, kan vi se om flere populasjoner kan identifiseres som klyngeoppløsningen økes, og hvis klynger er i samsvar med kjent biologi. For det meste Av seurat-opplæringen brukes en oppløsning på 0,6, men forfatterne merker at ved å flytte til en oppløsning på 0,8, kan en splittelse oppnås mellom minne og naive CD4 T-celler. Dette er en splitt som kan forventes ved å se på klyngetreet med tillegg av tidligere informasjon.
Diskusjon
Gruppering av lignende prøver i grupper er en nyttig teknikk på mange felt, men ofte står analytikere overfor det vanskelige problemet med å bestemme hvilken klyngeoppløsning som skal brukes. Tradisjonelle tilnærminger til dette problemet vurderer vanligvis en enkelt klynge eller prøve om gangen og kan stole på forkunnskaper om prøveetiketter. Her presenterer vi clustering trær, en alternativ visualisering som viser forholdet mellom clustering ved flere oppløsninger. Mens clustering trær ikke kan direkte foreslå hvilken clustering oppløsning å bruke, kan de være et nyttig verktøy for å bidra til å ta den avgjørelsen, spesielt når kombinert med andre beregninger eller domenekunnskap.
Klyngetrær viser hvordan klynger deles etter hvert som oppløsningen øker, hvilke klynger er tydelig separate og distinkte, som er relatert til hverandre, og hvordan prøver endrer grupper etter hvert som flere klynger blir produsert. Selv om clustering trær kan ligne på trær produsert fra hierarkisk clustering, er det flere viktige forskjeller. Hierarkisk clustering vurderer forholdet mellom individuelle prøver og gir ikke en åpenbar måte å danne grupper på. I motsetning til dette er clustering trær uavhengige av en bestemt clustering metode og viser forholdet mellom klynger, i stedet for prøver, ved forskjellige oppløsninger, hvorav noen kan brukes til videre analyse.
for å illustrere bruken av clustering trær, presenterte vi en serie simuleringer og to eksempler på reelle analyser, en ved hjelp av det klassiske iris datasettet og et sekund basert på et komplekst scRNA-seq datasett. Begge eksemplene viser hvordan et klyngetre kan bidra til å informere beslutningen om hvilken løsning som skal brukes, og hvordan overlagring av ekstra informasjon kan bidra til å validere disse klyngene. Dette er spesielt nyttig for scRNA-seq-analyse, da disse datasettene ofte er store, støyende og inneholder et ukjent antall celletyper eller klynger.
selv når det ikke er et problem å bestemme antall klynger, kan klyngetrær være et verdifullt verktøy. De gir en kompakt, informasjonstett visualisering som kan vise oppsummert informasjon på tvers av en rekke klynger. Ved å endre utseendet på klyngenoder basert på attributter av prøvene de representerer, kan klynger evalueres og identiteter av klynger etablert. Clustering trær potensielt har programmer i mange felt, og i fremtiden, kan tilpasses for å være mer fleksibel, for eksempel ved imøtekommende fuzzy clustering. Det kan også være bruk for mer generelle clustering grafer for å kombinere resultater fra flere sett med parametere eller clustering metoder.
Metoder
clustree
clustree programvarepakken (v0. 2. 0) er bygget for r statistisk programmeringsspråk (v3.5.0). Det er avhengig av ggraph pakken (v1.0.1) , som er bygget på ggplot2 (v2.2.1) og tidygraph (v1.1.0) pakker. Clustering trær vises Ved Hjelp Av Reingold-Tilford tre layout eller Sugiyama layout; begge er tilgjengelig som en del av igraph pakke (v1.2.1).
Figurpaneler vist her ble produsert ved hjelp av cowplot-pakken (v0. 9 .2).
Simuleringer
Simulerte datasett ble konstruert ved å generere poeng fra statistiske fordelinger. Den første simuleringen (simulering A) består av 1000 poeng tilfeldig generert fra et 100-dimensjonalt rom ved hjelp av en jevn fordeling mellom null og 10. Simulering b består av en enkelt normalfordelt klynge på 1000 poeng i 100 dimensjoner. Senteret for denne klyngen ble valgt ut fra en normalfordeling med gjennomsnittlig null og standardavvik 10. Poeng ble deretter generert rundt dette senteret fra en normalfordeling med gjennomsnitt lik midtpunktet og et standardavvik på 5. De resterende tre simuleringene ble produsert ved å legge til flere klynger. For å få et kjent forhold mellom klynger ble senteret for de nye klyngene opprettet ved å manipulere sentrene til eksisterende klynger. For klynge 2 ble en tilfeldig 100-dimensjonal vektor generert fra en normalfordeling med gjennomsnittlig null og standardavvik 2 og lagt til sentrum for klynge 1. Senter 3 var gjennomsnittet av senter 1 og senter 2 pluss en tilfeldig vektor fra en normalfordeling med gjennomsnittlig null og standardavvik 5. For å sikre et lignende forhold mellom klynger 3 og 4 som mellom klynger 1 og 2, ble senter 4 produsert ved å legge til halvparten av vektoren som ble brukt til å produsere senter 2 til senter 3 pluss en annen vektor fra en normalfordeling med gjennomsnittlig null og standardavvik 2. Poeng for hver klynge ble generert på samme måte som for klynge 1. Simulering C består av punktene i klynger 1 og 2; simulering D består av klynger 1, 2 og 3; og simulering e består av klynger 1, 2, 3 og 4. Hvert simulerte datasett ble gruppert ved hjelp av «kmeans» – funksjonen i stats-pakken med verdier på |$k$ / fra 1 til 8, maksimalt 100 iterasjoner og 10 tilfeldige startposisjoner. De clustering tre visualiseringer ble produsert ved hjelp av clustree pakke med treet layout. De simulerte datasettene og koden som brukes til å produsere dem, er tilgjengelige fra depotet for denne artikkelen .
Iris datasett
iris datasettet er tilgjengelig som En del Av R. Vi grupperte dette datasettet ved hjelp av «kmeans» – funksjonen i stats-pakken med verdier på| $k$ / fra 1 til 5. Hver verdi på / $k$ / ble gruppert med maksimalt 100 iterasjoner og med 10 tilfeldige startposisjoner. Clustree-pakken ble brukt til å visualisere resultatene ved Hjelp Av Sugiyama-oppsettet. Clustered iris datasett er tilgjengelig som en del av clustree pakken.
PBMC datasett
PBMC datasettet ble lastet ned Fra seurat tutorial siden, og denne opplæringen ble fulgt for det meste av analysen Bruker Seurat versjon 2.3.1. Kort sagt ble celler filtrert basert på antall gener de uttrykker og prosentandelen av teller tildelt mitokondriale gener. Dataene ble deretter log-normalisert og 1838 variable gener identifisert. Potensielle konfunderende variabler (antall unike molekylære identifikatorer og prosent mitokondrielt uttrykk) ble regressert fra datasettet før de utførte hovedkomponentanalyse på de identifiserte variable gener. De første 10 hovedkomponentene ble deretter brukt til å bygge en graf som ble delt inn i klynger ved Hjelp Av Louvain modularity optimization med oppløsningsparametere i området null til 5, i trinn på 0,1 mellom null og 1, og deretter i trinn på 0,5. Clustree ble deretter brukt til å visualisere resultatene ved hjelp av treet layout.
tilgjengelighet av kildekode og krav
Prosjektnavn: clustree.
prosjektets hjemmeside: https://github.com/lazappi/clustree.
Operativsystemer: Linux, MacOS, Windows
Programmeringsspråk: R (> = 3.4)
Andre krav: Ingen
Lisens: GPL-3
eventuelle restriksjoner for bruk av ikke-akademikere: Ingen
RRID: SCR_016293
Tilgjengelighet av støttedata
clustree-pakken er tilgjengelig FRA CRAN og utvikles på GitHub . Koden og datasettene som brukes til analysen som presenteres her, er også tilgjengelige fra GitHub . Den clustered iris datasett er inkludert som en del av clustree, OG PBMC datasett kan lastes ned Fra seurat tutorial side eller papir GitHub repository. Øyeblikksbilder av koden er tilgjengelig I GigaScience repository, GigaDB .
Forkortelser
PBMC: mononukleær celle i perifert blod; scRNA-seq: enkeltcelle RNA-sekvensering.
Konkurrerende interesser
forfatterne erklærer at de ikke har konkurrerende interesser.
Finansiering
Lz er støttet av En Australsk Regjering Forskerutdanningsprogram stipend. Ao er støttet gjennom En National Health And Medical Research Council Career Development fellowship (APP1126157). Murdoch Children ‘ S Research Institute støttes av Den Viktorianske Regjeringens Operasjonelle Infrastrukturstøtteprogram.
Forfatterbidrag
L. Z. designet clustering tree-algoritmen, skrev clustree-programvarepakken og utarbeidet manuskriptet. A. O. overvåket prosjektet og kommenterte manuskriptet.
ANERKJENNELSER
Takk Til Marek Cmero for å gi kommentarer til et utkast av manuskriptet og anmeldere for deres kommentarer og forslag.
.
.
.
;
:
–
.
.
. I
,
.
.
.
.
;
:
–
.
,
.
,
.
.
. pp.
–
.
,
,
, et al.
.
.
:
;
. pp.
–
..
:
,
.
.
.
;
:
–
.
.
.
.
;
:
–
.
.
.
.
;
:
–
.
.
.
.
;
:
–
.
,
,
.
.
.
,
;
–
.
,
,
et al.
.
.
;
:
–
.
,
.
.
;
.
,
.
.
.
;
:
–
.
,
.
.
.
;
:
–
.
,
,
.
.
.
;
:
–
.
.
.
.
;
:
–
.
.
.
.
;
:
–
.
,
,
, et al.
.
.
;
:
–
.
,
,
.
.
.
;
:
–
.
,
,
, et al.
.
.
;
:
.
,
,
, et al.
.
.
;
:
–
.
.
.
.
.
.
:
;
.
.
.
.
.
.
.
,
.
,
.
.
.
. ;
.
,
,
, et al.
.
.
;
;
:
.
,
.
.
.
,
.
. ;
.
.
,
.
.
.
. .