This will return indices of features among the rownames
or rowData of a data.frame, matrix, or a SummarizedExperiment
object including a SingleCellExperiment.
Partial matching (i.e. grepping) can be used by setting
exactMatch = FALSE
.
retrieveFeatureIndex(
features,
x,
by = "rownames",
exactMatch = TRUE,
removeNA = FALSE
)
Character vector of feature names to find in the rows of
x
.
A data.frame, matrix, or SingleCellExperiment object to search.
Character. Where to search for features in x
. If set to
"rownames"
then the features will be searched for among
rownames(x)
. If x
inherits from class
SummarizedExperiment, then by
can be one of the
fields in the row annotation data.frame (i.e. one of
colnames(rowData(x))
).
Boolean. Whether to only identify exact matches
or to identify partial matches using grep
.
Boolean. If set to FALSE
, features not found in
x
will be given NA
and the returned vector will be the same
length as features
. If set to TRUE
, then the NA
values will be removed from the returned vector. Default FALSE
.
A vector of row indices for the matching features in x
.
'retrieveFeatureInfo' from package 'scater'
and link{regex}
for how to use regular expressions when
exactMatch = FALSE
.
data(celdaCGSim)
retrieveFeatureIndex(c("Gene_1", "Gene_5"), celdaCGSim$counts)
#> [1] 1 5
retrieveFeatureIndex(c("Gene_1", "Gene_5"), celdaCGSim$counts,
exactMatch = FALSE)
#> Warning: Feature 'Gene_1' matched multiple items in 'rownames': Gene_1,Gene_10,Gene_11,Gene_12,Gene_13,Gene_14,Gene_15,Gene_16,Gene_17,Gene_18,Gene_19,Gene_100. Only the first match will be selected.
#> Warning: Feature 'Gene_5' matched multiple items in 'rownames': Gene_5,Gene_50,Gene_51,Gene_52,Gene_53,Gene_54,Gene_55,Gene_56,Gene_57,Gene_58,Gene_59. Only the first match will be selected.
#> [1] 1 5