From 7898c0cbfe7173f2eb110a554f6e0a7c8f80ad1c Mon Sep 17 00:00:00 2001 From: maxim-h Date: Mon, 2 Sep 2024 11:10:07 +0200 Subject: [PATCH 1/2] Allow WhichCells reference Features next to `)` --- R/seurat.R | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/R/seurat.R b/R/seurat.R index 7664a29d..5a1a7a16 100644 --- a/R/seurat.R +++ b/R/seurat.R @@ -2794,6 +2794,12 @@ WhichCells.Seurat <- function( x = expr.char, fixed = TRUE ) + expr.char <- gsub( + pattern = ')', + replacement = '', + x = expr.char, + fixed = TRUE + ) expr.char <- gsub( pattern = '`', replacement = '', From 2944834294caf8b9b122751e91bdb3543bd8cea9 Mon Sep 17 00:00:00 2001 From: maxim-h Date: Mon, 2 Sep 2024 11:39:12 +0200 Subject: [PATCH 2/2] Replcade manual search for vars with R's built-in --- R/seurat.R | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/R/seurat.R b/R/seurat.R index 5a1a7a16..7deb80a4 100644 --- a/R/seurat.R +++ b/R/seurat.R @@ -2786,25 +2786,7 @@ WhichCells.Seurat <- function( } else { parse(text = expression) } - expr.char <- suppressWarnings(expr = as.character(x = expr)) - expr.char <- unlist(x = lapply(X = expr.char, FUN = strsplit, split = ' ')) - expr.char <- gsub( - pattern = '(', - replacement = '', - x = expr.char, - fixed = TRUE - ) - expr.char <- gsub( - pattern = ')', - replacement = '', - x = expr.char, - fixed = TRUE - ) - expr.char <- gsub( - pattern = '`', - replacement = '', - x = expr.char - ) + expr.char <- all.vars(expr) vars.use <- which( x = expr.char %in% rownames(x = object) | expr.char %in% colnames(x = object[[]]) |