# smooth: Smoothing In MsCoreUtils: Core Utils for Mass Spectrometry Data

## Description

This function smoothes a numeric vector.

## Usage

 ```1 2 3 4 5 6 7``` ```smooth(x, cf) coefMA(hws) coefWMA(hws) coefSG(hws, k = 3L) ```

## Arguments

 `x` `numeric`, i.e. m/z values. `cf` `matrix`, a coefficient matrix generated by `coefMA`, `coefWMA` or `coefSG`. `hws` `integer(1)`, half window size, the resulting window reaches from `(i - hws):(i + hws)`. `k` `integer(1)`, set the order of the polynomial used to calculate the coefficients.

## Details

For the Savitzky-Golay-Filter the `hws` should be smaller than FWHM of the peaks (full width at half maximum; please find details in Bromba and Ziegler 1981).

In general the `hws` for the (weighted) moving average (`coefMA`/`coefWMA`) has to bemuch smaller than for the Savitzky-Golay-Filter to conserve the peak shape.

## Value

`smooth`: A `numeric` of the same length as `x`.

`coefMA`: A `matrix` with coefficients for a simple moving average.

`coefWMA`: A `matrix` with coefficients for a weighted moving average.

`coefSG`: A `matrix` with Savitzky-Golay-Filter coefficients.

## Functions

• `coefMA`: Simple Moving Average

This function calculates the coefficients for a simple moving average.

• `coefWMA`: Weighted Moving Average

This function calculates the coefficients for a weighted moving average with weights depending on the distance from the center calculated as `1/2^abs(-hws:hws)` with the sum of all weigths normalized to 1.

• `coefSG`: Savitzky-Golay-Filter

This function calculates the Savitzky-Golay-Coefficients. The additional argument `k` controls the order of the used polynomial. If `k` is set to zero it yield a simple moving average.

## Note

The `hws` depends on the used method ((weighted) moving average/Savitzky-Golay).

## Author(s)

Sebastian Gibb, Sigurdur Smarason (weighted moving average)

## References

A. Savitzky and M. J. Golay. 1964. Smoothing and differentiation of data by simplified least squares procedures. Analytical chemistry, 36(8), 1627-1639.

M. U. Bromba and H. Ziegler. 1981. Application hints for Savitzky-Golay digital smoothing filters. Analytical Chemistry, 53(11), 1583-1586.

Implementation based on: Steinier, J., Termonia, Y., & Deltour, J. (1972). Comments on Smoothing and differentiation of data by simplified least square procedure. Analytical Chemistry, 44(11), 1906-1909.

Other noise estimation and smoothing functions: `noise()`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10``` ```x <- c(1:10, 9:1) plot(x, type = "b", pch = 20) cf <- list(MovingAverage = coefMA(2), WeightedMovingAverage = coefWMA(2), SavitzkyGolay = coefSG(2)) for (i in seq_along(cf)) { lines(smooth(x, cf[[i]]), col = i + 1, pch = 20, type = "b") } legend("bottom", legend = c("x", names(cf)), pch = 20, col = seq_len(length(cf) + 1)) ```

### Example output

```Attaching package: ‘MsCoreUtils’

The following object is masked from ‘package:stats’:

smooth
```

MsCoreUtils documentation built on Nov. 8, 2020, 10:59 p.m.