Clustering trees: a visualization for evaluating clusterings at multiple resolutions

Abstract

Clustering-Techniken werden häufig bei der Analyse großer Datensätze verwendet, um Proben mit ähnlichen Eigenschaften zu gruppieren. Zum Beispiel wird Clustering häufig im Bereich der Einzelzell-RNA-Sequenzierung verwendet, um verschiedene Zelltypen zu identifizieren, die in einer Gewebeprobe vorhanden sind. Es gibt viele Algorithmen zum Durchführen von Clustern, und die Ergebnisse können erheblich variieren. Insbesondere ist die Anzahl der in einem Datensatz vorhandenen Gruppen häufig unbekannt, und die Anzahl der von einem Algorithmus identifizierten Cluster kann sich basierend auf den verwendeten Parametern ändern. Um die Auswirkungen unterschiedlicher Clusterauflösung zu untersuchen und zu untersuchen, stellen wir Clusterbäume vor. Diese Visualisierung zeigt die Beziehungen zwischen Clustern mit mehreren Auflösungen, sodass Forscher sehen können, wie sich Proben mit zunehmender Anzahl von Clustern bewegen. Darüber hinaus können dem Baum Metainformationen überlagert werden, um die Wahl der Auflösung zu erleichtern und die Identifizierung von Clustern zu erleichtern. Wir veranschaulichen die Merkmale von Clustering-Bäumen anhand einer Reihe von Simulationen sowie zweier realer Beispiele, des klassischen Iris-Datensatzes und eines komplexen Einzelzell-RNA-Sequenzierungsdatensatzes. Clustering-Bäume können mit dem clustree R-Paket erstellt werden, das von CRAN erhältlich und auf GitHub entwickelt wurde.

Einleitung

Die Clusteranalyse wird häufig verwendet, um ähnliche Proben in einer Vielzahl von Anwendungen zu gruppieren. In der Regel besteht das Ziel des Clusters darin, Gruppen von Stichproben zu bilden, die einander ähnlicher sind als Stichproben in anderen Gruppen. Während Fuzzy- oder Soft-Clustering-Ansätze jede Stichprobe mit einiger Wahrscheinlichkeit jedem Cluster zuweisen und hierarchisches Clustering einen Baum von Stichproben bildet, bilden die meisten Methoden harte Cluster, bei denen jede Stichprobe einer einzelnen Gruppe zugewiesen wird. Dieses Ziel kann auf verschiedene Arten erreicht werden, z. B. durch Berücksichtigung der Abstände zwischen Stichproben (z. B. | $ k $ | -means , PAM), Dichtebereiche im gesamten Datensatz (z. B. DBSCAN) oder Beziehungen zu statistischen Verteilungen .

In vielen Fällen ist die Anzahl der Gruppen, die in einem Datensatz vorhanden sein sollten, nicht im Voraus bekannt, und die Entscheidung über die richtige Anzahl der zu verwendenden Cluster ist eine erhebliche Herausforderung. Für einige Algorithmen, wie z. B. |$k $/-means clustering, muss die Anzahl der Cluster explizit angegeben werden. Andere Verfahren haben Parameter, die direkt oder indirekt die Clusterauflösung und damit die Anzahl der erzeugten Cluster steuern. Zwar gibt es Methoden und Statistiken (z. B. die Elbow-Methode und Silhouette-Plots), die Analysten bei der Entscheidung helfen sollen, welche Clusterauflösung verwendet werden soll, Sie erstellen jedoch in der Regel einen einzigen Score, der jeweils nur einen einzigen Satz von Stichproben oder Clustern berücksichtigt.

Ein alternativer Ansatz wäre, Clusterings mit mehreren Auflösungen zu betrachten und zu untersuchen, wie Stichproben Gruppierungen ändern, wenn die Anzahl der Cluster zunimmt. Dies hat zu einer Reihe von Clusterstabilitätsmaßnahmen geführt , von denen viele auf dem Clustering von gestörten oder unterabgetasteten Datensätzen beruhen. Beispiel: Der Model Explorer-Algorithmus unterabtastet ein Dataset mehrmals, clustert jedes unterabtastete Dataset mit verschiedenen Auflösungen und berechnet dann eine Ähnlichkeit zwischen Clustern mit derselben Auflösung, um eine Verteilung von Ähnlichkeiten zu erhalten, die die Wahl der Auflösung beeinflussen kann . Eine Clusterstabilitätsmaßnahme, die nicht auf Störungen basiert, ist die im SC3-Paket zum Clustern von Einzelzell-RNA-Sequenzierungsdaten (scRNA-seq) enthaltene . Beginnend mit einer Reihe von Cluster-Labels mit unterschiedlichen Auflösungen wird jeder Cluster bewertet, wobei Cluster eine erhöhte Stabilität erhalten, wenn sie dieselben Samples wie ein Cluster mit einer anderen Auflösung verwenden, jedoch für eine höhere Auflösung bestraft werden.

Ein ähnlicher einfacher Ansatz wird von der hier vorgestellten Clusterbaumvisualisierung ohne Berechnung der Punktzahlen verfolgt: (i) Ein Datensatz wird mit einem beliebigen harten Clusteralgorithmus mit mehreren Auflösungen gruppiert, wodurch Sätze von Clusterknoten erzeugt werden; (ii) Die Überlappung zwischen Clustern mit benachbarten Auflösungen wird zum Erstellen von Kanten verwendet; und (iii) Der resultierende Graph wird als Baum dargestellt. Dieser Baum kann verwendet werden, um zu untersuchen, wie Cluster miteinander verwandt sind — welche Cluster unterschiedlich und welche instabil sind. In den folgenden Abschnitten beschreiben wir, wie wir einen solchen Baum konstruieren, und stellen Beispiele für Bäume vor, die aus einem klassischen Clustering-Dataset und einem komplexen scRNA-seq-Dataset erstellt wurden. Die hier gezeigten Zahlen können in R mit unserem öffentlich zugänglichen Clustree-Paket erstellt werden. Obwohl Clusterbäume keine direkte Clusterauflösung für die Verwendung bereitstellen können, können sie ein nützliches Werkzeug zum Erkunden und Visualisieren der möglichen Auswahlmöglichkeiten sein.

Erstellen eines Clusterbaums

Um einen Clusterbaum zu erstellen, beginnen wir mit einer Reihe von Clustern und ordnen Samples Gruppen mit verschiedenen Auflösungen zu. Diese könnten unter Verwendung eines beliebigen Hard-Clustering-Algorithmus erzeugt werden, der die Steuerung der Anzahl der Cluster in irgendeiner Weise ermöglicht. Dies könnte beispielsweise eine Reihe von Samples sein, die mit |$k$|-means mit |$k\,\, = \,\,1,2,3$| wie in Fig. 1. Wir sortieren diese Cluster so, dass sie nach zunehmender Auflösung (| $ k $ |) geordnet sind, und betrachten dann Paare benachbarter Cluster. Jeder Cluster |${c_{k,\,\,i}}$/ (wobei /$i\,\, = \,\,1,\,\, \ ldots ,\,\,n$/ und /$n$/ ist die Anzahl der Cluster bei Auflösung /$k$/) wird mit jedem Cluster verglichen /${c_{k + 1,\,\,j}}$/ (wobei /$j\,\, = \,\,1,\,\, \ ldots ,\,\,m$/ und |$m$/ ist die Anzahl der Cluster mit der Auflösung /$k + 1$/). Die Überlappung zwischen den beiden Clustern wird als die Anzahl der Abtastwerte berechnet, die beiden |${c_{k,\,\,i}}$| und |${c_{k + 1,\,\,j}} $| zugewiesen sind. Als nächstes erstellen wir ein Diagramm, in dem jeder Knoten ein Cluster und jede Kante eine Überlappung zwischen zwei Clustern ist. Während wir diesen Graphen der Einfachheit halber als Baum bezeichnen, kann er korrekter als Polybaum beschrieben werden, ein Sonderfall eines gerichteten azyklischen Graphen, bei dem der zugrunde liegende ungerichtete Graphen ein Baum ist .

Abbildung 1:

Abbildung der Schritte, die zum Erstellen eines Clusterbaums erforderlich sind. Zunächst muss ein Dataset mit unterschiedlichen Auflösungen gruppiert werden. Die Überlappung in Stichproben zwischen Clustern mit benachbarten Auflösungen wird berechnet und zur Berechnung des Anteils für jede Kante verwendet. Schließlich werden die Kanten gefiltert und der Graph als Baum visualisiert.

Abbildung 1:

Abbildung der Schritte, die zum Erstellen eines Clusterbaums erforderlich sind. Zunächst muss ein Dataset mit unterschiedlichen Auflösungen gruppiert werden. Die Überlappung in Stichproben zwischen Clustern mit benachbarten Auflösungen wird berechnet und zur Berechnung des Anteils für jede Kante verwendet. Schließlich werden die Kanten gefiltert und der Graph als Baum visualisiert.

Viele der Kanten werden leer sein, z.B. in Fig. 1 keine Proben in Cluster A bei / $ k\,\, = \,\,2$| am Ende in Cluster B bei / $ k\,\, = \,\,3$|. In einigen Datensätzen kann es auch Kanten geben, die nur wenige Stichproben enthalten. Diese Kanten sind nicht informativ und führen zu einem überladenen Baum. Eine naheliegende Lösung zum Entfernen nicht aussagekräftiger Kanten mit niedriger Anzahl besteht darin, sie mithilfe eines Schwellenwerts für die Anzahl der von ihnen repräsentierten Samples zu filtern. In diesem Fall ist die Anzahl der Stichproben jedoch nicht die richtige Statistik, da Kanten mit niedrigeren Auflösungen und solche, die größere Cluster verbinden, bevorzugt werden. Stattdessen definieren wir die proportionale Metrik als das Verhältnis zwischen der Anzahl der Samples an der Kante und der Anzahl der Samples in dem Cluster, auf den sie zusteuert. Diese Metrik zeigt die Bedeutung der Kante für den Cluster mit höherer Auflösung unabhängig von der Clustergröße. Wir können dann einen Schwellenwert auf den Anteil anwenden, um weniger informative Kanten zu entfernen.

Der endgültige Graph kann dann visualisiert werden. Theoretisch könnte jeder Graph-Layout-Algorithmus verwendet werden. Für das clustree-Paket haben wir jedoch die beiden Algorithmen verwendet, die speziell für Baumstrukturen entwickelt wurden, die im igraph-Paket verfügbar sind. Dies sind das Reingold-Tilford-Baumlayout, bei dem übergeordnete Knoten über ihren untergeordneten Knoten platziert werden , und das Sugiyama-Layout, bei dem Knoten eines gerichteten azyklischen Graphen in Ebenen platziert werden, während die Anzahl der sich kreuzenden Kanten minimiert wird . Beide Algorithmen können attraktive Layouts erzeugen; Daher haben wir nicht die Notwendigkeit gefunden, einen bestimmten Layoutalgorithmus für das Clustern von Bäumen zu entwerfen. Standardmäßig verwendet das Clustree-Paket beim Erstellen eines Layouts nur eine Teilmenge von Kanten, insbesondere die Kanten mit dem höchsten Anteil für jeden Knoten. Wir haben festgestellt, dass dies oft zu besser interpretierbaren Visualisierungen führt; Benutzer können jedoch auf Wunsch alle Kanten verwenden.

Unabhängig vom verwendeten Layout platziert die endgültige Visualisierung die Clusterknoten in einer Reihe von Ebenen, wobei jede Ebene eine andere Clusterauflösung aufweist und Kanten den Übergang von Samples durch diese Auflösungen anzeigen. Die Kanten werden entsprechend der Anzahl der Samples, die sie darstellen, eingefärbt, und die Proportionsmetrik wird verwendet, um die Kantentransparenz zu steuern und wichtigere Kanten hervorzuheben. Standardmäßig wird die Knotengröße entsprechend der Anzahl der Samples im Cluster angepasst, und ihre Farbe gibt die Clusterauflösung an. Das clustree-Paket enthält auch Optionen zum Steuern der Ästhetik von Knoten basierend auf den Attributen von Beispielen in den Clustern, die sie darstellen, wie in den folgenden Beispielen gezeigt.

Während ein Clusterbaum dem durch hierarchisches Clustering erzeugten Baum konzeptionell ähnlich ist, gibt es einige wichtige Unterschiede. Am offensichtlichsten ist, dass ein hierarchischer Clusterbaum das Ergebnis eines bestimmten Clusteralgorithmus ist und die Beziehungen zwischen einzelnen Stichproben zeigt, während die hier beschriebenen Clusterbäume unabhängig von der Clustermethode sind und Beziehungen zwischen Clustern zeigen. Die Zweige eines hierarchischen Baums zeigen, wie der Clustering-Algorithmus Stichproben zusammengeführt hat. Im Gegensatz dazu zeigen Kanten in einem Clusterbaum, wie sich Samples zwischen Clustern bewegen, wenn sich die Auflösung ändert und Knoten möglicherweise mehrere übergeordnete Knoten haben. Es ist zwar möglich, Informationen über Beispiele in einem hierarchischen Baum zu überlagern, dies wird jedoch nicht häufig durchgeführt, sondern ist ein Schlüsselmerkmal des Clustree-Pakets und wie Clustering-Bäume in der Praxis verwendet werden können.

Eine Demonstration mit Simulationen

Um zu demonstrieren, wie ein Clusterbaum in verschiedenen Situationen aussehen kann und wie er sich verhält, wenn ein Datensatz überclustert ist, stellen wir einige anschauliche Beispiele mit einfachen Simulationen vor (siehe Methoden). Wir präsentieren fünf Szenarien: zufälliges gleichmäßiges Rauschen (Simulation A), ein einzelner Cluster (Simulation B), zwei Cluster (Simulation C), drei Cluster (Simulation D) und vier Cluster (Simulation E). Jeder Cluster besteht aus 1.000 Stichproben (Punkten), die aus einer 100-dimensionalen Normalverteilung generiert wurden, und jeder synthetische Datensatz wurde mit |$ k $ / gruppiert – bedeutet Clustering mit | $k\,\, = \,\,1,\,\, \ ldots , 8$|. Anschließend verwenden wir das Clustree-Paket, um Clusterbäume für jeden Datensatz zu erstellen (Abb. 2).

Abbildung 2:

Fünf synthetische Datensätze zur Demonstration von Clustering-Bäumen. Für jedes Dataset wird ein Streudiagramm der ersten beiden Hauptkomponenten, ein Standardclusterbaum und ein Clusterbaum mit Knoten angezeigt, die durch den SC3-Stabilitätsindex von lila (niedrigster Wert) bis gelb (höchster Wert) gefärbt sind. Die fünf Datensätze enthalten: (A) zufälliges gleichmäßiges Rauschen, (B) einen einzelnen Cluster, (C) zwei Cluster, (D) drei Cluster und (E) vier Cluster.

Abbildung 2:

Fünf synthetische Datensätze zur Demonstration von Clustering-Bäumen. Für jedes Dataset wird ein Streudiagramm der ersten beiden Hauptkomponenten, ein Standardclusterbaum und ein Clusterbaum mit Knoten angezeigt, die durch den SC3-Stabilitätsindex von lila (niedrigster Wert) bis gelb (höchster Wert) gefärbt sind. Die fünf Datensätze enthalten: (A) zufälliges gleichmäßiges Rauschen, (B) einen einzelnen Cluster, (C) zwei Cluster, (D) drei Cluster und (E) vier Cluster.

Wenn wir uns die ersten beiden Beispiele ansehen (einheitliches Rauschen und ein einzelner Cluster), können wir deutlich sehen, wie sich ein Clusterbaum verhält, wenn ein Clusteralgorithmus mehr Cluster zurückgibt, als wirklich in einem Dataset vorhanden sind. Neue Cluster beginnen sich aus mehreren vorhandenen Clustern zu bilden, und viele Proben wechseln zwischen Zweigen des Baumes, was zu Kanten mit geringem Anteil führt. Instabile Cluster können auch auftreten und dann verschwinden, wenn die Auflösung zunimmt, wie in Abb. 2E. Wenn wir den Datensätzen mehr Struktur hinzufügen, beginnen die Clusterbäume, klare Äste zu bilden, und Kanten mit niedrigem Anteil sind in der Regel auf Abschnitte des Baumes beschränkt. Indem wir uns ansehen, welche Cluster stabil sind und wo Kanten mit niedrigem Anteil entstehen, können wir ableiten, welche Bereiche des Baumes wahrscheinlich das Ergebnis echter Cluster sind und welche durch Überclustering verursacht werden.

Der zweite Clusterbaum für jeden Datensatz zeigt Knoten, die gemäß dem SC3-Stabilitätsindex für jeden Cluster gefärbt sind. Wie zu erwarten, erhält in den ersten beiden Beispielen kein Cluster einen hohen Stabilitätswert. Während wir im Clustering-Baum für das Zwei-Cluster-Beispiel (Simulation C) deutlich zwei Zweige sehen, spiegelt sich dies nicht in den SC3-Scores wider. Kein Cluster erhält einen hohen Stabilitätswert, höchstwahrscheinlich aufgrund der großen Anzahl von Samples, die sich mit zunehmender Auflösung zwischen Clustern bewegen. Da in den simulierten Datensätzen mehr echte Cluster vorhanden sind, können die SC3-Stabilitätswerte die richtige Auflösung besser vorhersagen. Es ist jedoch wichtig, die Stabilitätswerte aller Cluster bei einer bestimmten Auflösung zu betrachten, da die Verwendung des höchsten individuellen Clusterstabilitätswerts dazu führen kann, dass die falsche Auflösung verwendet wird, wie im Beispiel mit vier Clustern (Simulation E) zu sehen ist. Diese Beispiele zeigen, wie Clustering-Bäume verwendet werden können, um vorhandene Clustering-Metriken auf eine Weise anzuzeigen, die bei der Parameterauswahl hilfreich sein kann.

Ein einfaches Beispiel

Um den Aufbau eines Clusterbaums weiter zu veranschaulichen, werden wir ein Beispiel anhand des klassischen Iris-Datensatzes durcharbeiten . Dieser Datensatz enthält Messungen der Kelchblattlänge, Kelchblattbreite, Blütenblattlänge und Blütenblattbreite von 150 Irisblüten, 50 von jeder der drei Arten: Iris setosa, Iris versicolor und Iris virginica. Der Iris-Datensatz wird häufig als Beispiel für Clustering- und Klassifizierungsprobleme verwendet, wobei sich die I. setosa-Stichproben signifikant von den anderen Stichproben unterscheiden und linear von diesen trennbar sind. Wir haben diesen Datensatz mit |$k $/ gruppiert -bedeutet Clustering mit /$k\,\, = \,\,1,\,\, \ ldots,5$/ und erzeugt den in Fig. 3A.

Abbildung 3:

Clustering-Bäume basierend auf | $ k $/ – bedeutet Clustering des Iris-Datensatzes. (A) Knoten werden entsprechend dem Wert von | $ k $ | gefärbt und entsprechend der Anzahl der Samples, die sie darstellen, sortiert. Die Kanten werden entsprechend der Anzahl der Proben gefärbt (von Blau für wenige bis Gelb für viele). Die Transparenz wird entsprechend der Proportion angepasst, wobei stärkere Linien Kanten zeigen, die für den Cluster mit höherer Auflösung wichtiger sind. Cluster-Labels werden zufällig durch den | $ k $ |-means-Algorithmus zugewiesen. (B) Derselbe Baum mit der Knotenfärbung wurde geändert, um die mittlere Blütenblattlänge der Proben in jedem Cluster anzuzeigen.

Abbildung 3:

Clustering-Bäume basierend auf | $ k $/ – bedeutet Clustering des Iris-Datensatzes. (A) Knoten werden entsprechend dem Wert von | $ k $ | gefärbt und entsprechend der Anzahl der Samples, die sie darstellen, sortiert. Die Kanten werden entsprechend der Anzahl der Proben gefärbt (von Blau für wenige bis Gelb für viele). Die Transparenz wird entsprechend der Proportion angepasst, wobei stärkere Linien Kanten zeigen, die für den Cluster mit höherer Auflösung wichtiger sind. Cluster-Labels werden zufällig durch den | $ k $ |-means-Algorithmus zugewiesen. (B) Derselbe Baum mit der Knotenfärbung wurde geändert, um die mittlere Blütenblattlänge der Proben in jedem Cluster anzuzeigen.

Wir sehen, dass ein Zweig des Baumes deutlich unterschieden ist (vermutlich I. setosa) und unabhängig von der Anzahl der Cluster unverändert bleibt. Auf der anderen Seite sehen wir, dass der Cluster bei |$k\,\, = \,\,2$| teilt sich sauber in zwei Cluster (vermutlich I. versicolor und I. virginica) bei / $ k\,\, = \,\,3$|. Wenn wir uns jedoch zu | $k bewegen\,\, = \,\,4$| und /$k\,\, = \,\,5$|, wir sehen Cluster, die aus mehreren Zweigen mit weniger proportionalen Kanten gebildet werden. Wie wir in den simulierten Beispielen gesehen haben, kann diese Art von Muster darauf hindeuten, dass die Daten überfüllt sind und wir begonnen haben, künstliche Gruppierungen einzuführen.

Wir können unsere Annahme überprüfen, dass der distinct-Zweig die I. setosa-Beispiele darstellt und dass die anderen beiden Cluster bei /$k\,\, = \,\,3$| sind I. versicolor und I. virginica durch Überlagerung einiger bekannter Informationen über die Proben. In Fig. 3B wir haben die Knoten nach der mittleren Blütenblattlänge der Proben gefärbt, die sie enthalten. Wir können jetzt sehen, dass Cluster im distinct Zweig die kürzesten Blütenblätter haben, wobei Cluster 1 bei / $k\,\, = \,\,3$| mit einer Zwischenlänge und Cluster 3 mit den längsten Blütenblättern. Es ist bekannt, dass dieses Merkmal die Proben in die erwarteten Arten aufteilt, wobei I. setosa im Durchschnitt die kürzesten Blütenblätter, I. versicolor eine mittlere Länge und I. virginica die längste hat.

Obwohl dies ein sehr einfaches Beispiel ist, werden einige der Vorteile der Anzeige eines Clusterbaums hervorgehoben. Wir erhalten einige Hinweise auf die korrekte Clusterauflösung, indem wir die Kanten untersuchen, und wir können bekannte Informationen überlagern, um die Qualität des Clusters zu bewerten. Wenn wir zum Beispiel beobachten würden, dass alle Cluster die gleiche mittlere Blütenblattlänge hatten, würde dies darauf hindeuten, dass das Clustering nicht erfolgreich war, da wir wissen, dass dies ein wichtiges Merkmal ist, das die Arten trennt. Wir könnten möglicherweise mehr erfahren, indem wir uns ansehen, welche Samples Kanten mit niedrigem Anteil folgen, oder indem wir eine Reihe von Features überlagern, um zu verstehen, was bestimmte Cluster zum Teilen bringt.

Clustering-Bäume für scRNA-seq-Daten

Ein Bereich, der begonnen hat, Clustering-Techniken intensiv zu nutzen, ist die Analyse von scRNA-seq-Daten. scRNA-Sequenzierung ist eine kürzlich entwickelte Technologie, die messen kann, wie Gene in Tausenden bis Millionen von einzelnen Zellen exprimiert werden . Diese Technologie wurde schnell in Bereichen wie der Entwicklungsbiologie und Immunologie eingesetzt, in denen es wertvoll ist, Informationen aus einzelnen Zellen zu erhalten, anstatt Messungen durchzuführen, die über die vielen verschiedenen Zellen in einer Probe mit älteren RNA-Seq-Technologien gemittelt werden. Eine Schlüsselanwendung für scRNA-seq ist es, die verschiedenen Zelltypen in einer Probe eines komplexen Gewebes zu entdecken und abzufragen. In dieser Situation wird Clustering typischerweise verwendet, um ähnliche Zellen basierend auf ihren Genexpressionsprofilen zu gruppieren. Unterschiede in der Genexpression zwischen Gruppen können dann verwendet werden, um die Identität oder Funktion dieser Zellen abzuleiten . Die Anzahl der Zelltypen (Cluster) in einem scRNA-seq-Datensatz kann abhängig von Faktoren wie dem untersuchten Gewebe, seinem Entwicklungs- oder Umweltzustand und der Anzahl der erfassten Zellen variieren. Oft ist die Anzahl der Zelltypen nicht bekannt, bevor die Daten generiert werden, und einige Stichproben können Dutzende von Clustern enthalten. Daher ist die Entscheidung, welche Clusterauflösung verwendet werden soll, eine wichtige Überlegung in dieser Anwendung.

Als Beispiel für die Verwendung von Clustering-Bäumen im scRNA-seq-Kontext betrachten wir einen häufig verwendeten PBMC-Datensatz (Peripheral Blood Mononuclear Cell). Dieser Datensatz wurde ursprünglich von 10x Genomics erstellt und enthält 2.700 mononukleäre Zellen aus peripherem Blut, die eine Reihe gut untersuchter Immunzelltypen darstellen . Wir analysierten diesen Datensatz mit dem Seurat-Paket , einem häufig verwendeten Toolkit für die scRNA-seq-Analyse, und befolgten die Anweisungen in ihrem Lernprogramm, mit Ausnahme der Variation des Clusterauflösungsparameters von Null bis 5 (siehe Methoden). Seurat verwendet einen diagrammbasierten Clusteralgorithmus, und der Auflösungsparameter steuert die Partitionierung dieses Diagramms, wobei höhere Werte zu mehr Clustern führen. Die aus dieser Analyse erzeugten Clusterbäume sind in Abb. 4.

Abbildung 4:

Zwei Clusterbäume eines Datensatzes von 2.700 PBMCs. (A) Ergebnisse aus dem Clustering mit Seurat mit Auflösungsparametern von Null bis 1. Bei einer Auflösung von 0,1 bilden sich vier Hauptzweige, von denen sich einer bis zu einer Auflösung von 0,4 weiter aufteilt, wonach sich nur geringfügige Änderungen ergeben. (B) Auflösungen von Null bis 5. Bei den höchsten Auflösungen sehen wir viele Kanten mit niedrigem Anteil, was auf Clusterinstabilität hinweist. Seurat beschriftet Cluster nach ihrer Größe, wobei Cluster 0 der größte ist.

Abbildung 4:

Zwei Clusterbäume eines Datensatzes von 2.700 PBMCs. (A) Ergebnisse aus dem Clustering mit Seurat mit Auflösungsparametern von Null bis 1. Bei einer Auflösung von 0,1 bilden sich vier Hauptzweige, von denen sich einer bis zu einer Auflösung von 0,4 weiter aufteilt, wonach sich nur geringfügige Änderungen ergeben. (B) Auflösungen von Null bis 5. Bei den höchsten Auflösungen sehen wir viele Kanten mit niedrigem Anteil, was auf Clusterinstabilität hinweist. Seurat beschriftet Cluster nach ihrer Größe, wobei Cluster 0 der größte ist.

Die Clusterbaumbedeckung von Null bis 1 in Schritten von 0,1 (Fig. 4A) zeigt, dass sich bei einer Auflösung von nur 0,1 vier Hauptzweige bilden. Einer dieser Zweige, beginnend mit Cluster 3 mit einer Auflösung von 0,1, bleibt unverändert, während der Zweig, der mit Cluster 2 beginnt, sich nur einmal mit einer Auflösung von 0,4 teilt. Der größte Teil der Verzweigung tritt in dem Zweig auf, der mit Cluster 1 beginnt, bei dem konsequent Unterzweige abgespalten werden, um mit zunehmender Auflösung neue Cluster zu bilden. Es gibt zwei Stabilitätsbereiche in diesem Baum – bei Auflösung 0,4–0,5 und Auflösung 0,7-1,0, wobei sich der Zweig ab Cluster 0 in zwei Teile teilt.

Abb. 4B zeigt einen Clusterbaum mit einem größeren Bereich von Auflösungen, von Null bis 5 in Schritten von 0,5. Wenn wir uns diesen Bereich ansehen, können wir sehen, was passiert, wenn der Algorithmus gezwungen ist, mehr Cluster zu erzeugen, als wahrscheinlich wirklich in diesem Datensatz vorhanden sind. Wenn Übercluster auftreten, sehen wir mehr Kanten mit niedrigem Anteil und neue Cluster, die sich aus mehreren übergeordneten Clustern bilden. Dies deutet darauf hin, dass diese Bereiche des Baums instabil sind und dass die neuen Cluster, die gebildet werden, wahrscheinlich keine echten Gruppen im Dataset darstellen.

Bekannte Markergene werden üblicherweise verwendet, um die Zelltypen zu identifizieren, denen bestimmte Cluster entsprechen. Das Überlagern von Informationen zur Genexpression auf einen Clusterbaum bietet eine alternative Ansicht, mit der angezeigt werden kann, wann Cluster mit reinen Zellpopulationen gebildet werden. Abbildung 5 zeigt den PBMC-Clusterbaum in Abb. 4A mit der Expression einiger bekannter Markergene überlagert.

Abbildung 5:

Clustering-Bäume des PBMC-Datensatzes, die gemäß der Expression bekannter Marker gefärbt sind. Die Knotenfarben geben den Durchschnitt der log2-Genzählungen der Proben in jedem Cluster an. CD19 (A) identifiziert B-Zellen, CD14 (B) zeigt eine Population von Monozyten, CD3D (C) ist ein Marker für T-Zellen und CCR7 (D) zeigt die Aufteilung zwischen Speicher- und naiven CD4-T-Zellen.

Abbildung 5:

Clustering-Bäume des PBMC-Datensatzes, die gemäß der Expression bekannter Marker gefärbt sind. Die Knotenfarben geben den Durchschnitt der log2-Genzählungen der Proben in jedem Cluster an. CD19 (A) identifiziert B-Zellen, CD14 (B) zeigt eine Population von Monozyten, CD3D (C) ist ein Marker für T-Zellen und CCR7 (D) zeigt die Aufteilung zwischen Speicher- und naiven CD4-T-Zellen.

Durch Hinzufügen dieser zusätzlichen Informationen können wir einige der Zelltypen schnell identifizieren. CD19 (Abb. 5A) ist ein Marker für B-Zellen und wird im deutlichsten Zweig des Baumes deutlich exprimiert. CD14 (Abb. 5B) ist ein Marker für einen Monozytentyp, der stärker exprimiert wird, wenn wir einem der zentralen Zweige folgen, sodass wir sehen können, welche Auflösung eine reine Population dieser Zellen identifiziert. CD3D (Abb. 5C) ist ein allgemeiner Marker für T-Zellen und wird in zwei getrennten Zweigen exprimiert, einer, der sich in eine niedrige und eine hohe Expression von CCR7 aufteilt (Abb. 5D), das Gedächtnis und naive CD4-T-Zellen trennt. Durch Hinzufügen der Expression bekannter Gene zu einem Clusterbaum können wir sehen, ob mehr Populationen identifiziert werden können, wenn die Clusterauflösung erhöht wird und ob Cluster mit der bekannten Biologie übereinstimmen. Für den größten Teil des Seurat-Tutorials wird eine Auflösung von 0,6 verwendet, aber die Autoren stellen fest, dass durch die Umstellung auf eine Auflösung von 0,8 eine Aufteilung zwischen Speicher und naiven CD4-T-Zellen erreicht werden kann. Dies ist eine Aufteilung, die durch Betrachten des Clusterbaums unter Hinzufügung früherer Informationen erwartet werden kann.

Diskussion

Das Clustern ähnlicher Stichproben in Gruppen ist in vielen Bereichen eine nützliche Technik, aber Analysten stehen häufig vor dem schwierigen Problem, zu entscheiden, welche Clusterauflösung verwendet werden soll. Herkömmliche Ansätze für dieses Problem berücksichtigen in der Regel jeweils einen einzelnen Cluster oder eine Probe und können auf Vorkenntnissen über Probenetiketten beruhen. Hier präsentieren wir Clustering Trees, eine alternative Visualisierung, die die Beziehungen zwischen Clustern mit mehreren Auflösungen zeigt. Clusterbäume können zwar nicht direkt vorschlagen, welche Clusterauflösung verwendet werden soll, sie können jedoch ein nützliches Werkzeug sein, um diese Entscheidung zu treffen, insbesondere in Kombination mit anderen Metriken oder Domänenwissen.

Clustering Trees zeigen an, wie Cluster mit zunehmender Auflösung aufgeteilt werden, welche Cluster klar voneinander getrennt und unterschieden sind, welche miteinander verwandt sind und wie Stichproben Gruppen ändern, wenn mehr Cluster erzeugt werden. Obwohl Clustering-Bäume den Bäumen ähneln können, die durch hierarchisches Clustering erzeugt werden, gibt es einige wichtige Unterschiede. Hierarchisches Clustering berücksichtigt die Beziehungen zwischen einzelnen Stichproben und bietet keine offensichtliche Möglichkeit, Gruppen zu bilden. Im Gegensatz dazu sind Clustering-Bäume unabhängig von einer bestimmten Clustering-Methode und zeigen die Beziehungen zwischen Clustern und nicht Stichproben mit unterschiedlichen Auflösungen, von denen jede für weitere Analysen verwendet werden könnte.

Um die Verwendung von Clustering-Bäumen zu veranschaulichen, haben wir eine Reihe von Simulationen und zwei Beispiele für reale Analysen vorgestellt, eine mit dem klassischen Iris-Datensatz und eine zweite basierend auf einem komplexen scRNA-seq-Datensatz. Beide Beispiele zeigen, wie ein Clusterbaum bei der Entscheidung über die zu verwendende Auflösung helfen kann und wie das Überlagern zusätzlicher Informationen zur Validierung dieser Cluster beitragen kann. Dies ist insbesondere für die scRNA-seq-Analyse von Nutzen, da diese Datensätze häufig groß und verrauscht sind und eine unbekannte Anzahl von Zelltypen oder Clustern enthalten.

Auch wenn die Bestimmung der Anzahl der Cluster kein Problem darstellt, kann das Clustern von Bäumen ein wertvolles Werkzeug sein. Sie bieten eine kompakte, informationsdichte Visualisierung, mit der zusammengefasste Informationen in einer Reihe von Clustern angezeigt werden können. Durch Ändern des Erscheinungsbilds von Clusterknoten basierend auf Attributen der von ihnen repräsentierten Stichproben können Clusterings ausgewertet und Identitäten von Clustern festgelegt werden. Clustering-Bäume haben möglicherweise Anwendungen in vielen Bereichen und könnten in Zukunft flexibler angepasst werden, z. B. durch die Aufnahme von Fuzzy-Clustern. Es können auch allgemeinere Clusterdiagramme verwendet werden, um Ergebnisse aus mehreren Parametersätzen oder Clustermethoden zu kombinieren.

Methoden

clustree

Das clustree-Softwarepaket (v0.2.0) wurde für die statistische Programmiersprache R (v3.5.0) erstellt. Es basiert auf dem ggraph-Paket (v1.0.1), das auf den Paketen ggplot2 (v2.2.1) und tidygraph (v1.1.0) basiert. Clustering-Bäume werden mit dem Reingold-Tilford-Baumlayout oder dem Sugiyama-Layout angezeigt; Beide sind als Teil des igraph-Pakets (v1.2.1) verfügbar.

Die hier gezeigten Bildtafeln wurden mit dem Paket cowplot (v0.9.2) erstellt.

Simulationen

Simulierte Datensätze wurden durch Generieren von Punkten aus statistischen Verteilungen erstellt. Die erste Simulation (Simulation A) besteht aus 1.000 Punkten, die zufällig aus einem 100-dimensionalen Raum mit einer gleichmäßigen Verteilung zwischen Null und 10 generiert werden. Simulation B besteht aus einem einzelnen normalverteilten Cluster von 1.000 Punkten in 100 Dimensionen. Das Zentrum dieses Clusters wurde aus einer Normalverteilung mit Mittelwert Null und Standardabweichung 10 ausgewählt. Punkte wurden dann um dieses Zentrum aus einer Normalverteilung mit Mittelwert gleich dem Mittelpunkt und einer Standardabweichung von 5 erzeugt. Die restlichen drei Simulationen wurden durch Hinzufügen zusätzlicher Cluster erstellt. Um eine bekannte Beziehung zwischen Clustern zu haben, wurde das Zentrum für die neuen Cluster durch Manipulieren der Zentren bestehender Cluster erstellt. Für Cluster 2 wurde aus einer Normalverteilung mit Mittelwert Null und Standardabweichung 2 ein zufälliger 100-dimensionaler Vektor erzeugt und zum Zentrum für Cluster 1 addiert. Zentrum 3 war der Mittelwert aus Zentrum 1 und Zentrum 2 plus einem Zufallsvektor aus einer Normalverteilung mit Mittelwert Null und Standardabweichung 5. Um eine ähnliche Beziehung zwischen den Clustern 3 und 4 wie zwischen den Clustern 1 und 2 zu gewährleisten, wurde das Zentrum 4 durch Addition der Hälfte des Vektors, der zur Erzeugung des Zentrums 2 verwendet wurde, zum Zentrum 3 plus eines weiteren Vektors aus einer Normalverteilung mit Mittelwert Null und Standardabweichung 2 erzeugt. Die Punkte für jeden Cluster wurden auf die gleiche Weise wie für Cluster 1 generiert. Simulation C besteht aus den Punkten in den Clustern 1 und 2; Simulation D besteht aus den Clustern 1, 2 und 3; und Simulation E besteht aus Clustern 1, 2, 3 und 4. Jeder simulierte Datensatz wurde mit der Funktion „kmeans“ im Statistikpaket mit Werten von | $ k $ | von 1 bis 8, maximal 100 Iterationen und 10 zufälligen Startpositionen gruppiert. Die Clusterbaumvisualisierungen wurden mit dem Clustree-Paket mit dem Baumlayout erstellt. Die simulierten Datensätze und der zu ihrer Erstellung verwendete Code sind im Repository für diesen Artikel verfügbar .

Iris-Datensatz

Der Iris-Datensatz ist als Teil von R verfügbar. Wir haben diesen Datensatz mithilfe der Funktion „kmeans“ im stats-Paket mit Werten von | $ k $ | von 1 bis 5 gruppiert. Jeder Wert von / $ k $/ wurde mit maximal 100 Iterationen und mit 10 zufälligen Startpositionen gruppiert. Das Clustree-Paket wurde verwendet, um die Ergebnisse mithilfe des Sugiyama-Layouts zu visualisieren. Das Clustered Iris-Dataset ist als Teil des Clustree-Pakets verfügbar.

PBMC-Datensatz

Der PBMC-Datensatz wurde von der Seurat-Tutorial-Seite heruntergeladen , und dieses Tutorial wurde für den größten Teil der Analyse mit Seurat Version 2.3.1 befolgt. Kurz gesagt, Zellen wurden basierend auf der Anzahl der Gene, die sie exprimieren, und dem Prozentsatz der Zählungen, die mitochondrialen Genen zugeordnet sind, gefiltert. Die Daten wurden dann log-normalisiert und 1.838 variable Gene identifiziert. Mögliche Störvariablen (Anzahl der eindeutigen molekularen Identifikatoren und prozentuale mitochondriale Expression) wurden aus dem Datensatz regressiert, bevor eine Hauptkomponentenanalyse der identifizierten variablen Gene durchgeführt wurde. Die ersten 10 Hauptkomponenten wurden dann verwendet, um einen Graphen zu erstellen, der unter Verwendung der Louvain-Modularitätsoptimierung mit Auflösungsparametern im Bereich von Null bis 5, in Schritten von 0,1 zwischen Null und 1 und dann in Schritten von 0,5 in Cluster partitioniert wurde. Clustree wurde dann verwendet, um die Ergebnisse mithilfe des Baumlayouts zu visualisieren.

Verfügbarkeit des Quellcodes und Anforderungen

Projektname: clustree.

Projekt-Homepage: https://github.com/lazappi/clustree.

Betriebssysteme: Linux, macOS, Windows

Programmiersprache: R (> = 3.4)

Sonstige Anforderungen: Keine

Lizenz: GPL-3

Einschränkungen für Nicht-Akademiker: Keine

RRID:SCR_016293

Verfügbarkeit unterstützender Daten

Das Clustree-Paket ist bei CRAN erhältlich und wird auf GitHub entwickelt . Der Code und die Datensätze, die für die hier vorgestellte Analyse verwendet werden, sind auch bei GitHub verfügbar . Der Clustered Iris-Datensatz ist als Teil von clustree enthalten, und der PBMC-Datensatz kann von der Seurat-Tutorial-Seite oder dem Paper GitHub-Repository heruntergeladen werden. Snapshots des Codes sind im GigaScience Repository GigaDB verfügbar.

Abkürzungen

PBMC: periphere mononukleäre Blutzelle; scRNA-seq: Einzelzell-RNA-Sequenzierung.

Konkurrierende Interessen

Die Autoren erklären, dass sie keine konkurrierenden Interessen haben.

Finanzierung

L.Z. wird durch ein Stipendium des Australian Government Research Training Program unterstützt. A.O. wird durch ein Career Development Fellowship des National Health and Medical Research Council (APP1126157) unterstützt. Das Murdoch Children’s Research Institute wird durch das Operational Infrastructure Support Program der viktorianischen Regierung unterstützt.

Autorenbeiträge

L.Z. entwarf den Clustering Tree-Algorithmus, schrieb das Clustree-Softwarepaket und entwarf das Manuskript. A.O. betreute das Projekt und kommentierte das Manuskript.

DANKSAGUNG

Vielen Dank an Marek Cmero für die Kommentare zu einem Entwurf des Manuskripts und die Rezensenten für ihre Kommentare und Vorschläge.

Schmiede
WIR

.

Clusteranalyse multivariater Daten: Effizienz versus Interpretierbarkeit von Klassifikationen

.

Biometrie

.

1965

;

21

:

768

9

.

Macqueen
J

.

Einige Methoden zur Klassifizierung und Analyse multivariater Beobachtungen

. In

5. Berkeley Symposium über Mathematische Statistik und Wahrscheinlichkeit

,

1967

.

Lloyd
S

.

Quantisierung der kleinsten Quadrate in PCM

.

IEEE Trans Inf Theorie

.

1982

;

28

:

129

37

.

Kaufmann
L

,

Rousseeuw
PJ

.

Partitionierung um Medoids (Programm PAM). Finden von Gruppen in Daten

,

New Jersey, USA

.

John Wiley & Söhne, Inc

.

1990

. pp.

68

125

.

Ester
M

,

Kriegel
H-P

,

Sander
J

, et al.

Ein dichtebasierter Algorithmus zur Erkennung von Clustern in großen räumlichen Datenbanken mit Rauschen

.

Proceedings der Zweiten Internationalen Konferenz über Wissensentdeckung und Data Mining

.

Portland, Oregon

:

AAAI Presse

;

1996

. pp.

226

31

..

Verfügbar ab

:

Fraley
C

,

Flößerei
AE

.

Modellbasiertes Clustering, Diskriminanzanalyse und Dichteschätzung

.

J Bin Stat Assoc

.

2002

;

97

:

611

31

.

Thorndike
RL

.

Wer gehört in die Familie?

.

Psychometrie

.

1953

;

18

:

267

76

.

Rousseeuw
PJ

.

Silhouetten: eine grafische Hilfe zur Interpretation und Validierung der Clusteranalyse

.

J Berechnen Sie Appl Math

.

1987

;

20

:

53

65

.

Luxburg
U von

.

Clustering-Stabilität: ein Überblick

.

Grundlagen und Trends im maschinellen Lernen

.

2010

;

2

:

235

74

.

Ben-Hur
EIN

,

Elisseeff
EIN

,

Guyon
Ich

.

Eine stabilitätsbasierte Methode zum Ermitteln der Struktur in gruppierten Daten

.

Pac Symp Biocomput

.

2002

,

7

;

6

17

.

Kiselev
VY

,

Kirschner
K

,

Schaub
MT

et al.

SC3: Konsens-Clustering von Einzelzell-RNA-seq-Daten

.

Nat-Methoden

.

2017

;

14

:

483

6

.

Rebane
G

,

Perle
J

.

Die Wiederherstellung kausaler Poly-bäume aus statistischen Daten

.

2013

;

Verfügbar ab: http://arxiv.org/abs/1304.2736, Zugriff Mai 16, 2018

.

Csardi
G

,

Nepusz
T

.

Das igraph-Softwarepaket für komplexe Netzwerkforschung

.

Inter-komplexe Systeme

.

2006

;

1695

:

1

9

.

Reingold
EM

,

Tilford
JS

.

Ordentlichere Zeichnungen von Bäumen

.

IEEE Trans Software Eng

.

1981

;

SE-7

:

223

8

.

Sugiyama
K

,

Tagawa
S

,

Toda
M

.

Methoden zum visuellen Verständnis hierarchischer Systemstrukturen

.

IEEE Trans Syst Mann Cybern

.

1981

;

11

:

109

25

.

Anderson
E

.

Die Iris der Halbinsel Gaspe

.

Bulletin der American Iris Society

.

1935

;

59

:

2

5

.

Fischer
RA

.

Die Verwendung mehrerer Messungen in taxonomischen Problemen

.

Ann Eugen

.

1936

;

7

:

179

88

.

Tang
F

,

Barbacioru
C

,

Wang
Y

, et al.

mRNA-seq-Ganztranskriptomanalyse einer einzelnen Zelle

.

Nat-Methoden

.

2009

;

6

:

377

82

.

Stegle
O

,

Teichmann
SA

,

Marioni
JC

.

Rechnerische und analytische Herausforderungen in der Einzelzell-Transkriptomik

.

Nat Rev Genet

.

2015

;

16

:

133

45

.

Zheng
GXY

,

Terry
JM

,

Belgrader
P

, et al.

Massiv parallele digitale Transkriptionsprofilierung einzelner Zellen

.

Nat Commun

.

2017

;

8

:

14049

.

Satija
R

,

Farrell
JA

,

Gennert
D

, et al.

Räumliche Rekonstruktion von Einzelzell-Genexpressionsdaten

.

Nat Biotechnol

.

2015

;

33

:

495

502

.

Pedersen
TL

.

ggraph: Eine Implementierung der Grammatik von Grafiken für Graphen und Netzwerke

.

2018

.

Verfügbar ab: https://CRAN.R-project.org/package=ggraph, Zugriff am 21.Mai, 2018

Wickham
H

.

ggplot2: Elegante Grafiken für die Datenanalyse

.

München

:

Springer

;

2010

.

Pedersen
TL

.

tidygraph: Eine aufgeräumte API für die Diagrammmanipulation

.

2018

.

Verfügbar ab: https://CRAN.R-project.org/package=tidygraph, Zugriff Mai 21, 2018

Wilke
CO

.

cowplot: Optimiertes Plotthema und Plotanmerkungen für ‚ggplot2.‘

.

2018

.

Verfügbar ab: https://CRAN.R-project.org/package=cowplot, Zugriff Mai 21, 2018

Zappia
L

,

Oshlack
EIN

.

clustree-Papier GitHub Repository

,

2018

.

Verfügbar ab: https://github.com/Oshlack/clustree-paper, Zugriff am 21.Mai 2018

.

In:Satija Lab

.

Seurat PBMC3K Tutorial

. ;

2018

.

Verfügbar ab: https://satijalab.org/seurat/pbmc3k_tutorial.html, Zugriff Mai 21, 2018

Blondel
VD

,

Guillaume
J-L

,

Lambiotte
R

, et al.

Schnelle Entfaltung von Gemeinschaften in großen Netzwerken

.

J Stat Mech

.

IOP Verlag

;

2008

;

2008

:

P10008

.

Zappia
L

,

Oshlack
EIN

.

clustree: Visualisierung von Clustern mit unterschiedlichen Auflösungen

.

2018

.

Verfügbar ab: https://CRAN.R-project.org/package=clustree, Zugriff Mai 21, 2018

Zappia
L

,

Oshlack
EIN

.

clustree GitHub-Repository

. ;

2018

.

Verfügbar ab: https://github.com/lazappi/clustree, Zugriff am 21.Mai 2018

.

Zappia
L

,

Oshlack
EIN

.

Unterstützende Daten für „Clustering trees: a visualization for evaluating clusterings at multiple resolutions.“

.

GigaScience Datenbank

.

2018

. .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.