TestOutliers: TestOutliers

View source: R/3_buildMST.R

TestOutliersR Documentation

TestOutliers

Description

Test if any cells are too far from their cluster centers

Usage

TestOutliers(
  fsom,
  madAllowed = 4,
  fsomReference = NULL,
  plotFile = NULL,
  channels = NULL
)

Arguments

fsom

FlowSOM object

madAllowed

Number of median absolute deviations allowed. Default = 4.

fsomReference

FlowSOM object to use as reference. If NULL (default), the original fsom object is used.

plotFile

If NULL (default), no plot will be created. If a filepath is given for a pdf, the plot will be written in the corresponding file

channels

If channels are given, the number of outliers in the original space for those channels will be calculated and added to the final results table.

Details

For every cluster, the distance from the cells to the cluster centers is used to label cells which deviate too far as outliers. The threshold is chosen as the median distance + madAllowed times the median absolute deviation of the distances.

Value

An outlier report

See Also

FlowSOMSubset if you want to get a subset of the current data instead of a new dataset

Examples

 # Build FlowSom result
 fileName <- system.file("extdata", "68983.fcs", package = "FlowSOM")
 ff <- flowCore::read.FCS(fileName)
 flowSOM.res <- FlowSOM(ff,
                        compensate = TRUE, transform = TRUE, scale = TRUE,
                        colsToUse = c(9, 12, 14:18),
                        nClus = 10)
   
 # Map new data
 outlier_report <- TestOutliers(flowSOM.res, 
                                madAllowed = 5,
                                channels = flowSOM.res$map$colsUsed)

 # Number of cells which is an outlier for x channels                               
 outlier_on_multiple_markers <- table(rowSums(outlier_report$channel_specific != 0))          
 outlier_type <- paste(GetClusters(flowSOM.res),
                       apply(outlier_report$channel_specific, 1, paste0, collapse = ""))
 outlier_counts <- table(grep(" .*1.*", outlier_type, value = TRUE))
 outliers_of_interest <- names(which(outlier_counts > 10))
 outlier_boolean <- outlier_type %in% outliers_of_interest
 

SofieVG/FlowSOM documentation built on Feb. 1, 2024, 11:33 a.m.