theislab / destiny

R package for single cell and other data analysis using diffusion maps
https://theislab.github.io/destiny/
GNU General Public License v3.0
69 stars 12 forks source link

color code doesn't work for 3d diffusion map #40

Open liuweihanty opened 3 years ago

liuweihanty commented 3 years ago

Hi there! Thanks for the package! I'm using destiny to plot a diffusion map from my seurat object. I use the cell cluster names(HSC, B, Neutrophils..) as my color by argument. I was able to plot for 2d graph for no problem(code as below), however, when I do 3d plot by plot(dm,c(1,2,3),col_by = "celltype",pch = 10), there's an error message saying : Error in plot.xy(xy.coords(x, y), type = type, ...) : invalid color name 'B'. Same error message when I try plot3d(). Do you know what might cause this issue? Thanks!

library(Biobase)
ct <-GetAssayData(object = seu)
ct<-ct[VariableFeatures(seu),]
ct <- as.ExpressionSet(as.data.frame(t(ct)))
ct$celltype <- seu@meta.data[,c("clust.ident")]
dm <- DiffusionMap(ct,k = 10,n_pcs = 50)

library(scales)
palette(hue_pal()(8)) #I have 8 clusters
plot(dm,c(1,2),col_by = "celltype",pch = 10)
MarcusLCC commented 2 years ago

Hi @liuweihanty, I got the same error when trying to plot 3d diffusion map, but the work around that I found is to provide the "factor" to "col" argument, instead of directly specifying the column name.

Such as plot(dm, col = as.factor(dm$celltype), pch = 10)

Best Marcus