Marker scoring method: SCOREM

Description

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.

Usage

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)

Arguments

minsd
minimum standard deviation of expression marker profiles
alpha
numerical value between 0 and 1, indicating the level of significance required for correlations to be considered significant. It is a p-value threshold: the lower the value the more markers must be correlated to be called in the same sub-group.
...
extra arguments not used in markerScoreScorem, but passed to selectMarkers.MarkerList in selectMarkers.
verbose
logical that toggles log messages (passed to subset,MarkerList-method), which can be useful to track any ID conversion.
mscore
correlation method used to compute a score for each marker of the selected groups.
object
A numeric matrix, an object of class ExpressionSet, or a MarkerList-class object.
data
main extra data used by the scoring and selection methods. If object is a matrix-like object, data is generally a factor or grouping variable, as a vector, that defines the cell-type for each -- pure -- sample. If a vector, this argument is converted into a factor with the levels in their order of appearance in 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.
x
data object based on which the markers are selected, as computed returned by extractMarkers(..., format='raw'). The type of x depends on the scoring method used to compute it.
statistic
name or column index of the statistic/score to use. The default is to use the second column of the matrix returned by the scoring method, but each method can define its own default.
.object
argument used internally by extractMarkers to pass the original object on which marker scores where computed.

Details

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.

References

Schneider S, Smith T and Hansen U (2011). "SCOREM: statistical consolidation of redundant expression measures." _Nucleic acids research_, pp. 1-12. ISSN 1362-4962, , .

Examples


# 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)'