3D UMAP plot
기본적으로 dimension reduction은 2D로 많이 진행하지만 어떤 경우, 3D plot으로 그렸을때 그 구조가 더 잘 이해되는 경우가 있다. seurat으로 3d umap그리는법 정리해본다.
필요한 library들은 다음과 같다.
1
2
3
4
5
6
7
8
9
10
library(monocle3)
library(Seurat)
library(SeuratWrappers)
library(ggplot2)
library(patchwork)
library(magrittr)
library(plotly)
library(rgl)
library(ggthemes)
library(scales)
설치 방법 정리 한번에!
사실 처음에 2 dimension reduction 할때 같이 하면 편하고 좋지만 나중가서 하고 싶어지는 경우가 대부분이라… 하지만 결론은 언제 하던 상관없다.
이미 UMAP으로 2 dimension reduction까지 끝낸 파일을 불러 오고,
RunUMAP
부분부터 다시 3 dimension 으로 진행하면 된다. 포인트는 2D때와 parameter들을 동일하게 한다는것. n.components=3L
이 옵션만 추가해주고 PC 갯수나 method같은 것들은 동일하게 진행해주면 같은 모양의 3D그림을 얻을 수 있다.
1
2
3
2D_seurat <-readRDS("example.rds")
3D_seurat <- RunUMAP(2D_seurat, reduction = "pca", dims = 1:30, umap.method="umap-learn", n.components=3L)
visualization은 monocle3을 이용할 것이다. htmlwidgets::saveWidget
을 사용하면 html파일로 저장할 수 있다.
1
2
3
4
5
6
7
8
cds_3d <- as.cell_data_set(3D_seurat)
cds_3d <- cluster_cells(cds_3d)
cds_3d <- learn_graph(cds_3d)
pal = rainbow(20)
names(pal) = levels(3D_seurat$seurat_clusters)
cds_3d_plot_obj <- plot_cells_3d(cds_3d, color_cells_by="seurat_clusters",reduction_method="UMAP",color_palette=pal)
htmlwidgets::saveWidget(cds_3d_plot_obj, "seurat.cluster.html")
This post is licensed under CC BY 4.0 by the author.