fitTrendPoisson: Generate a trend for Poisson noise

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/fitTrendPoisson.R

Description

Create a mean-variance trend for log-normalized expression values derived from Poisson-distributed counts.

Usage

1
2
3
4
5
6
7
8
9
fitTrendPoisson(
  means,
  size.factors,
  npts = 1000,
  dispersion = 0,
  pseudo.count = 1,
  BPPARAM = SerialParam(),
  ...
)

Arguments

means

A numeric vector of length 2 or more, containing the range of mean counts observed in the dataset.

size.factors

A numeric vector of size factors for all cells in the dataset.

npts

An integer scalar specifying the number of interpolation points to use.

dispersion

A numeric scalar specifying the dispersion for the NB distribution. If zero, a Poisson distribution is used.

pseudo.count

A numeric scalar specifying the pseudo-count to be added to the scaled counts before log-transformation.

BPPARAM

A BiocParallelParam object indicating how parallelization should be performed across interpolation points.

...

Further arguments to pass to fitTrendVar for trend fitting.

Details

This function is useful for modelling technical noise in highly diverse datasets without spike-ins, where fitting a trend to the endogenous genes would not be appropriate given the strong biological heterogeneity. It is mostly intended for UMI datasets where the technical noise is close to Poisson-distributed.

This function operates by simulating Poisson or negative binomial-distributed counts, computing log-transformed normalized expression values from those counts, calculating the mean and variance and then passing those metrics to fitTrendVar. The log-transformation ensures that variance is modelled in the same space that is used for downstream analyses like PCA.

Simulations are performed across a range of values in means to achieve reliable interpolation, with the stability of the trend determined by the number of simulation points in npts. The number of cells is determined from the length of size.factors, which are used to scale the distribution means prior to sampling counts.

Value

A named list is returned containing:

trend:

A function that returns the fitted value of the trend at any value of the mean.

std.dev:

A numeric scalar containing the robust standard deviation of the ratio of var to the fitted value of the trend across all features used for trend fitting.

Author(s)

Aaron Lun

See Also

fitTrendVar, which is used to fit the trend.

Examples

1
2
3
4
5
6
7
8
# Mocking up means and size factors:
sf <- 2^rnorm(1000, sd=0.1)
sf <- sf/mean(sf)
means <- rexp(100, 0.1)

# Using these to construct a Poisson trend:
out <- fitTrendPoisson(means, sf)
curve(out$trend(x), xlim=c(0, 10))

scran documentation built on April 17, 2021, 6:09 p.m.