This function uses `stats::optim()`

to compute various properties of
fitted curves with respect to time, potentially in each condition and for
each posterior sample, and adjusting for any covariates.

## Usage

```
getRhythmStats(
fit,
fitType = c("posterior_mean", "posterior_samples", "raw"),
features = NULL,
dopar = TRUE,
rms = FALSE
)
```

## Arguments

- fit
A

`limorhyde2`

object.- fitType
String indicating which fitted models to use to compute the rhythmic statistics. A typical analysis using

`limorhyde2`

will be based on 'posterior_mean', the default.- features
Vector of names, row numbers, or logical values for subsetting the features.

`NULL`

indicates all features.- dopar
Logical indicating whether to run calculations in parallel if a parallel backend is already set up, e.g., using

`doParallel::registerDoParallel()`

. Recommended to minimize runtime.- rms
Logical indicating whether to calculate

`rms_amp`

.

## Value

A `data.table`

containing the following rhythm statistics:

`peak_phase`

: time between 0 and`fit$period`

at which the peak or maximum value occurs`peak_value`

`trough_phase`

: time between 0 and`fit$period`

at which the trough or minimum value occurs`trough_value`

`peak_trough_amp`

:`peak_value - trough_value`

`rms_amp`

: root mean square difference between fitted curve and mean value between time 0 and`fit$period`

(only calculated if`rms`

is`TRUE`

)`mesor`

: mean value between time 0 and`fit$period`

The rows of the `data.table`

depend on the `fit`

object and `fitType`

:

`fit`

contains data from one condition and`fitType`

is posterior_mean' or 'raw': one row per feature.`fit`

contains data from one condition and`fitType`

is 'posterior_samples': one row per feature per posterior sample.`fit`

contains data from multiple conditions and`fitType`

is 'posterior_mean' or 'raw': one row per feature per condition.`fit`

contains data from multiple conditions and`fitType`

is 'posterior_samples': one row per feature per condition per posterior sample.

## Examples

```
library('data.table')
# rhythmicity in one condition
y = GSE54650$y
metadata = GSE54650$metadata
fit = getModelFit(y, metadata)
fit = getPosteriorFit(fit)
rhyStats = getRhythmStats(fit, features = c('13170', '13869'))
# rhythmicity and differential rhythmicity in multiple conditions
y = GSE34018$y
metadata = GSE34018$metadata
fit = getModelFit(y, metadata, nKnots = 3L, condColname = 'cond')
fit = getPosteriorFit(fit)
rhyStats = getRhythmStats(fit, features = c('13170', '12686'))
diffRhyStats = getDiffRhythmStats(fit, rhyStats)
```