- Streszczenie
- wprowadzenie
- Budowanie drzewa klastrowania
- demonstracja przy użyciu symulacji
- prosty przykład
- drzewa klastrowe dla danych scRNA-seq
- dyskusja
- metody
- clustree
- symulacje
- Iris dataset
- zbiór danych PBMC
- dostępność kodu źródłowego i wymagania
- dostępność danych pomocniczych
- skróty
- konkurencyjne interesy
- finansowanie
- wkład autora
- podziękowania
Streszczenie
techniki klastrowania są szeroko stosowane w analizie dużych zbiorów danych do grupowania próbek o podobnych właściwościach. Na przykład klastrowanie jest często używane w dziedzinie sekwencjonowania RNA jednokomórkowego w celu identyfikacji różnych typów komórek obecnych w próbce tkanki. Istnieje wiele algorytmów do wykonywania klastrowania, a wyniki mogą się znacznie różnić. W szczególności liczba grup obecnych w zbiorze danych jest często nieznana, a liczba klastrów zidentyfikowanych przez algorytm może się zmieniać w zależności od użytych parametrów. Aby zbadać i zbadać wpływ zmieniającej się rozdzielczości klastrowania, przedstawiamy drzewa klastrowania. Ta wizualizacja pokazuje relacje między klastrami w wielu rozdzielczościach, pozwalając badaczom zobaczyć, jak przemieszczają się próbki wraz ze wzrostem liczby klastrów. Ponadto meta-informacje mogą być nakładane na drzewo, aby informować o wyborze rozdzielczości i kierować identyfikacją klastrów. Zilustrujemy cechy klastrowania drzew za pomocą serii symulacji, a także dwóch rzeczywistych przykładów, klasycznego zestawu danych tęczówki i złożonego jednokomórkowego zbioru danych sekwencjonujących RNA. Drzewa klastrowe mogą być tworzone przy użyciu pakietu clustree R, dostępnego w CRAN i rozwijanego na GitHub.
wprowadzenie
Analiza klastrowa jest powszechnie stosowana do grupowania podobnych próbek w różnych zastosowaniach. Zazwyczaj celem klastrowania jest tworzenie grup próbek, które są bardziej podobne do siebie niż do próbek w innych grupach. Podczas gdy rozmyte lub miękkie podejścia klastrowania przypisać każdą próbkę do każdego klastra z pewnym prawdopodobieństwem, a hierarchiczne grupowanie tworzy drzewo próbek, większość metod tworzą klastry twarde, gdzie każda próbka jest przypisana do jednej grupy. Cel ten można osiągnąć na wiele sposobów, takich jak rozważając odległości między próbkami (np. |$k$|-means , PAM ), obszary gęstości w całym zbiorze danych (np. DBSCAN) lub relacje z rozkładami statystycznymi .
w wielu przypadkach liczba grup, które powinny być obecne w zbiorze danych, nie jest z góry znana, a decyzja o prawidłowej liczbie klastrów do wykorzystania jest znaczącym wyzwaniem. Dla niektórych algorytmów, takich jak|$K$ / -oznacza klastrowanie, liczba klastrów musi być jawnie podana. Inne metody mają parametry, które bezpośrednio lub pośrednio kontrolują rozdzielczość klastrów, a tym samym liczbę wytworzonych klastrów. Chociaż istnieją metody i statystyki (takie jak metoda łokcia i wykresy sylwetki ) mające na celu pomoc analitykom w podjęciu decyzji, której rozdzielczości klastrowania użyć, zazwyczaj dają one pojedynczy wynik, który uwzględnia tylko jeden zestaw próbek lub klastrów naraz.
alternatywnym podejściem byłoby rozważenie klastrów w wielu rozdzielczościach i zbadanie, w jaki sposób próbki zmieniają grupy wraz ze wzrostem liczby klastrów. Doprowadziło to do szeregu środków stabilności klastrów , z których wiele opiera się na klastrach uszkodzonych lub podpróbkowanych zbiorów danych. Na przykład algorytm Model explorer wielokrotnie podzapróbkuje zbiór danych, grupuje każdy podzapróbkowany zbiór danych w różnych rozdzielczościach, a następnie oblicza podobieństwo między klastrami w tej samej rozdzielczości, aby dać rozkład podobieństw, który może informować o wyborze rozdzielczości . Jedną miarą stabilności klastra, która nie jest oparta na perturbacjach, jest ta zawarta w pakiecie SC3 do klastrowania jednokomórkowych danych sekwencjonowania RNA (scRNA-seq). Począwszy od zestawu etykiet klastra w różnych rozdzielczościach, każdy klaster jest punktowany, a klastry otrzymują zwiększoną stabilność, jeśli mają te same próbki co klaster w innej rozdzielczości, ale są karane za to, że są w wyższej rozdzielczości.
podobne proste podejście jest podejmowane przez wizualizację drzewa klastrowania, które prezentujemy tutaj, bez obliczania wyników: (i) zbiór danych jest klastrowany przy użyciu dowolnego algorytmu klastrowania w wielu rozdzielczościach, tworząc zestawy węzłów klastra; (ii) nakładanie się klastrów w sąsiednich rozdzielczościach służy do budowania krawędzi; oraz (iii) uzyskany wykres przedstawia się jako drzewo. To drzewo może być użyte do zbadania, w jaki sposób klastry są ze sobą powiązane—które klastry są różne, a które niestabilne. W kolejnych sekcjach opisujemy jak konstruujemy takie drzewo i prezentujemy przykłady drzew zbudowanych z klasycznego zbioru danych klastrowych i złożonego zbioru danych scRNA-seq. Pokazane tutaj liczby mogą być wykonane w R przy użyciu naszego publicznie dostępnego pakietu clustree. Chociaż drzewa klastrowania nie mogą bezpośrednio zapewnić rozdzielczości klastrowania do użycia, mogą być użytecznym narzędziem do eksploracji i wizualizacji zakresu możliwych wyborów.
Budowanie drzewa klastrowania
aby zbudować drzewo klastrowania, zaczynamy od zestawu klastrów i przydzielamy próbki do grup w kilku różnych rozdzielczościach. Mogą one być wytwarzane przy użyciu dowolnego algorytmu klastrowania twardego, który umożliwia kontrolę liczby klastrów w pewien sposób. Na przykład, może to być zestaw próbek zgrupowanych za pomocą |$k$ / – czyli za pomocą / $k\,\, = \,\,1,2,3$| Jak pokazano na Fig. 1. Sortujemy te klastry tak, aby były uporządkowane przez zwiększenie rozdzielczości (|$k$|), a następnie rozważamy pary sąsiednich klastrów. Każdy klaster / ${C_{k,\,\,i}}$| (gdzie / $i\,\, = \,\,1,\,\, \ldots,\,\, n$ / i / $n$ / to liczba klastrów w rozdzielczości / $k$/) jest porównywana z każdym klastrem / ${c_{K + 1,\,\, j}}$ / (gdzie / $j\,\, = \,\,1,\,\, \ldots,\,\, m$ / I / $m$ / to liczba klastrów przy rozdzielczości|$K + 1$/). Nakładanie się dwóch klastrów jest obliczane jako liczba próbek, które są przypisane zarówno do |${C_{K,\,\, i}}$| i |${C_{K + 1,\,\, j}}$|. Następnie tworzymy wykres, w którym każdy węzeł jest klastrem, a każda krawędź jest nakładaniem się dwóch klastrów. Chociaż dla uproszczenia mówimy o tym grafie jako o drzewie, można go dokładniej opisać jako polytree, specjalny przypadek ukierunkowanego grafu acyklicznego, w którym leżącym poniżej wykresem jest drzewo .
Ilustracja kroków wymaganych do budowy drzewa klastrowego. Po pierwsze, zbiór danych musi być klastrowany w różnych rozdzielczościach. Nakładanie się próbek między klastrami w sąsiednich rozdzielczościach jest obliczane i wykorzystywane do obliczania proporcji dla każdej krawędzi. Na koniec krawędzie są filtrowane, a Wykres wizualizowany jako drzewo.
Ilustracja kroków wymaganych do budowy drzewa klastrowego. Po pierwsze, zbiór danych musi być klastrowany w różnych rozdzielczościach. Nakładanie się próbek między klastrami w sąsiednich rozdzielczościach jest obliczane i wykorzystywane do obliczania proporcji dla każdej krawędzi. Na koniec krawędzie są filtrowane, a Wykres wizualizowany jako drzewo.
wiele krawędzi będzie pustych, np. na Rys. 1 Brak próbek w klastrze a at / $k\,\, = \,\,2$| kończy się w klastrze B W / $k\,\, = \,\,3$|. W niektórych zestawach danych mogą być również krawędzie, które zawierają kilka próbek. Te krawędzie nie są pouczające i skutkują zaśmieconym drzewem. Oczywistym rozwiązaniem usuwania niedoinformowanych, mało liczących się krawędzi jest filtrowanie ich za pomocą progu liczby próbek, które reprezentują. Jednak w tym przypadku liczba próbek nie jest poprawną statystyką, ponieważ faworyzuje krawędzie przy niższych rozdzielczościach i te łączące większe klastry. Zamiast tego definiujemy metrykę proporcji jako stosunek liczby próbek na krawędzi do liczby próbek w klastrze, do którego zmierza. Ten wskaźnik pokazuje znaczenie krawędzi dla klastra o wyższej rozdzielczości niezależnie od rozmiaru klastra. Następnie możemy zastosować próg w proporcji, aby usunąć mniej pouczające krawędzie.
końcowy Wykres można następnie zwizualizować. Teoretycznie można użyć dowolnego algorytmu układu grafów. Jednak w przypadku pakietu clustree wykorzystaliśmy dwa algorytmy specjalnie zaprojektowane dla struktur drzewiastych dostępne w pakiecie igraph . Są to układ drzewa Reingolda-Tilforda, który umieszcza węzły nadrzędne nad ich dziećmi, oraz układ Sugiyama, który umieszcza węzły skierowanego grafu acyklicznego w warstwach, minimalizując liczbę przecinających się krawędzi . Oba te algorytmy mogą tworzyć atrakcyjne układy; jako takie nie znaleźliśmy potrzeby projektowania konkretnego algorytmu układu dla grupowania drzew. Domyślnie pakiet clustree używa tylko podzbioru krawędzi podczas konstruowania układu, w szczególności najwyższych proporcji krawędzi dla każdego węzła. Odkryliśmy, że często prowadzi to do bardziej interpretowalnych wizualizacji; jednak użytkownicy mogą wybrać użycie wszystkich krawędzi w razie potrzeby.
niezależnie od zastosowanego układu, ostateczna wizualizacja umieszcza węzły klastra w szeregu warstw, gdzie każda warstwa ma inną rozdzielczość klastrowania, a krawędzie pokazują Przejście próbek przez te rozdzielczości. Krawędzie są barwione w zależności od liczby próbek, które reprezentują, a metryka proporcjonalna służy do kontrolowania przezroczystości krawędzi, podkreślając ważniejsze krawędzie. Domyślnie rozmiar węzła jest dostosowywany do liczby próbek w klastrze, a ich kolor wskazuje rozdzielczość klastrowania. Pakiet clustree zawiera również opcje kontroli estetyki węzłów w oparciu o atrybuty próbek w klastrach, które reprezentują, jak pokazano w poniższych przykładach.
chociaż drzewo klastrowania jest koncepcyjnie podobne do drzewa powstałego w wyniku klastrowania hierarchicznego, istnieją pewne istotne różnice. Najbardziej oczywiste jest, że hierarchiczne drzewo klastrowania jest wynikiem konkretnego algorytmu klastrowania i pokazuje relacje między poszczególnymi próbkami, podczas gdy opisane tutaj drzewa klastrowania są niezależne od metody klastrowania i pokazują relacje między klastrami. Gałęzie drzewa hierarchicznego pokazują, w jaki sposób algorytm grupowania scalał próbki. Natomiast krawędzie drzewa klastrowego pokazują, jak próbki przemieszczają się między klastrami w miarę zmian rozdzielczości, a węzły mogą mieć wiele rodziców. Chociaż możliwe jest nakładanie informacji o próbkach na drzewo hierarchiczne, nie jest to zwykle robione, ale jest kluczową cechą pakietu clustree i sposobu użycia drzew klastrowych w praktyce.
demonstracja przy użyciu symulacji
aby zademonstrować, jak drzewo klastrowania może wyglądać w różnych sytuacjach i jak zachowuje się, gdy zbiór danych jest przetaktowany, przedstawiamy kilka przykładowych przykładów przy użyciu prostych symulacji (patrz metody). Przedstawiamy pięć scenariuszy: losowy jednolity hałas (symulacja A), pojedynczy klaster (symulacja B), dwa klastry (symulacja C), trzy klastry (symulacja D) i cztery klastry (symulacja e). Każdy klaster składa się z 1000 próbek (punktów) wygenerowanych ze 100-wymiarowego rozkładu normalnego, a każdy syntetyczny zbiór danych został sklastrowany za pomocą / $K$ / – oznacza sklastrowanie za pomocą / $k\,\, = \,\,1,\,\, \ldots, 8$|. Następnie używamy pakietu clustree do tworzenia drzew klastrowych dla każdego zbioru danych (rys. 2).
pięć syntetycznych zestawów danych używanych do wykazania klastrowania drzew. Dla każdego zbioru danych pokazany jest wykres punktowy dwóch pierwszych głównych komponentów, domyślne drzewo grupowania i drzewo grupowania z węzłami oznaczonymi wskaźnikiem stabilności SC3 od fioletowego (najniższego) do żółtego (najwyższego). Pięć zestawów danych zawiera: (a) losowy jednolity szum, (B) pojedynczy klaster, (c) dwa klastry, (d) trzy klastry i (E) cztery klastry.
pięć syntetycznych zestawów danych używanych do wykazania klastrowania drzew. Dla każdego zbioru danych pokazany jest wykres punktowy dwóch pierwszych głównych komponentów, domyślne drzewo grupowania i drzewo grupowania z węzłami oznaczonymi wskaźnikiem stabilności SC3 od fioletowego (najniższego) do żółtego (najwyższego). Pięć zestawów danych zawiera: (a) losowy jednolity szum, (B) pojedynczy klaster, (c) dwa klastry, (d) trzy klastry i (E) cztery klastry.
patrząc na dwa pierwsze przykłady (uniform noise I single cluster), możemy wyraźnie zobaczyć, jak zachowuje się drzewo klastrów, gdy algorytm klastrowania zwraca więcej klastrów niż są rzeczywiście obecne w zbiorze danych. Nowe klastry zaczynają tworzyć się z wielu istniejących klastrów, a wiele próbek przełącza się między gałęziami drzewa, co powoduje niskie proporcje krawędzi. Niestabilne klastry mogą również pojawiać się, a następnie znikać wraz ze wzrostem rozdzielczości, jak pokazano na Fig. 2e. gdy dodajemy więcej struktury do zbiorów danych, drzewa klastrowe zaczynają tworzyć wyraźne gałęzie, a krawędzie o niskiej proporcji zwykle ograniczają się do sekcji drzewa. Patrząc na to, które klastry są stabilne i gdzie powstają niskie proporcje krawędzi, możemy wywnioskować, które obszary drzewa mogą być wynikiem prawdziwych klastrów, a które są spowodowane overclusteringiem.
drugie drzewo klastrów dla każdego zbioru danych pokazuje węzły kolorowe zgodnie ze wskaźnikiem stabilności SC3 dla każdego klastra. Jak można się było spodziewać, żaden klaster nie otrzymuje wysokiej stabilności w pierwszych dwóch przykładach. Jednak podczas gdy wyraźnie widzimy dwie gałęzie w drzewie grupowania dla przykładu dwóch klastrów (symulacja C), nie znajduje to odzwierciedlenia w wynikach SC3. Żaden klaster nie otrzymuje wysokiej stabilności, najprawdopodobniej ze względu na dużą liczbę próbek poruszających się między klastrami wraz ze wzrostem rozdzielczości. Ponieważ w symulowanych zestawach danych znajduje się więcej prawdziwych klastrów, wyniki stabilności SC3 stają się bardziej predykcyjne w zakresie poprawnej rozdzielczości. Ważne jest jednak, aby przyjrzeć się punktom stabilności wszystkich klastrów w określonej rozdzielczości, ponieważ uzyskanie najwyższego indywidualnego wyniku stabilności klastra może prowadzić do zastosowania niewłaściwej rozdzielczości, jak widać w przykładzie czterech klastrów (symulacja E). Te przykłady pokazują, w jaki sposób drzewa klastrowania mogą być używane do wyświetlania istniejących wskaźników klastrowania w sposób, który może pomóc w informowaniu o wyborze parametrów.
prosty przykład
aby jeszcze bardziej zilustrować, jak zbudowane jest drzewo klastrowania, będziemy pracować nad przykładem przy użyciu klasycznego zestawu danych tęczówki . Ten zbiór danych zawiera pomiary długości sepalu, szerokości sepalu, długości płatka i szerokości płatka od 150 kwiatów tęczówki, 50 z każdego z trzech gatunków: Iris setosa, iris versicolor i Iris virginica. Zestaw danych iris jest powszechnie stosowany jako przykład zarówno klastrowania i klasyfikacji problemów z I. setosa próbek jest znacznie różni się od, i liniowo oddzielone od innych próbek. Zebraliśmy ten zbiór danych używając |$K$ / – czyli grupowanie z |$k\,\, = \,\,1,\,\, \ldots, 5$ / i wyprodukował drzewo klastrowania pokazane na Fig. 3A.
klastrowanie drzew na podstawie / $K$ / – oznacza klastrowanie zbioru danych tęczówki. (A) węzły są kolorowe zgodnie z wartością |$k$ / i wielkości w zależności od liczby próbek, które reprezentują. Krawędzie są kolorowe w zależności od liczby próbek (od niebieskiego reprezentującego kilka do żółtego reprezentującego wiele). Przezroczystość jest dostosowywana do proporcji, a mocniejsze linie pokazują krawędzie, które są ważniejsze dla klastra o wyższej rozdzielczości. Etykiety klastrów są losowo przydzielane przez algorytm / $k$ / – means. B) to samo drzewo z kolorem węzła zmienione, aby pokazać średnią długość płatków próbek w każdym klastrze.
klastrowanie drzew na podstawie / $K$ / – oznacza klastrowanie zbioru danych tęczówki. (A) węzły są kolorowe zgodnie z wartością |$k$ / i wielkości w zależności od liczby próbek, które reprezentują. Krawędzie są kolorowe w zależności od liczby próbek (od niebieskiego reprezentującego kilka do żółtego reprezentującego wiele). Przezroczystość jest dostosowywana do proporcji, a mocniejsze linie pokazują krawędzie, które są ważniejsze dla klastra o wyższej rozdzielczości. Etykiety klastrów są losowo przydzielane przez algorytm / $k$ / – means. B) to samo drzewo z kolorem węzła zmienione, aby pokazać średnią długość płatków próbek w każdym klastrze.
widzimy, że jedna gałąź drzewa jest wyraźnie odrębna (prawdopodobnie reprezentująca I. setosa), pozostając niezmieniona niezależnie od liczby skupisk. Z drugiej strony widzimy, że klaster w / $k\,\, = \,\,2$| czysto dzieli się na dwie gromady (prawdopodobnie I. versicolor i I. virginica) przy |$K\,\, = \,\,3$|. Jednak gdy przechodzimy do / $k\,\, = \,\,4$| i / $k\,\, = \,\,5$|, widzimy skupiska tworzące się z wielu gałęzi o mniej proporcjonalnych krawędziach. Jak widzieliśmy w symulowanych przykładach, tego rodzaju wzór może wskazywać, że dane zostały przetaktowane i zaczęliśmy wprowadzać sztuczne zgrupowania.
możemy sprawdzić nasze założenie, że odrębna gałąź reprezentuje próbki I. setosa i że pozostałe dwie gromady w / $k\,\, = \,\,3$| są I. versicolor i I. virginica nakładając pewne znane informacje o próbkach. Na Rys. 3b pokolorowaliśmy węzły według średniej długości płatków próbek, które zawierają. Teraz widzimy, że klastry w odrębnej gałęzi mają najkrótsze płatki, z klastrem 1 W / $k\,\, = \,\,3$| o średniej długości i klastrze 3 o najdłuższych płatkach. Ta cecha jest znana z rozdzielania próbek na oczekiwane gatunki, przy czym I. setosa ma najkrótsze płatki średnio, I. versicolor pośrednią Długość, a I. virginica najdłuższą.
chociaż jest to bardzo prosty przykład, podkreśla niektóre zalety wyświetlania drzewa klastrowego. Badając krawędzie otrzymujemy pewne wskazówki dotyczące właściwej rozdzielczości klastrowania i możemy nakładać znane informacje, aby ocenić jakość klastrowania. Na przykład, jeśli zauważylibyśmy, że wszystkie klastry mają tę samą średnią długość płatka, sugerowałoby to, że grupowanie nie powiodło się, ponieważ wiemy, że jest to ważna cecha, która oddziela gatunek. Możemy potencjalnie dowiedzieć się więcej, patrząc na to, które próbki podążają za krawędziami o małej proporcji lub nakładając szereg funkcji, aby spróbować zrozumieć, co powoduje podział poszczególnych klastrów.
drzewa klastrowe dla danych scRNA-seq
jedną z dziedzin, która zaczęła intensywnie wykorzystywać techniki klastrowania, jest analiza danych scRNA-seq. sekwencjonowanie scRNA jest niedawno opracowaną technologią, która może mierzyć, w jaki sposób geny są wyrażane w tysiącach do milionów pojedynczych komórek . Technologia ta została szybko przyjęta w dziedzinach takich jak biologia rozwoju i immunologia, gdzie cenne jest posiadanie informacji z pojedynczych komórek, a nie pomiarów, które są uśredniane w wielu różnych komórkach w próbce przy użyciu starszych technologii RNA-seq. Kluczowym zastosowaniem dla scRNA-seq jest odkrywanie i przesłuchiwanie różnych typów komórek obecnych w próbce złożonej tkanki. W tej sytuacji, grupowanie jest zazwyczaj używane do grupowania podobnych komórek w oparciu o ich profile ekspresji genów. Różnice w ekspresji genów między grupami mogą być następnie wykorzystane do ustalenia tożsamości lub funkcji tych komórek . Liczba komórek typów (klastry) w scrna-seq zestaw danych może się różnić w zależności od czynników, takich jak tkanki badane, jego rozwoju lub stanu środowiska, i liczba komórek przechwyconych. Często liczba typów komórek nie jest znana przed wygenerowaniem danych, a niektóre próbki mogą zawierać dziesiątki klastrów. Dlatego decyzja, która rozdzielczość klastrowania użyć jest ważnym czynnikiem w tej aplikacji.
jako przykład użycia grupowania drzew w kontekście scRNA-seq, rozważamy powszechnie stosowany zbiór danych z komórek jednojądrzastych krwi obwodowej (PBMC). Ten zestaw danych został pierwotnie wyprodukowany przez 10x Genomics i zawiera 2700 komórek jednojądrzastych krwi obwodowej, reprezentujących szereg dobrze zbadanych typów komórek odpornościowych . Przeanalizowaliśmy ten zestaw danych za pomocą pakietu Seurat, powszechnie używanego zestawu narzędzi do analizy scRNA-seq, postępując zgodnie z instrukcjami w ich samouczku, z wyjątkiem zmiany parametru rozdzielczości klastrowania od zera do 5(patrz metody). Seurat używa algorytmu klastrowania opartego na wykresach, a parametr rozdzielczość kontroluje partycjonowanie tego wykresu, a wyższe wartości powodują więcej klastrów. Klastry drzew uzyskane z tej analizy przedstawiono na Fig. 4.
dwa drzewa klastrowe zbioru danych 2700 PBMC. A) wynika z klastrowania przy użyciu Seurat o parametrach rozdzielczości od zera do 1. W rozdzielczości 0.1 widzimy powstanie czterech głównych gałęzi, z których jedna nadal dzieli się do rozdzielczości 0.4, po czym są tylko drobne zmiany. B) uchwały od 0 do 5. Przy najwyższych rozdzielczościach zaczynamy dostrzegać wiele niskich proporcji krawędzi, co wskazuje na niestabilność klastra. Seurat etykietuje klastry według ich wielkości, przy czym klaster 0 jest największy.
dwa drzewa klastrowe zbioru danych 2700 PBMC. A) wynika z klastrowania przy użyciu Seurat o parametrach rozdzielczości od zera do 1. W rozdzielczości 0.1 widzimy powstanie czterech głównych gałęzi, z których jedna nadal dzieli się do rozdzielczości 0.4, po czym są tylko drobne zmiany. B) uchwały od 0 do 5. Przy najwyższych rozdzielczościach zaczynamy dostrzegać wiele niskich proporcji krawędzi, co wskazuje na niestabilność klastra. Seurat etykietuje klastry według ich wielkości, przy czym klaster 0 jest największy.
drzewo klastrowania obejmujące rozdzielczości od 0 do 1 w krokach 0,1 (rys. 4A) pokazuje, że cztery główne gałęzie tworzą się w rozdzielczości zaledwie 0,1. Jedna z tych gałęzi, zaczynająca się od klastra 3 w rozdzielczości 0.1, pozostaje bez zmian, podczas gdy gałąź zaczynająca się od klastra 2 dzieli się tylko raz w rozdzielczości 0.4. Większość rozgałęzień występuje w gałęzi zaczynającej się od klastra 1, który konsekwentnie dzieli się, tworząc nowe klastry wraz ze wzrostem rozdzielczości. Istnieją dwa regiony stabilności w tym drzewie – w rozdzielczości 0.4 – 0.5 i rozdzielczości 0.7–1.0, gdzie gałąź zaczynająca się od klastra 0 dzieli się na dwie części.
rys. 4B pokazuje drzewo klastrowania z większym zakresem rozdzielczości, od zera do 5 w krokach co 0.5. Patrząc w tym zakresie, możemy zobaczyć, co się dzieje, gdy algorytm jest zmuszony do wytworzenia większej liczby klastrów, niż jest prawdopodobne, aby być naprawdę obecne w tym zbiorze danych. Jak overclustering występuje, zaczynamy widzieć bardziej niskie w proporcjach krawędzie i nowe klastry tworzące się z wielu klastrów nadrzędnych. Sugeruje to, że te obszary drzewa są niestabilne i że nowe klastry są mało prawdopodobne, aby reprezentować prawdziwe grupy w zbiorze danych.
znane geny markerowe są powszechnie używane do identyfikacji typów komórek, którym odpowiadają specyficzne klastry. Nakładanie informacji o ekspresji genów na drzewo klastrów zapewnia alternatywny widok, który może pomóc wskazać, kiedy powstają klastry zawierające czyste populacje komórek. Fig. 5 przedstawia drzewo klastrowania PBMC na Fig. 4A pokrywa się z ekspresją niektórych znanych genów markerowych.
klastrowanie drzew zbioru danych PBMC zabarwione zgodnie z ekspresją znanych markerów. Kolory węzłów wskazują średnią liczbę genów log2 próbek w każdym klastrze. CD19 (a) identyfikuje komórki B, CD14 (B) pokazuje populację monocytów, CD3D (C) jest markerem komórek T, A CCR7 (D) pokazuje podział między pamięcią a naiwnymi komórkami T CD4.
klastrowanie drzew zbioru danych PBMC zabarwione zgodnie z ekspresją znanych markerów. Kolory węzłów wskazują średnią liczbę genów log2 próbek w każdym klastrze. CD19 (a) identyfikuje komórki B, CD14 (B) pokazuje populację monocytów, CD3D (C) jest markerem komórek T, A CCR7 (D) pokazuje podział między pamięcią a naiwnymi komórkami T CD4.
dodając te dodatkowe informacje, możemy szybko zidentyfikować niektóre typy komórek. CD19 (rys. 5A) jest markerem komórek B i jest wyraźnie wyrażona w najbardziej wyraźnej gałęzi drzewa. CD14 (rys. 5B) jest markerem typu monocytów, który staje się bardziej wyrażony, gdy podążamy za jedną z centralnych gałęzi, co pozwala nam zobaczyć, która rozdzielczość identyfikuje czystą populację tych komórek. CD3D (rys. 5C) jest ogólnym markerem komórek T i jest wyrażany w dwóch oddzielnych gałęziach, które dzielą się na niską i wysoką ekspresję CCR7 (Fig. 5D), oddzielając pamięć i naiwne komórki T CD4. Dodając ekspresję znanych genów do drzewa klastrowego, możemy zobaczyć, czy więcej populacji można zidentyfikować, ponieważ rozdzielczość klastrowania jest zwiększona i czy klastry są zgodne ze znaną biologią. Dla większości tutoriali Seurata używana jest rozdzielczość 0,6, ale autorzy zauważają, że przechodząc do rozdzielczości 0,8, można uzyskać podział między pamięcią a naiwnymi komórkami T CD4. Jest to podział, który można było przewidzieć, patrząc na drzewo klastrowania z dodatkiem wcześniejszych informacji.
dyskusja
grupowanie podobnych próbek w grupy jest użyteczną techniką w wielu dziedzinach, ale często analitycy mają do czynienia z trudnym problemem decydowania, której rozdzielczości klastrowania użyć. Tradycyjne podejście do tego problemu zazwyczaj uwzględnia pojedynczy klaster lub próbkę na raz i może polegać na wcześniejszej znajomości etykiet próbek. Tutaj prezentujemy drzewa klastrowe, alternatywną wizualizację, która pokazuje relacje między klastrami w wielu rozdzielczościach. Chociaż drzewa klastrowania nie mogą bezpośrednio sugerować, której rozdzielczości klastrowania użyć, mogą być użytecznym narzędziem pomagającym w podjęciu tej decyzji, szczególnie w połączeniu z innymi metrykami lub wiedzą o domenie.
drzewa grupujące pokazują, w jaki sposób klastry są podzielone wraz ze wzrostem rozdzielczości, które klastry są wyraźnie oddzielne i odrębne, które są ze sobą powiązane oraz jak próbki zmieniają grupy w miarę tworzenia większej liczby klastrów. Chociaż drzewa klastrowe mogą wyglądać podobnie do drzew powstałych w wyniku klastrowania hierarchicznego, istnieje kilka istotnych różnic. Hierarchiczne grupowanie uwzględnia relacje między poszczególnymi próbkami i nie zapewnia oczywistego sposobu tworzenia grup. W przeciwieństwie do tego, drzewa klastrowania są niezależne od konkretnej metody klastrowania i pokazują relacje między klastrami, a nie próbkami, w różnych rozdzielczościach, z których każda może być wykorzystana do dalszej analizy.
aby zilustrować zastosowania drzew klastrowych, zaprezentowaliśmy serię symulacji i dwa przykłady rzeczywistych analiz, jedną z wykorzystaniem klasycznego zbioru danych iris, a drugą opartą na złożonym zbiorze danych scRNA-seq. Oba przykłady pokazują, w jaki sposób drzewo klastrów może pomóc w podjęciu decyzji, której rozdzielczości użyć, i w jaki sposób nakładanie dodatkowych informacji może pomóc w walidacji tych klastrów. Jest to szczególnie przydatne do analizy scRNA-seq, ponieważ te zbiory danych są często duże, hałaśliwe i zawierają nieznaną liczbę typów komórek lub klastrów.
nawet jeśli określenie liczby klastrów nie stanowi problemu, klastrowanie drzew może być cennym narzędziem. Zapewniają one zwartą, gęstą od informacji wizualizację, która może wyświetlać podsumowane informacje w różnych klastrach. Modyfikując wygląd węzłów klastra w oparciu o atrybuty próbek, które reprezentują, można oceniać klastry i ustalać tożsamości klastrów. Drzewa klastrowe mają potencjalnie zastosowanie w wielu dziedzinach, a w przyszłości mogą być przystosowane do większej elastyczności, na przykład poprzez przystosowanie rozmytych klastrów. Możliwe jest również zastosowanie bardziej ogólnych Wykresów klastrowania w celu łączenia wyników z wielu zestawów parametrów lub metod klastrowania.
metody
clustree
pakiet oprogramowania clustree (v0.2.0) jest zbudowany dla statystycznego języka programowania R (v3.5.0). Opiera się na pakiecie ggraph (v1.0.1) , który jest zbudowany na pakietach ggplot2 (v2.2.1) i tidygraph (v1.1.0). Drzewa klastrowania są wyświetlane za pomocą układu drzewa Reingold-Tilford lub układu Sugiyama; oba są dostępne jako część pakietu igraph (v1.2.1).
pokazane tutaj panele rysunkowe zostały wyprodukowane przy użyciu pakietu cowplot (v0.9.2).
symulacje
Symulowane zbiory danych zostały skonstruowane przez generowanie punktów z rozkładów statystycznych. Pierwsza symulacja (symulacja a) składa się z 1000 punktów losowo generowanych ze 100-wymiarowej przestrzeni przy równomiernym rozkładzie między zerem a 10. Symulacja B składa się z pojedynczego normalnie rozproszonego klastra składającego się z 1000 punktów w 100 wymiarach. Środek tej gromady wybrano z rozkładu normalnego ze średnią zerową i odchyleniem standardowym 10. Punkty były następnie generowane wokół tego środka z rozkładu normalnego ze średnią równą punktowi środkowemu i odchyleniem standardowym 5. Pozostałe trzy symulacje powstały poprzez dodanie dodatkowych klastrów. Aby mieć znane relacje między klastrami, centrum dla nowych klastrów zostało stworzone przez manipulowanie centrami istniejących klastrów. Dla klastra 2 wygenerowano losowy 100-wymiarowy wektor z rozkładu normalnego ze średnią zerową i odchyleniem standardowym 2 i dodano do środka dla klastra 1. Środek 3 był średnią środka 1 i środka 2 plus wektor losowy z rozkładu normalnego ze średnią zerową i odchyleniem standardowym 5. Aby zapewnić podobną zależność między klastrami 3 i 4 Jak między klastrami 1 i 2, środek 4 otrzymano przez dodanie połowy wektora użytego do wytworzenia środka 2 do środka 3 plus innego wektora z rozkładu normalnego ze średnią zerową i odchyleniem standardowym 2. Punkty dla każdego klastra były generowane w taki sam sposób jak dla klastra 1. Symulacja C składa się z punktów w klastrach 1 i 2; symulacja D składa się z klastrów 1, 2 i 3; symulacja E składa się z klastrów 1, 2, 3 i 4. Każdy symulowany zbiór danych był grupowany za pomocą funkcji” kmeans ” w pakiecie statystyk z wartościami |$k$| od 1 do 8, maksymalnie 100 iteracji i 10 losowych pozycji startowych. Wizualizacje drzewa klastrowania powstały przy użyciu pakietu clustree z układem drzewa. Symulowane zbiory danych i kod użyty do ich wytworzenia są dostępne w repozytorium tego artykułu .
Iris dataset
Iris dataset jest dostępny jako część R. Zebraliśmy ten zbiór danych za pomocą funkcji” kmeans ” w pakiecie statystyk z wartościami |$k$| od 1 do 5. Każda wartość |$k$ / była grupowana z maksymalnie 100 iteracjami i 10 losowymi pozycjami startowymi. Pakiet clustree został użyty do wizualizacji wyników za pomocą układu Sugiyama. Klastrowy zestaw danych iris jest dostępny jako część pakietu clustree.
zbiór danych PBMC
zbiór danych PBMC został pobrany ze strony samouczka Seurat , a ten samouczek był śledzony przez większość analizy przy użyciu wersji 2.3.1 Seurat. Krótko mówiąc, komórki filtrowano na podstawie liczby genów, które wyrażają i odsetka liczby przypisanej Genom mitochondrialnym. Dane zostały następnie poddane normalizacji logarytmicznej i zidentyfikowano 1838 zmiennych genów. Potencjalne zmienne zakłócające (liczba unikalnych identyfikatorów molekularnych i procentowa ekspresja mitochondrialna) regresowano z zestawu danych przed wykonaniem głównej analizy składowej zidentyfikowanych zmiennych genów. Pierwsze 10 głównych komponentów zostało następnie użyte do zbudowania grafu, który został podzielony na klastry za pomocą optymalizacji modułowości Louvaina z parametrami rozdzielczości w zakresie od 0 do 5, w krokach 0,1 między 0 a 1, a następnie w krokach 0,5. Clustree został następnie użyty do wizualizacji wyników za pomocą układu drzewa.
dostępność kodu źródłowego i wymagania
Nazwa projektu: clustree.
Strona domowa projektu: https://github.com/lazappi/clustree.
systemy operacyjne: Linux, MacOS, Windows
język programowania: R (> = 3.4)
inne wymagania: Brak
Licencja: GPL-3
wszelkie ograniczenia do używania przez osoby spoza środowiska akademickiego: brak
RRID:SCR_016293
dostępność danych pomocniczych
pakiet clustree jest dostępny w CRAN i jest rozwijany na Githubie . Kod i zbiory danych użyte do analizy przedstawione tutaj są również dostępne na GitHub . Zbiór danych iris jest częścią clustree, a zbiór danych PBMC można pobrać ze strony samouczka Seurat lub repozytorium Paper GitHub. Migawki kodu są dostępne w repozytorium GigaScience, GigaDB .
skróty
PBMC: komórki jednojądrzaste krwi obwodowej; scRNA-seq: sekwencjonowanie RNA jednokomórkowego.
konkurencyjne interesy
autorzy oświadczają, że nie mają konkurencyjnych interesów.
finansowanie
L. Z. jest wspierany przez stypendium programu badawczego rządu Australii. A. O. jest wspierany przez National Health and Medical Research Council career Development fellowship (APP1126157). Murdoch Children ’ s Research Institute jest wspierany przez wiktoriański rządowy program wsparcia infrastruktury operacyjnej.
wkład autora
L. Z. zaprojektował algorytm drzewa klastrowego, napisał pakiet oprogramowania clustree i sporządził rękopis. A. O. nadzorował projekt i komentował rękopis.
podziękowania
Dziękuję Markowi Cmero za komentarz do projektu artykułu oraz recenzentom za ich uwagi i sugestie.
.
.
;
:
–
.
.
. W
,
.
.
.
.
;
:
–
.
,
.
,
.
.
. pp.
–
.
,
,
i in.
.
.
:
;
. pp.
–
..
:
,
.
.
.
;
:
–
.
.
.
;
:
–
.
.
.
.
;
:
–
.
.
.
.
;
:
–
.
,
,
.
.
.
,
;
–
.
,
,
i in.
.
.
;
:
–
.
,
.
.
;
.
,
.
.
.
;
:
–
.
,
.
.
.
;
:
–
.
,
,
.
.
.
;
:
–
.
.
.
.
;
:
–
.
.
.
.
;
:
–
.
,
,
i in.
.
.
;
:
–
.
,
,
.
.
.
;
:
–
.
,
,
i in.
.
.
;
:
.
,
,
i in.
.
.
;
:
–
.
.
.
.
.
.
:
;
.
.
.
.
.
.
.
,
.
,
.
.
. ;
.
,
,
i in.
.
.
;
;
:
,
.
.
.
,
.
. ;
.
.
,
.
.
.
. .