Because I can't remember how my methods work...
authorPaul Hoffman <phoffman@nygenome.org>
Wed, 13 Dec 2017 19:26:05 +0000 (14:26 -0500)
committerPaul Hoffman <phoffman@nygenome.org>
Wed, 13 Dec 2017 19:26:05 +0000 (14:26 -0500)
R/loom.R

index f833fa06d706ad036948e5baa944fbda810084b9..2fd3fd9b13dae5f9c8cd6acaf864995e8503ef15 100644 (file)
--- a/R/loom.R
+++ b/R/loom.R
@@ -1013,7 +1013,8 @@ subset.loom <- function(
       counter <- 0
     }
     for (row.attr in row.attrs) {
-      new.loom$add.row.attribute(attribute = x[[row.attr]][m])
+      base.row <- basename(path = row.attr)
+      new.loom$add.row.attribute(attribute = base.row = x[[row.attr]][m]))
       if (display.progress) {
         counter <- counter + 1
         setTxtProgressBar(pb = pb, value = counter / length(x = row.attrs))
@@ -1031,7 +1032,8 @@ subset.loom <- function(
       counter <- 0
     }
     for (col.attr in col.attrs) {
-      new.loom$add.col.attribute(attribute = x[[col.attr]][n])
+      base.col <- basename(path = col.attr)
+      new.loom$add.col.attribute(attribute = list(base.col = x[[col.attr]][n]))
       if (display.progress) {
         counter <- counter + 1
         setTxtProgressBar(pb = pb, value = counter / length(x = col.attrs))
@@ -1049,7 +1051,8 @@ subset.loom <- function(
       counter <- 0
     }
     for (layer in layers) {
-      new.loom$add.layer(layers = x[[layer]][n, m])
+      base.layer <- basename(path = layer)
+      new.loom$add.layer(layers = list(base.layer = x[[layer]][n, m]))
       if (display.progress) {
         counter <- counter + 1
         setTxtProgressBar(pb = pb, value = counter / length(x = layers))
@@ -1058,6 +1061,7 @@ subset.loom <- function(
   } else {
     warning("No layers found")
   }
+  new.loom$flush()
   return(new.loom)
 }