Browse code

Fixed bug related to factor order when recoding Z/Y

Joshua D. Campbell authored on 20/09/2021 19:55:31
Showing 1 changed files

... ...
@@ -162,8 +162,13 @@ recodeClusterZ <- function(sce, from, to, altExpName = "featureSubset") {
162 162
         stop("Provided 'sce' argument does not have a 'celda_cell_cluster'",
163 163
             " column in 'colData(altExp(sce, altExpName))'")
164 164
     }
165
-    celdaClusters(sce, altExpName = altExpName) <- plyr::mapvalues(
166
-        celdaClusters(sce, altExpName = altExpName), from, to)
165
+    new.clusters <- plyr::mapvalues(celdaClusters(sce,
166
+                                                  altExpName = altExpName),
167
+                                    from, to)
168
+    new.clusters <- factor(new.clusters, levels = 
169
+                             sort(as.numeric(unique(new.clusters))))
170
+    
171
+    celdaClusters(sce, altExpName = altExpName) <- new.clusters
167 172
     return(sce)
168 173
 }
169 174
 
... ...
@@ -210,6 +215,12 @@ recodeClusterY <- function(sce, from, to, altExpName = "featureSubset") {
210 215
         stop("Provided 'sce' argument does not have a 'celda_feature_module'",
211 216
             " column in 'rowData(altExp(sce, altExpName))'")
212 217
     }
218
+    new.clusters <- plyr::mapvalues(celdaModules(sce,
219
+                                                  altExpName = altExpName),
220
+                                  from, to)
221
+    new.clusters <- factor(new.clusters, levels = 
222
+                             sort(as.numeric(unique(new.clusters))))
223
+  
213 224
     celdaModules(sce, altExpName = altExpName) <- plyr::mapvalues(
214 225
         celdaModules(sce, altExpName = altExpName), from, to)
215 226
     return(sce)