--- a +++ b/R/DIscBIO-generic-plotLabelstSNE.R @@ -0,0 +1,59 @@ +#' @title tSNE map with labels +#' @description Visualizing k-means or model-based clusters using tSNE maps +#' @param object \code{DISCBIO} class object. +#' @rdname plotLabelstSNE +#' @importFrom graphics text +#' @return Plot containing the ID of the cells in each cluster +setGeneric("plotLabelstSNE", function(object) { + standardGeneric("plotLabelstSNE") +}) + +#' @rdname plotLabelstSNE +#' @export +setMethod( + "plotLabelstSNE", + signature = "DISCBIO", + definition = function(object) { + # ====================================================================== + # Validating + # ====================================================================== + ran_k <- length(object@tsne) > 0 + ran_m <- length(object@MBtsne) > 0 + if (ran_k) { + Clusters <- object@kmeans$kpart + x <- object@tsne + } else if (ran_m) { + Clusters <- object@MBclusters$clusterid + x <- object@MBtsne + } else { + stop("run comptsne before plotLabelstSNE") + } + # ====================================================================== + # Plotting + # ====================================================================== + ClustersFactor <- as.factor(Clusters) + ClustersFactor <- gsub("1", "black", ClustersFactor) + ClustersFactor <- gsub("2", "blue", ClustersFactor) + ClustersFactor <- gsub("3", "green", ClustersFactor) + ClustersFactor <- gsub("4", "red", ClustersFactor) + ClustersFactor <- gsub("5", "yellow", ClustersFactor) + ClustersFactor <- gsub("6", "gray", ClustersFactor) + COL <- ClustersFactor + labels <- names(object@ndata) + plot( + x, + xlab = "Dim 1", + ylab = "Dim 2", + pch = 20, + cex = .5, + col = "lightgrey" + ) + text( + x[, 1], + x[, 2], + labels, + cex = .7, + col = COL + ) + } +)