fitModal: Fit a Bimodal Gaussian Distribution

View source: R/fitModal.R

fitModalR Documentation

Fit a Bimodal Gaussian Distribution

Description

Fit a bimodal gaussian distribution to a set of observations.

Usage

fitModal(
  x,
  m,
  prob = 0.95,
  coverage = 0.8,
  size = 10,
  assign = FALSE,
  boolean = FALSE,
  verbose = TRUE,
  maxit = 5000,
  maxrestarts = 100,
  bySampling = FALSE,
  nsamp = 200,
  ...
)

Arguments

x

a named numeric vector of cells/observations or a matrix of genes X cells (variables X observations). If the latter, the column means are first computed.

m

number of components (modes). Default: 2

prob

a numeric value >= 0 and <= 1; the minimum posterior probability required for an observation to be assigned to a mode. Default: 0.95

coverage

the fraction of observations that must have a posterior probability higher than <prob> to one of two modes in order for the distribution to qualify as bimodal. Default: 0.8

size

the minimum number of observations that must be assigned to a mode in order for the distribution to qualify as bimodal. Default: 10

assign

if set to TRUE, returns a list of length two containing the vector names that were assigned to each mode. Default: FALSE

boolean

if set to TRUE, returns a boolean value indicating whether the distribution is bimodal. Default: FALSE

verbose

print progress messages. Default: TRUE

maxit

the maximum number of iterations. Default: 5000

maxrestarts

the maximum number of restarts allowed. See normalmixEM for details. Default: 100

Value

The posterior probabilities of each observation to one of two modes. If boolean = TRUE, return a boolean value indicating whether bimodality was found. If assign = TRUE, return a list of length two with the observations (IDs) in each mode.

See Also

normalmixEM

Examples

 cna = infercna(m = useData(), refCells = refCells)
 # Malignant cells only (remove columns corresponding to refCells)
 cna = cna[, !colnames(cna) %in% unlist(refCells)] 
 cnaByChr = splitGenes(cna, by = 'chr')
 sapply(cnaByChr, fitBimodal, assign = TRUE)
 sapply(cnaByChr, fitBimodal, boolean = TRUE)
 sapply(cnaByChr, fitBimodal, boolean = TRUE, coverage = 0.5)

jlaffy/infercna documentation built on Jan. 26, 2024, 11:24 p.m.