计算字符串表达式(R,Seurat)

t9eec4r0  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(175)

我试图计算R Seurat包的subset()函数中的字符串表达式。https://satijalab.org/seurat/articles/essential_commands.html
例如,代替

subset(x = pbmc, subset = MS4A1 > 3)

我要做的

string.to.evaluate = "MS4A1 > 3"
subset(x = pbmc, subset = string.to.evaluate)

我知道eval(parse())有时候可以用来计算字符串表达式,但是由于MS4A1pbmc中的一个行名,所以这样做是失败的。
编辑:为清楚起见,"MS4A1"是S4 SeuratObject pbmc内"计数"槽的行名称。在Seurat包中,有一个subset方法用于干净地访问和筛选SeuratObject,我希望通过向其传递字符串来动态调用它。

s8vozzvw

s8vozzvw1#

您可以执行以下操作:

string.to.evaluate = "MS4A1 > 3"
subset(x = pbmc, !!str2lang(string.to.evaluate))

示例:

data(pbmc_small, package = "SeuratObject")
string.to.evaluate = "nCount_RNA>202"
subset(x = pbmc_small, !!str2lang(string.to.evaluate))

An object of class Seurat 
230 features across 36 samples within 1 assay 
Active assay: RNA (230 features, 20 variable features)
 2 dimensional reductions calculated: pca, tsne

相关问题