Set optimization boundaries for the model parameters.
setBoundaries(boundaries, normFactors = c(0.01, 10), options = .defaultParams)
boundaries | a named list of lower and upper boundaries for the parameters which are used in the formulas. |
---|---|
normFactors | either a vector of length 2 or a list of two lists (lower, upper boundaries). |
options | an options object to use as a basis for a new parameter set |
an options object with the new parameter values
If no options object is provided, the default values are used. The elements in the boundaries list are either
a list of two vectors (the lower and upper boundaries for every gene/isoform respectively). If a vector is of length 1, equal boundary values will be assumed for all genes (e.g. for the lower boundary);
a vector of two scalars.
The normFactors elements (two, for the lower and the upper boundaries) can be:
a list with the structure is the same with the interSampleCoeffs
in
the PulseData
object used in the analysis;
a list with the length equals the number of unique conditions;
the structure is the same as formulaIndexes
object used for
the PulseData
object creation;
a single scalar value.
# the simple way: setBoundaries(list(a = c(1,2), b = c(10, 20)), normFactors = c(.1,10))#> $tolerance #> $tolerance$params #> [1] 0.001 #> #> $tolerance$shared #> [1] 0.01 #> #> $tolerance$normFactors #> [1] 0.001 #> #> $tolerance$logLik #> [1] 0.5 #> #> #> $verbose #> [1] "silent" #> #> $lb #> $lb$size #> [1] 10 #> #> $lb$a #> [1] 1 #> #> $lb$b #> [1] 10 #> #> $lb$normFactors #> [1] 0.1 #> #> #> $ub #> $ub$size #> [1] 1e+07 #> #> $ub$a #> [1] 2 #> #> $ub$b #> [1] 20 #> #> $ub$normFactors #> [1] 10 #> #> #> $fixedNorms #> [1] FALSE #># the hard way: # this are the formula indexes (see PulseData function documentation) formulaIndexes <- list( total_fraction = 'total', pull_down = c('labelled', 'unlabelled'), flow_through = c('unlabelled', 'labelled') ) # the lower and upper boundaries must have the same structure: lbNormFactors <- list( total_fraction = 1, pull_down = c(.1,.010), flow_through = c(.1,.010)) ubNormFactors <- list( total_fraction = 1, pull_down = c(10, 2), flow_through = c(10, 2)) # we need to provide them as a list opts <- setBoundaries( list(mu = c(1, 1e6), d = c(1, 2)), normFactors = list(lbNormFactors, ubNormFactors))