This method applies an approach called statistical consolidation of redundant expression measures (SCOREM) from Schneider et al. (2011) whitin each cell type, in order to select groups of markers that have consistent expression in mixed samples.
If multiple groups pass the criterion, then the group with the lowest median gene expression gene-wise standard deviation is selected. This is to select the group of markers whose expression values are the more similar.
markerScoreScorem(object, data, minsd = 0.1, alpha = 0.01, ..., verbose = FALSE)
S3 (markerScore_scorem)
`selectMarkers`(x, data, mscore = "pearson", statistic = c("size", "score"),
..., .object = NULL)
markerScoreScorem
, but passed to
selectMarkers.MarkerList
in
selectMarkers
.subset,MarkerList-method
), which can be
useful to track any ID conversion.matrix
, an object of class
ExpressionSet
, or a
MarkerList-class
object.data
,
by factor(data, levels=unique(data))
. This is to
obtain levels in an order that is consistent with the
samples' order.
If object is a MarkerList
object, then
data is generally a matrix-like object that
contains expression data.extractMarkers(..., format='raw')
. The type of
x
depends on the scoring method used to compute
it.extractMarkers
to pass the original object
on which marker scores where computed.The SCOREM approach allows sets of marker genes to be optimised with respect to the dataset one intends to use them with. It uses a sub-graph detection algorithm, on a graph defined from the rank correlation matrix of marker expression profiles.
IMPORTANT: this feature is still experimental and in development.
Before returning the MarkerList
object, each
selected marker is assigned a score defined as its
minimum correlation with other markers in its group.
Schneider S, Smith T and Hansen U (2011). "SCOREM:
statistical consolidation of redundant expression
measures." _Nucleic acids research_, pp. 1-12. ISSN
1362-4962,
# random data matrix and marker list
x <- rmix(3, 100, 20)
m <- getMarkers(x)
# compute SCOREM groups: should keep all markers together
# or remove weak markers
s <- markerScoreScorem(m, x)
str(s)
## List of 3
## $ CL_1:List of 1
## ..$ :List of 2
## .. ..$ ids : int [1:5] 1 2 3 4 5
## .. ..$ score: num 0.761
## $ CL_2:List of 2
## ..$ :List of 2
## .. ..$ ids : int(0)
## .. ..$ score: num 0.926
## ..$ :List of 2
## .. ..$ ids : int(0)
## .. ..$ score: num 1
## $ CL_3:List of 2
## ..$ :List of 2
## .. ..$ ids : int(0)
## .. ..$ score: num 0.872
## ..$ :List of 2
## .. ..$ ids : int(0)
## .. ..$ score: num 1
## - attr(*, "annotation")= chr ""
# add some non marker genes
m2 <- m
m2[[1]] <- as.integer(c(m2[[1]], c(40, 50, 60)))
s <- markerScoreScorem(m2, x)
str(s[[1]])
## List of 3
## $ :List of 2
## ..$ ids : int(0)
## ..$ score: num 0.761
## $ :List of 2
## ..$ ids : int(0)
## ..$ score: num 0.98
## $ :List of 2
## ..$ ids : int(0)
## ..$ score: num 1
# with group selection and reordering through the main interface function
extractMarkers(m, x, method='scorem')
## <object of class: MarkerList>
## Types: CL_1, CL_2, CL_3 (total: 3)
## Mode: numeric
## setName: NA
## geneIds: 5, 1, ..., 4 (total: 5)
## geneIdType: Null
## collectionType: Null
## geneValues: 0.791684458868753, 0.785971282658387, ..., 0.368512806309357
## details: use 'details(object)'
extractMarkers(m2, x, method='scorem')
## <object of class: MarkerList>
## Types: CL_1, CL_2, CL_3 (total: 3)
## Mode: numeric
## setName: NA
## geneIds: (total: 0)
## geneIdType: Null
## collectionType: Null
## geneValues:
## details: use 'details(object)'
extractMarkers
,
markerScoreAbbas
,
markerScoreHSD
,
markerScoreMaxcol
,
markerScoreMethod
,
scoreMarkers
,
selectMarkers.markerScore_HSD