Select rows of a data frame based on phenotypes or other expressions.
select_rows(csd, sel)
A data frame
May be a character vector, a one-sided formula, a list
containing such or NA
. A character vector is interpreted as
the name(s) of one or
more phenotypes and selects any matching phenotype. A formula is
interpreted as an expression on the columns of csd
.
Multiple list items are joined with AND. NA
is interpreted
as "select all". It is convenient for lists of selection criteria.
A logical vector of length nrow(csd)
which selects rows
according to sel
.
select_rows
implements a flexible mechanism for selecting cells (rows)
from a cell segmentation table. Cells may be selected by single or
multiple phenotype, by expression level, or combinations of both.
See the tutorial Selecting cells within a cell segmentation table for extensive documentation and examples.
parse_phenotypes for a convenient way to create selectors for most common phenotypes.
csd <- sample_cell_seg_data
# Select tumor cells with PDL1 expression > 3
selector <- list('CK+', ~`Entire Cell PDL1 (Opal 520) Mean`>3)
pdl1_pos_tumor <- csd[select_rows(csd, selector),]
range(pdl1_pos_tumor$`Entire Cell PDL1 (Opal 520) Mean`)
#> [1] 3.007 47.459
# Select all T-cells. Note: Use c() to combine phenotypes, not list()
selector <- c('CD8+', 'FoxP3+')
tcells <- csd[select_rows(csd, selector),]
table(tcells$Phenotype)
#>
#> CD8+ FoxP3+
#> 228 228