Árboles de clústeres: una visualización para evaluar clústeres a múltiples resoluciones

Abstracto

Las técnicas de clústeres se utilizan ampliamente en el análisis de grandes conjuntos de datos para agrupar muestras con propiedades similares. Por ejemplo, el agrupamiento se usa a menudo en el campo de la secuenciación de ARN unicelular para identificar diferentes tipos de células presentes en una muestra de tejido. Hay muchos algoritmos para realizar clústeres, y los resultados pueden variar sustancialmente. En particular, el número de grupos presentes en un conjunto de datos a menudo se desconoce, y el número de clústeres identificados por un algoritmo puede cambiar en función de los parámetros utilizados. Para explorar y examinar el impacto de la resolución de agrupamiento variable, presentamos árboles de agrupamiento. Esta visualización muestra las relaciones entre los clústeres en múltiples resoluciones, lo que permite a los investigadores ver cómo se mueven las muestras a medida que aumenta el número de clústeres. Además, la metainformación se puede superponer en el árbol para informar la elección de la resolución y guiar la identificación de los conglomerados. Ilustramos las características de los árboles agrupados utilizando una serie de simulaciones, así como dos ejemplos reales, el conjunto de datos iris clásico y un complejo conjunto de datos de secuenciación de ARN unicelular. Los árboles de agrupamiento se pueden producir utilizando el paquete clustree R, disponible en CRAN y desarrollado en GitHub.

Introducción

El análisis de clústeres se utiliza comúnmente para agrupar muestras similares en una amplia gama de aplicaciones. Por lo general, el objetivo de la agrupación es formar grupos de muestras que sean más similares entre sí que a las muestras de otros grupos. Mientras que los enfoques de agrupación difusa o suave asignan cada muestra a cada clúster con cierta probabilidad, y la agrupación jerárquica forma un árbol de muestras, la mayoría de los métodos forman grupos duros donde cada muestra se asigna a un solo grupo. Este objetivo se puede lograr de varias maneras, por ejemplo , considerando las distancias entre muestras (por ejemplo, |k k means|-means, PAM), las áreas de densidad en todo el conjunto de datos (por ejemplo, DBSCAN) o las relaciones con distribuciones estadísticas .

En muchos casos, el número de grupos que deben estar presentes en un conjunto de datos no se conoce de antemano, y decidir el número correcto de clústeres a usar es un desafío significativo. Para algunos algoritmos, como|k k means / -means clustering, el número de clústeres debe proporcionarse explícitamente. Otros métodos tienen parámetros que, directa o indirectamente, controlan la resolución de los clústeres y, por lo tanto, el número de clústeres producidos. Si bien hay métodos y estadísticas (como el método de codo y los gráficos de silueta ) diseñados para ayudar a los analistas a decidir qué resolución de agrupación usar, generalmente producen una sola puntuación que solo considera un solo conjunto de muestras o grupos a la vez.

Un enfoque alternativo sería considerar agrupamientos en múltiples resoluciones y examinar cómo las muestras cambian de agrupación a medida que aumenta el número de conglomerados. Esto ha dado lugar a una serie de medidas de estabilidad de agrupaciones , muchas de las cuales se basan en la agrupación de conjuntos de datos perturbados o submuestrados. Por ejemplo, el algoritmo explorador de modelos submuestra un conjunto de datos varias veces, agrupa cada conjunto de datos submuestrado en varias resoluciones y, a continuación, calcula una similitud entre los agrupamientos a la misma resolución para proporcionar una distribución de similitudes que pueda informar la elección de la resolución . Una medida de estabilidad de clústeres que no está basada en perturbaciones es la contenida en el paquete SC3 para datos de secuenciación de ARN unicelular en clústeres (scRNA-seq). Comenzando con un conjunto de etiquetas de clúster con diferentes resoluciones, cada clúster recibe una calificación, y se otorga una mayor estabilidad a los clústeres si comparten las mismas muestras que un clúster con otra resolución, pero se penaliza por tener una resolución más alta.

La visualización de árbol de agrupación en clústeres que presentamos aquí adopta un enfoque simple similar, sin calcular puntuaciones: (i) un conjunto de datos se agrupa utilizando cualquier algoritmo de agrupación en clústeres duros en múltiples resoluciones, produciendo conjuntos de nodos de clúster; (ii) la superposición entre clústeres en resoluciones adyacentes se utiliza para; y (iii) el gráfico resultante se presenta como un árbol. Este árbol se puede usar para examinar cómo se relacionan los cúmulos entre sí, qué cúmulos son distintos y cuáles inestables. En las siguientes secciones, describimos cómo construimos un árbol de este tipo y presentamos ejemplos de árboles construidos a partir de un conjunto de datos de agrupamiento clásico y un complejo conjunto de datos scRNA-seq. Las figuras mostradas aquí se pueden producir en R usando nuestro paquete clustree disponible públicamente. Aunque los árboles de agrupamiento no pueden proporcionar directamente una resolución de agrupamiento para usar, pueden ser una herramienta útil para explorar y visualizar la gama de opciones posibles.

Construyendo un árbol de clústeres

Para construir un árbol de clústeres, comenzamos con un conjunto de clústeres y asignamos muestras a grupos con varias resoluciones diferentes. Estos podrían ser producidos usando cualquier algoritmo de agrupación en clústeres duros que permita el control del número de clústeres de alguna manera. Por ejemplo, esto podría ser un conjunto de muestras agrupadas usando|k k means / -means con |k k\,\, = \,\,1,2,3$| como se muestra en la Fig. 1. Ordenamos estos agrupamientos de modo que estén ordenados por resolución creciente (|k k|/), luego consideramos pares de agrupamientos adyacentes. Cada clúster |${c_{k,\,\,i}}$| (donde |$i\,\, = \,\,1,\,\, \ldots ,\,\,n$| e |$$ n| es el número de grupos en la resolución |$k$|) es comparado con cada uno de los clústeres |${c_{k + 1,\,\,j}}$| (donde |$j\,\, = \,\,1,\,\, \ldots ,\,\,m$| e |$m$| es el número de grupos en la resolución |$k + 1$|). La superposición entre los dos grupos se calcula como el número de muestras que se asignan a |${c_{k,\,\,i}}$| e |${c_{k + 1,\,\,j}}$|. A continuación, construimos un gráfico donde cada nodo es un clúster y cada arista es una superposición entre dos clústeres. Si bien nos referimos a este gráfico como un árbol por simplicidad, puede describirse más correctamente como un politree, un caso especial de un gráfico acíclico dirigido donde el gráfico subyacente no dirigido es un árbol .Figura

1:

Ilustración de los pasos necesarios para construir un árbol de agrupamiento. En primer lugar, un conjunto de datos debe agruparse en diferentes resoluciones. La superposición de muestras entre grupos en resoluciones adyacentes se calcula y se utiliza para calcular la proporción para cada borde. Finalmente, los bordes se filtran y el gráfico se visualiza como un árbol.

Gráfico 1:

Ilustración de los pasos necesarios para construir un árbol de agrupamiento. En primer lugar, un conjunto de datos debe agruparse en diferentes resoluciones. La superposición de muestras entre grupos en resoluciones adyacentes se calcula y se utiliza para calcular la proporción para cada borde. Finalmente, los bordes se filtran y el gráfico se visualiza como un árbol.

Muchos de los bordes estarán vacíos, por ejemplo, en la Fig. 1 no hay muestras en el grupo A at / k k\,\, = \,\,2$| terminar en el grupo B en / k k\,\, = \,\,3$|. En algunos conjuntos de datos también puede haber bordes que contengan pocas muestras. Estos bordes no son informativos y resultan en un árbol desordenado. Una solución obvia para eliminar bordes poco informativos y de bajo recuento es filtrarlos utilizando un umbral en el número de muestras que representan. Sin embargo, en este caso, el recuento de muestras no es la estadística correcta para usar porque favorece los bordes a resoluciones más bajas y los que conectan grupos más grandes. En su lugar, definimos la métrica en proporción como la relación entre el número de muestras en el borde y el número de muestras en el clúster hacia el que va. Esta métrica muestra la importancia del borde para el clúster de mayor resolución independientemente del tamaño del clúster. A continuación, podemos aplicar un umbral a la proporción para eliminar los bordes menos informativos.

El gráfico final se puede visualizar. En teoría, se podría utilizar cualquier algoritmo de diseño gráfico. Sin embargo, para el paquete clustree, hemos hecho uso de los dos algoritmos diseñados específicamente para estructuras de árbol disponibles en el paquete igraph . Estos son el diseño de árbol Reingold-Tilford, que coloca los nodos principales por encima de sus hijos, y el diseño Sugiyama, que coloca los nodos de un gráfico acíclico dirigido en capas al tiempo que minimiza el número de bordes cruzados . Ambos algoritmos pueden producir diseños atractivos; como tal, no hemos encontrado la necesidad de diseñar un algoritmo de diseño específico para agrupar árboles. De forma predeterminada, el paquete clustree utiliza solo un subconjunto de aristas al construir un diseño, específicamente las aristas más altas en proporción para cada nodo. Hemos descubierto que esto a menudo conduce a visualizaciones más interpretables; sin embargo, los usuarios pueden elegir usar todos los bordes si lo desean.

Independientemente del diseño utilizado, la visualización final coloca los nodos del clúster en una serie de capas en las que cada capa tiene una resolución de clúster diferente y los bordes muestran la transición de las muestras a través de esas resoluciones. Los bordes se colorean de acuerdo con el número de muestras que representan, y la métrica en proporción se utiliza para controlar la transparencia de los bordes, resaltando los bordes más importantes. De forma predeterminada, el tamaño del nodo se ajusta en función del número de muestras del clúster y su color indica la resolución del clúster. El paquete clustree también incluye opciones para controlar la estética de los nodos en función de los atributos de las muestras en los clústeres que representan, como se muestra en los siguientes ejemplos.

Mientras que un árbol de agrupamiento es conceptualmente similar al árbol producido a través de agrupamiento jerárquico, hay algunas diferencias importantes. Los más obvios son que un árbol de agrupamiento jerárquico es el resultado de un algoritmo de agrupamiento particular y muestra las relaciones entre muestras individuales, mientras que los árboles de agrupamiento descritos aquí son independientes del método de agrupamiento y muestran las relaciones entre los grupos. Las ramas de un árbol jerárquico muestran cómo el algoritmo de agrupación en clústeres ha fusionado muestras. Por el contrario, los bordes de un árbol de agrupación muestran cómo las muestras se mueven entre los grupos a medida que cambia la resolución y los nodos pueden tener varios padres. Si bien es posible superponer información sobre muestras en un árbol jerárquico, esto no se hace comúnmente, pero es una característica clave del paquete clustree y cómo se podrían usar los árboles de agrupación en clústeres en la práctica.

Una demostración Con Simulaciones

Para demostrar cómo puede verse un árbol de agrupación en clústeres en diferentes situaciones y cómo se comporta cuando un conjunto de datos está sobre agrupado, presentamos algunos ejemplos ilustrativos utilizando simulaciones simples (consulte Métodos). Presentamos cinco escenarios: ruido uniforme aleatorio (simulación A), un solo clúster (simulación B), dos clústeres (simulación C), tres clústeres (simulación D) y cuatro clústeres (simulación E). Cada clúster consta de 1000 muestras (puntos) generadas a partir de una distribución normal de 100 dimensiones, y cada conjunto de datos sintéticos se ha agrupado utilizando|k k means / -significa agrupamiento con |k k\,\, = \,\,1,\,\, \ldots, 8$/. A continuación, utilizamos el paquete clustree para producir árboles de agrupamiento para cada conjunto de datos (Fig. 2).Figura

2:

Cinco conjuntos de datos sintéticos utilizados para demostrar árboles agrupados. Para cada conjunto de datos, se muestra un gráfico de dispersión de los dos primeros componentes principales, un árbol de agrupamiento predeterminado y un árbol de agrupamiento con nodos coloreados por el índice de estabilidad SC3 de morado (más bajo) a amarillo (más alto). Los cinco conjuntos de datos contienen: (A) ruido uniforme aleatorio, (B) un solo clúster, (C) dos clústeres, (D) tres clústeres y (E) cuatro clústeres.

Gráfico 2:

Cinco conjuntos de datos sintéticos utilizados para demostrar árboles agrupados. Para cada conjunto de datos, se muestra un gráfico de dispersión de los dos primeros componentes principales, un árbol de agrupamiento predeterminado y un árbol de agrupamiento con nodos coloreados por el índice de estabilidad SC3 de morado (más bajo) a amarillo (más alto). Los cinco conjuntos de datos contienen: (A) ruido uniforme aleatorio, (B) un solo clúster, (C) dos clústeres, (D) tres clústeres y (E) cuatro clústeres.

Mirando los dos primeros ejemplos (ruido uniforme y un solo clúster ), podemos ver claramente cómo se comporta un árbol de clústeres cuando un algoritmo de clústeres devuelve más clústeres de los que están realmente presentes en un conjunto de datos. Los nuevos racimos comienzan a formarse a partir de múltiples racimos existentes, y muchas muestras cambian entre las ramas del árbol, lo que resulta en bordes de baja proporción. Los grupos inestables también pueden aparecer y luego desaparecer a medida que aumenta la resolución, como se ve en la Fig. 2E. A medida que agregamos más estructura a los conjuntos de datos, los árboles agrupados comienzan a formar ramas claras y los bordes de baja proporción tienden a limitarse a secciones del árbol. Al observar qué racimos son estables y dónde surgen bordes bajos en proporción, podemos inferir qué áreas del árbol son probablemente el resultado de verdaderos racimos y cuáles son causadas por el agrupamiento excesivo.

El segundo árbol de agrupación en clúster para cada conjunto de datos muestra los nodos coloreados de acuerdo con el índice de estabilidad SC3 para cada clúster. Como era de esperar, ningún clúster recibe una puntuación de estabilidad alta en los dos primeros ejemplos. Sin embargo, si bien vemos claramente dos ramas en el árbol de agrupación para el ejemplo de dos grupos (simulación C), esto no se refleja en las puntuaciones SC3. Ningún grupo recibe una puntuación de estabilidad alta, probablemente debido al gran número de muestras que se mueven entre grupos a medida que aumenta la resolución. A medida que hay más clústeres verdaderos en los conjuntos de datos simulados, las puntuaciones de estabilidad SC3 se vuelven más predictivas de la resolución correcta a usar. Sin embargo, es importante observar las puntuaciones de estabilidad de todos los clústeres con una resolución en particular, ya que tomar la puntuación de estabilidad de clústeres individual más alta podría llevar a que se utilice una resolución incorrecta, como se puede ver en el ejemplo de cuatro clústeres (simulación E). Estos ejemplos muestran cómo los árboles de agrupación en clústeres se pueden usar para mostrar métricas de agrupación en clústeres existentes de manera que puedan ayudar a informar las elecciones de parámetros.

Un ejemplo simple

Para ilustrar mejor cómo se construye un árbol de clústeres, trabajaremos con un ejemplo utilizando el conjunto de datos iris clásico . Este conjunto de datos contiene medidas de la longitud sepal, la anchura sepal, la longitud de los pétalos y la anchura de los pétalos de 150 flores de iris, 50 de cada una de las tres especies: Iris setosa, Iris versicolor e Iris virginica. El conjunto de datos iris se usa comúnmente como ejemplo para problemas de agrupamiento y clasificación, ya que las muestras de I. setosa son significativamente diferentes y linealmente separables de las otras muestras. Hemos agrupado este conjunto de datos usando|k k means / -significa agrupamiento con |k k\,\, = \,\,1,\,\, \ldots, 5$ / y produjo el árbol de agrupamiento que se muestra en la Fig. 3A.

Gráfico 3:

Agrupamiento de árboles basado en |k k k / – significa agrupamiento del conjunto de datos iris. (A) Los nodos se colorean de acuerdo con el valor de |k k| / y se dimensionan de acuerdo con el número de muestras que representan. Los bordes se colorean de acuerdo con el número de muestras (de azul que representa a pocos a amarillo que representa a muchos). La transparencia se ajusta de acuerdo con la proporción, con líneas más fuertes que muestran bordes que son más importantes para el clúster de mayor resolución. Las etiquetas de clúster se asignan aleatoriamente mediante el algoritmo|k k means / -means. (B) El mismo árbol con el color del nodo cambiado para mostrar la longitud media de los pétalos de las muestras en cada racimo.

Gráfico 3:

Agrupamiento de árboles basado en |k k k / – significa agrupamiento del conjunto de datos iris. (A) Los nodos se colorean de acuerdo con el valor de |k k| / y se dimensionan de acuerdo con el número de muestras que representan. Los bordes se colorean de acuerdo con el número de muestras (de azul que representa a pocos a amarillo que representa a muchos). La transparencia se ajusta de acuerdo con la proporción, con líneas más fuertes que muestran bordes que son más importantes para el clúster de mayor resolución. Las etiquetas de clúster se asignan aleatoriamente mediante el algoritmo|k k means / -means. (B) El mismo árbol con el color del nodo cambiado para mostrar la longitud media de los pétalos de las muestras en cada racimo.

Vemos que una rama del árbol es claramente distinta (presumiblemente representando a I. setosa), permaneciendo sin cambios independientemente del número de racimos. Por otro lado, vemos que el clúster en / k k\,\, = \,\,2$| se divide limpiamente en dos grupos (presumiblemente I. versicolor e I. virginica) en/k k\,\, = \,\,3$|. Sin embargo, a medida que avanzamos a |k k\,\, = \,\,4$| y / k k\,\, = \,\,5$|, vemos racimos formados a partir de múltiples ramas con bordes más bajos en proporción. Como hemos visto en los ejemplos simulados, este tipo de patrón puede indicar que los datos se han agrupado en exceso y hemos comenzado a introducir agrupaciones artificiales.

Podemos comprobar nuestra suposición de que la rama distinta representa las muestras de I. setosa y que los otros dos grupos en / k k\,\, = \,\,3$| son I. versicolor e I. virginica superponiendo alguna información conocida sobre las muestras. En la Fig. 3B hemos coloreado los nodos por la longitud media de los pétalos de las muestras que contienen. Ahora podemos ver que los grupos en la rama distinta tienen los pétalos más cortos, con el grupo 1 en / k k\,\, = \,\,3$| tiene una longitud intermedia y el racimo 3 tiene los pétalos más largos. Se sabe que esta característica separa las muestras en las especies esperadas, con I. setosa teniendo los pétalos más cortos en promedio, I. versicolor una longitud intermedia y I. virginica la más larga.

Aunque este es un ejemplo muy simple, destaca algunos de los beneficios de ver un árbol de agrupamiento. Obtenemos alguna indicación de la resolución de agrupación correcta examinando los bordes, y podemos superponer información conocida para evaluar la calidad de la agrupación. Por ejemplo, si observamos que todos los grupos tienen la misma longitud media de pétalos, sugeriría que el agrupamiento no ha tenido éxito, ya que sabemos que esta es una característica importante que separa a la especie. Podríamos aprender más observando qué muestras siguen bordes de baja proporción o superponiendo una serie de características para tratar de comprender qué causa la división de grupos particulares.

Árboles de agrupación para Datos scRNA-seq

Un campo que ha comenzado a hacer un uso intensivo de las técnicas de agrupación es el análisis de datos scRNA-seq. La secuenciación de scRNA es una tecnología desarrollada recientemente que puede medir cómo se expresan los genes en miles o millones de células individuales . Esta tecnología se ha adoptado rápidamente en campos como la biología del desarrollo y la inmunología, donde es valioso tener información de células individuales en lugar de mediciones que se promedian en las muchas células diferentes de una muestra utilizando tecnologías más antiguas de ARN-seq. Un uso clave de scRNA-seq es descubrir e interrogar los diferentes tipos de células presentes en una muestra de un tejido complejo. En esta situación, el agrupamiento se usa típicamente para agrupar células similares en función de sus perfiles de expresión génica. Las diferencias en la expresión génica entre los grupos se pueden utilizar para inferir la identidad o función de esas células . El número de tipos de células (grupos) en un conjunto de datos scRNA-seq puede variar en función de factores como el tejido que se está estudiando, su estado de desarrollo o ambiental y el número de células capturadas. A menudo, el número de tipos de células no se conoce antes de que se generen los datos, y algunas muestras pueden contener docenas de clústeres. Por lo tanto, decidir qué resolución de agrupación usar es una consideración importante en esta aplicación.

Como ejemplo de cómo se pueden usar los árboles agrupados en el contexto scRNA-seq, consideramos un conjunto de datos de células mononucleares de sangre periférica (PBMC) de uso común. Este conjunto de datos fue producido originalmente por 10x Genomics y contiene 2,700 células mononucleares de sangre periférica, que representan una gama de tipos de células inmunitarias bien estudiados . Analizamos este conjunto de datos utilizando el paquete Seurat, un conjunto de herramientas de uso común para el análisis scRNA-seq, siguiendo las instrucciones de su tutorial, con la excepción de variar el parámetro de resolución de agrupación de cero a 5 (consulte Métodos). Seurat utiliza un algoritmo de agrupación en clústeres basado en gráficos, y el parámetro de resolución controla la partición de este gráfico, con valores más altos que dan como resultado más clústeres. Los árboles agrupados producidos a partir de este análisis se muestran en la Fig. 4.Figura

4:

Dos árboles agrupados de un conjunto de datos de 2.700 PBMCs. A) Resultados de la agrupación mediante Seurat con parámetros de resolución de cero a 1. Con una resolución de 0,1, vemos la formación de cuatro ramas principales, una de las cuales continúa dividiéndose hasta una resolución de 0,4, después de lo cual solo hay cambios menores. B) Resoluciones de cero a 5. En las resoluciones más altas, comenzamos a ver muchos bordes de baja proporción, lo que indica inestabilidad del cúmulo. Seurat etiqueta los clústeres de acuerdo con su tamaño, siendo el clúster 0 el más grande.

Gráfico 4:

Dos árboles agrupados de un conjunto de datos de 2.700 PBMCs. A) Resultados de la agrupación mediante Seurat con parámetros de resolución de cero a 1. Con una resolución de 0,1, vemos la formación de cuatro ramas principales, una de las cuales continúa dividiéndose hasta una resolución de 0,4, después de lo cual solo hay cambios menores. B) Resoluciones de cero a 5. En las resoluciones más altas, comenzamos a ver muchos bordes de baja proporción, lo que indica inestabilidad del cúmulo. Seurat etiqueta los clústeres de acuerdo con su tamaño, siendo el clúster 0 el más grande.

El árbol de agrupamiento cubre resoluciones de cero a 1 en pasos de 0.1 (Fig. 4A) muestra que se forman cuatro ramas principales con una resolución de solo 0.1. Una de estas ramas, que comienza con el clúster 3 con resolución 0.1, permanece sin cambios, mientras que la rama que comienza con el clúster 2 se divide solo una vez con una resolución de 0.4. La mayor parte de la ramificación se produce en la rama que comienza con el grupo 1, que consistentemente tiene subdivisiones divididas para formar nuevos grupos a medida que aumenta la resolución. Hay dos regiones de estabilidad en este árbol—con resolución 0.4–0.5 y resolución 0.7–1.0 donde la rama que comienza en el racimo 0 se divide en dos.

Fig. 4B muestra un árbol de agrupación con un mayor rango de resoluciones, de cero a 5 en pasos de 0,5. Al mirar a través de este rango, podemos ver lo que sucede cuando el algoritmo se ve obligado a producir más clústeres de los que probablemente estén realmente presentes en este conjunto de datos. A medida que se produce el agrupamiento excesivo, comenzamos a ver bordes más bajos en proporción y nuevos clústeres que se forman a partir de múltiples clústeres padres. Esto sugiere que esas áreas del árbol son inestables y que es poco probable que los nuevos grupos que se están formando representen grupos verdaderos en el conjunto de datos.

Los genes marcadores conocidos se utilizan comúnmente para identificar los tipos de células a los que corresponden grupos específicos. La superposición de información de expresión génica en un árbol de agrupamiento proporciona una vista alternativa que puede ayudar a indicar cuándo se forman grupos que contienen poblaciones de células puras. La Figura 5 muestra el árbol de agrupamiento de PBMC en la Fig. 4A superpuesta con la expresión de algunos genes marcadores conocidos.Figura

5:

Agrupamiento de árboles del conjunto de datos PBMC coloreados de acuerdo con la expresión de marcadores conocidos. Los colores de los nodos indican el promedio de los recuentos de genes log2 de las muestras en cada grupo. CD19 (A) identifica las células B, CD14 (B) muestra una población de monocitos, CD3D (C) es un marcador de células T, y CCR7 (D) muestra la división entre la memoria y las células T CD4 sin tratamiento previo.

Gráfico 5:

Agrupamiento de árboles del conjunto de datos PBMC coloreados de acuerdo con la expresión de marcadores conocidos. Los colores de los nodos indican el promedio de los recuentos de genes log2 de las muestras en cada grupo. CD19 (A) identifica las células B, CD14 (B) muestra una población de monocitos, CD3D (C) es un marcador de células T, y CCR7 (D) muestra la división entre la memoria y las células T CD4 sin tratamiento previo.

Al agregar esta información adicional, podemos identificar rápidamente algunos de los tipos de células. CD19 (Fig. 5A) es un marcador de células B y se expresa claramente en la rama más distinta del árbol. CD14 (Fig. 5B) es un marcador de un tipo de monocito, que se expresa más a medida que seguimos una de las ramas centrales, lo que nos permite ver qué resolución identifica una población pura de estas células. CD3D (Fig. 5C) es un marcador general de las células T y se expresa en dos ramas separadas, una que se divide en baja y alta expresión de CCR7 (Fig. 5D), separando la memoria y las células T CD4 ingenuas. Al agregar la expresión de genes conocidos a un árbol de agrupamiento, podemos ver si se pueden identificar más poblaciones a medida que aumenta la resolución de agrupamiento y si los grupos son consistentes con la biología conocida. Para la mayor parte del tutorial de Seurat, se utiliza una resolución de 0,6, pero los autores señalan que al pasar a una resolución de 0,8, se puede lograr una división entre la memoria y las células T CD4 ingenuas. Esta es una división que podría anticiparse observando el árbol de agrupación con la adición de información previa.

Discusión

Agrupar muestras similares en grupos es una técnica útil en muchos campos, pero a menudo los analistas se enfrentan al difícil problema de decidir qué resolución de agrupación usar. Los enfoques tradicionales para este problema suelen considerar un solo grupo o muestra a la vez y pueden basarse en el conocimiento previo de las etiquetas de muestra. Aquí, presentamos árboles de agrupamiento, una visualización alternativa que muestra las relaciones entre los agrupamientos en múltiples resoluciones. Si bien los árboles de clústeres no pueden sugerir directamente qué resolución de clústeres usar, pueden ser una herramienta útil para ayudar a tomar esa decisión, particularmente cuando se combinan con otras métricas o conocimiento del dominio.

Los árboles de clústeres muestran cómo se dividen los clústeres a medida que aumenta la resolución, qué clústeres están claramente separados y distintos, cuáles están relacionados entre sí y cómo las muestras cambian de grupo a medida que se producen más clústeres. Aunque los árboles agrupados pueden parecer similares a los árboles producidos a partir de la agrupación jerárquica, hay varias diferencias importantes. La agrupación jerárquica considera las relaciones entre muestras individuales y no proporciona una forma obvia de formar grupos. En contraste, los árboles de agrupación son independientes de cualquier método de agrupación en particular y muestran las relaciones entre los grupos, en lugar de muestras, a diferentes resoluciones, cualquiera de las cuales podría usarse para un análisis posterior.

Para ilustrar los usos de los árboles agrupados, presentamos una serie de simulaciones y dos ejemplos de análisis reales, uno utilizando el conjunto de datos iris clásico y otro basado en un conjunto de datos complejo scRNA-seq. Ambos ejemplos demuestran cómo un árbol de clústeres puede ayudar a informar la decisión de qué resolución usar y cómo la superposición de información adicional puede ayudar a validar esos clústeres. Esto es de particular utilidad para el análisis scRNA-seq, ya que estos conjuntos de datos a menudo son grandes, ruidosos y contienen un número desconocido de tipos de células o clústeres.

Incluso cuando determinar el número de clústeres no es un problema, agrupar árboles puede ser una herramienta valiosa. Proporcionan una visualización compacta y densa en información que puede mostrar información resumida en una variedad de clústeres. Al modificar la apariencia de los nodos de clúster en función de los atributos de las muestras que representan, se pueden evaluar los clústeres y establecer las identidades de los clústeres. Los árboles de agrupamiento pueden tener aplicaciones en muchos campos y, en el futuro, podrían adaptarse para ser más flexibles, por ejemplo, acomodando agrupamientos difusos. También puede haber usos para gráficos de agrupamiento más generales para combinar resultados de múltiples conjuntos de parámetros o métodos de agrupamiento.

Métodos

clustree

El paquete de software clustree (v0.2.0) está diseñado para el lenguaje de programación estadístico R (v3.5.0). Se basa en el paquete ggraph (v1.0.1) , que se basa en los paquetes ggplot2 (v2.2.1) y tidygraph (v1.1.0). Los árboles agrupados se muestran utilizando el diseño de árbol Reingold-Tilford o el diseño Sugiyama; ambos están disponibles como parte del paquete igraph (v1.2.1).

Los paneles de figuras que se muestran aquí se produjeron utilizando el paquete cowplot (v0. 9. 2).

Simulaciones

Los conjuntos de datos simulados se construyeron generando puntos a partir de distribuciones estadísticas. La primera simulación (simulación A) consiste en 1.000 puntos generados aleatoriamente a partir de un espacio de 100 dimensiones utilizando una distribución uniforme entre cero y 10. La simulación B consiste en un único clúster de distribución normal de 1.000 puntos en 100 dimensiones. El centro de este clúster se eligió de una distribución normal con media cero y desviación estándar 10. Los puntos se generaron alrededor de este centro a partir de una distribución normal con una media igual al punto central y una desviación estándar de 5. Las tres simulaciones restantes se produjeron mediante la adición de grupos adicionales. Para tener una relación conocida entre los clústeres, el centro de los nuevos clústeres se creó manipulando los centros de los clústeres existentes. Para el clúster 2, se generó un vector aleatorio de 100 dimensiones a partir de una distribución normal con media cero y desviación estándar 2 y se agregó al centro para el clúster 1. El centro 3 fue el promedio del centro 1 y el centro 2 más un vector aleatorio de una distribución normal con media cero y desviación estándar 5. Para asegurar una relación similar entre los clústeres 3 y 4 como entre los clústeres 1 y 2, el centro 4 se produjo agregando la mitad del vector utilizado para producir centro 2 a centro 3 más otro vector de una distribución normal con media cero y desviación estándar 2. Los puntos para cada clúster se generaron de la misma manera que para el clúster 1. La simulación C consiste en los puntos de los clústeres 1 y 2; la simulación D consiste en los clústeres 1, 2 y 3; y la simulación E consiste en clústeres 1, 2, 3 y 4. Cada conjunto de datos simulado se agrupó utilizando la función «kmeans» en el paquete de estadísticas con valores de |k k k| de 1 a 8, un máximo de 100 iteraciones y 10 posiciones iniciales aleatorias. Las visualizaciones de árbol de agrupamiento se produjeron utilizando el paquete clustree con el diseño de árbol. Los conjuntos de datos simulados y el código utilizado para producirlos están disponibles en el repositorio de este artículo .

Conjunto de datos Iris

El conjunto de datos iris está disponible como parte de R. Agrupamos este conjunto de datos utilizando la función «kmeans» en el paquete de estadísticas con valores de |k k.| de 1 a 5. Cada valor de |k k| / se agrupó con un máximo de 100 iteraciones y con 10 posiciones iniciales aleatorias. El paquete clustree se utilizó para visualizar los resultados utilizando el diseño Sugiyama. El conjunto de datos iris agrupado está disponible como parte del paquete clustree.

Conjunto de datos PBMC

El conjunto de datos PBMC se descargó de la página del tutorial de Seurat , y este tutorial se siguió para la mayor parte del análisis utilizando la versión 2.3.1 de Seurat. Brevemente, las células se filtraron en función del número de genes que expresan y el porcentaje de recuentos asignados a los genes mitocondriales. Los datos se normalizaron logarítmicamente y se identificaron 1.838 genes variables. Las posibles variables de confusión (número de identificadores moleculares únicos y porcentaje de expresión mitocondrial) retrocedieron del conjunto de datos antes de realizar el análisis de componentes principales de los genes variables identificados. Los primeros 10 componentes principales se utilizaron para construir un gráfico que se dividió en clústeres utilizando la optimización de modularidad de Lovaina con parámetros de resolución en el rango de cero a 5, en pasos de 0,1 entre cero y 1, y luego en pasos de 0,5. Clustree se utilizó para visualizar los resultados utilizando el diseño de árbol.

Disponibilidad del código fuente y requisitos

Nombre del proyecto: clustree.

Página de inicio del proyecto: https://github.com/lazappi/clustree.

Sistemas operativos: Linux, macOS, Windows

Lenguaje de programación: R (> = 3.4)

Otros requisitos: Ninguna

Licencia: GPL-3

Cualquier restricción para uso por parte de no académicos: Ninguna

RRID: SCR_016293

Disponibilidad de datos de soporte

El paquete clustree está disponible en CRAN y se está desarrollando en GitHub . El código y los conjuntos de datos utilizados para el análisis que se presentan aquí también están disponibles en GitHub . El conjunto de datos iris agrupado se incluye como parte de clustree, y el conjunto de datos PBMC se puede descargar de la página de tutoriales de Seurat o del repositorio de paper GitHub. Las instantáneas del código están disponibles en el repositorio GigaScience, GigaDB .

Abreviaturas

PBMC: células mononucleares de sangre periférica; scRNA-seq: secuenciación de ARN unicelular.

intereses contrapuestos

Los autores declaran que no tienen conflictos de intereses.

Financiación

L. Z. cuenta con el apoyo de una beca del Programa de Capacitación en Investigación del Gobierno Australiano. A. O. recibe apoyo a través de una beca de Desarrollo Profesional del Consejo Nacional de Salud e Investigación Médica (APP1126157). El Murdoch Children’s Research Institute cuenta con el apoyo del Programa de Apoyo a la Infraestructura Operativa del Gobierno de Victoria.

Contribuciones de los autores

L. Z. diseñó el algoritmo de árbol de agrupación, escribió el paquete de software clustree y redactó el manuscrito. A. O. supervisó el proyecto y comentó el manuscrito.

AGRADECIMIENTOS

Gracias a Marek Cmero por proporcionar comentarios sobre un borrador del manuscrito y a los revisores por sus comentarios y sugerencias.

Forgy
NOSOTROS

.

Análisis de conglomerados de datos multivariados: eficiencia versus interpretabilidad de clasificaciones

.

Biometría

.

1965

;

21

:

768

9

.

Macqueen
J

.

Algunos métodos de clasificación y análisis de observaciones multivariantes

. In

5th Berkeley Symposium on Mathematical Statistics and Probability

,

1967

.

Lloyd
S

.

Cuantización de mínimos cuadrados en PCM

.

IEEE Trans Inf Theory

.

1982

;

28

:

129

37

.

Kaufman
L

,

Rousseeuw
PJ

.

Particionamiento Alrededor de Medoids (Programa PAM). Búsqueda de grupos en Datos

,

Nueva Jersey, EE. UU.

.

John Wiley & Sons, Inc

.

1990

. pp.

68

125

.

Ester
M

,

Kriegel
H-P

,

Lijadora
J

, et al.

Un algoritmo basado en densidad para descubrir clústeres en grandes bases de datos espaciales con ruido

.

Proceedings of the Second International Conference on Knowledge Discovery and Data Mining

.

Portland, Oregon

:

AAAI Press

;

1996

. pp.

226

31

..

Disponible a partir de

:

Fraley
C

,

Raftery
AE

.

Agrupamiento basado en modelos, análisis discriminante y estimación de densidad

.

J Am Stat Assoc

.

2002

;

97

:

611

31

.

Thorndike
RL

.

¿Quién pertenece a la familia?

.

Psychometrika

.

1953

;

18

:

267

76

.

Rousseeuw
PJ

.

Siluetas: una ayuda gráfica para la interpretación y validación del análisis de clústeres

.

J Comput Appl Math

.

1987

;

20

:

53

65

.

Luxburg
U von

.

Estabilidad de clústeres: una visión general

.

Fundamentos y tendencias del Aprendizaje automático

.

2010

;

2

:

235

74

.

Ben-Hur
Un

,

Elisseeff
Un

,

Guyon
I

.

Un método basado en la estabilidad para descubrir la estructura en datos agrupados

.

Pac Symp Biocomput

.

2002

,

7

;

6

17

.

Kiselev
VY

,

Kirschner
K

,

Schaub
MT

et al.

SC3: agrupación consensuada de datos de ARN-seq unicelulares

.

Métodos Nat

.

2017

;

14

:

483

6

.

Rebane
G

,

Perla
J

.

La Recuperación de Poliarboles Causales a partir de Datos Estadísticos

.

2013

;

Disponible desde: http://arxiv.org/abs/1304.2736, Consultado el 16 de mayo de 2018

.

Csardi
G

,

Nepusz
T

.

El paquete de software igraph para la investigación de redes complejas

.

Inter Journal Complex Systems

.

2006

;

1695

:

1

9

.

Reingold
EM

,

Tilford
JS

.

Dibujos más ordenados de árboles

.

IEEE Trans Software Eng

.

1981

;

SE-7

:

223

8

.

Sugiyama
K

,

Tagawa
S

,

Toda
M

.

Métodos para la comprensión visual de las estructuras jerárquicas del sistema

.

IEEE Trans Syst Man Cybern

.

1981

;

11

:

109

25

.

Anderson
E

.

Los iris de la Península de Gaspe

.

Bulletin of the American Iris Society

.

1935

;

59

:

2

5

.

Fisher
RA

.

El uso de mediciones múltiples en problemas taxonómicos

.

Ann Eugen

.

1936

;

7

:

179

88

.

Tang
F

,

Barbacioru
C

,

Wang
Y

, et al.

ARNm-seq análisis de transcriptoma completo de una sola célula

.

Métodos Nat

.

2009

;

6

:

377

82

.

Stegle
O

,

Teichmann
SA

,

Marioni
JC

.

Desafíos computacionales y analíticos en la transcriptómica unicelular

.

Nat Rev Genet

.

2015

;

16

:

133

45

.

Zheng
GXY

,

Terry
JM

,

Belgrader
P

, et al.

Perfilado transcripcional digital paralelo masivo de celdas individuales

.

Nat Commun

.

2017

;

8

:

14049

.

Satija
R

,

Farrell
JA

,

Gennert
D

, et al.

Reconstrucción espacial de datos de expresión génica unicelular

.

Nat Biotechnol

.

2015

;

33

:

495

502

.

Pedersen
TL

.

ggraph: Una Implementación de Gramática de Gráficos para Gráficos y Redes

.

2018

.

Disponible en: https://CRAN.R-project.org/package=ggraph, Consultado el 21 de Mayo de, 2018

Wickham
H

.

ggplot2: Gráficos Elegantes para el Análisis de Datos

.

Nueva York

:

Springer

;

2010

.

Pedersen
TL

.

tidygraph: Una API Ordenada para la Manipulación de gráficos

.

2018

.

Disponible en: https://CRAN.R-project.org/package=tidygraph, Consultado en Mayo de 21, 2018

Wilke
CO

.

cowplot: Tema de Trama Simplificado y Anotaciones de Trama para ‘ggplot2.’

.

2018

.

Disponible en: https://CRAN.R-project.org/package=cowplot, Consultado en Mayo de 21, 2018

Zappia
L

,

Oshlack
Un

.

repositorio de GitHub de papel clustree

,

2018

.

Disponible en: https://github.com/Oshlack/clustree-paper, Accedido el 21 de mayo de 2018

.

Satija Laboratorio

.

Tutorial de Seurat PBMC3K

. ;

2018

.

Disponible en: https://satijalab.org/seurat/pbmc3k_tutorial.html, Consultado en Mayo de 21, 2018

Blondel
VD

,

Guillaume
J-L

,

Lambiotte
R

, et al.

Rápido despliegue de comunidades en grandes redes

.

J Stat Mech

.

IOP Publishing

;

2008

;

2008

:

P10008

.

Zappia
L

,

Oshlack
Un

.

clustree: Visualiza Clusterings en Diferentes Resoluciones

.

2018

.

Disponible en: https://CRAN.R-project.org/package=clustree, Consultado en Mayo de 21, 2018

Zappia
L

,

Oshlack
Un

.

repositorio clustree GitHub

. ;

2018

.

Disponible en: https://github.com/lazappi/clustree, Accedido el 21 de mayo de 2018

.

Zappia
L

,

Oshlack
Un

.

Datos de soporte para » Árboles de clústeres: una visualización para evaluar clústeres a múltiples resoluciones.»

.

GigaScience Database

.

2018

. .

Deja una respuesta

Tu dirección de correo electrónico no será publicada.