make_initial_conditions {PrInCE} | R Documentation

## Make initial conditions for curve fitting with a mixture of Gaussians

### Description

Construct a set of initial conditions for curve fitting using nonlinear least squares using a mixture of Gaussians. The "guess" method ports code from the Matlab release of PrInCE. This method finds local maxima within the chromatogram, orders them by their separation (in number of fractions) from the previous local maxima, and uses the positions and heights of these local maxima (+/- some random noise) as initial conditions for Gaussian curve-fitting. The "random" method simply picks random values within the fraction and intensity intervals as starting points for Gaussian curve-fitting. The initial value of sigma is set by default to a random number within +/- 0.5 of two for both modes; this is based on our manual inspection of a large number of chromatograms.

### Usage

    make_initial_conditions(
      chromatogram,
      n_gaussians,
      method = c("guess", "random"),
      sigma_default = 2,
      sigma_noise = 0.5,
      mu_noise = 1.5,
      A_noise = 0.5
    )

### Arguments

`chromatogram` | a numeric vector corresponding to the chromatogram trace
`n_gaussians` | the number of Gaussians being fit
`method` | one of "guess" or "random", discussed above
`sigma_default` | the default mean initial value of sigma
`sigma_noise` | the amount of random noise to add or subtract from the default mean initial value of sigma
`mu_noise` | the amount of random noise to add or subtract from the Gaussian centers in "guess" mode
`A_noise` | the amount of random noise to add or subtract from the Gaussian heights in "guess" mode

### Value

a list of three numeric vectors (A, mu, and sigma), each having a length equal to the maximum number of Gaussians to fit

### Examples

    data(scott)
    chrom <- clean_profile(scott[16, ])
    set.seed(0)
    start <- make_initial_conditions(chrom, n_gaussians = 2, method = "guess")

[Package PrInCE version 1.10.0 Index]