Background correction using the normal+gamma model

Share:

Description

The NormalGamma package is devoted to the density convolution model Y = X + N where X and N are independent variables with respectively gamma and normal distributions. For this model called further normal-gamma convolution model, this package proposes the computation of the convoluted density, the parameter estimation by likelihood maximization and the background correction obtained by deconvolution.

This package has been used to implement the background correction method for Illumina microarray data presented in Plancade S., Rozenholc Y. and Lund E., BMC Bioinfo 2012.

Details

Package: NormalGamma
Type: Package
Version: 001.0
Date: 2011-12-20
License: GPL-3

The NormalGamma package includes three functions and a data set:

dnormgam computes the convolution product of a normal and a gamma densities.

normgam.fit computes the Maximum Likelihood Estimator of the parameters.

normgam.signal performs the normal-gamma background correction.

Intensities provides data from one Illumina microarray.

Author(s)

Plancade S. and Rozenholc Y.

Maintainer: Plancade S. <Sandra.Plancade@jouy.inra.fr>

References

Plancade S., Rozenholc Y. and Lund E. "Generalization of the normal-exponential model : exploration of a more accurate parametrisation for the signal distribution on Illumina BeadArrays", BMC Bioinfo 2012, 13(329).

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Load Illumina microarray data previously transformed into two sets of intensities
# corresponding to negative and regular probes.

## Not run: 

data(RegNegIntensities_Example)

X = Intensities$Regular
N = Intensities$Negative

## Compute the maximum likelihood estimator:
parmle = normgam.fit(X, N)$par

par(mfrow=c(2,1)) # split windows for post comparison

## plot the histogram and the estimated density:
F = dnormgam(parmle, plot=FALSE) 


H = histogram(X, type='irregular', verbose=FALSE, plot=FALSE) 
plot(H, xlim=c(0,500))
lines(F$xout, F$dout, col='red')

# Perform the normal-gamma background correction: 
Shat = normgam.signal(X,parmle)
H = histogram(Shat, type='irregular', verbose=FALSE, plot=FALSE) 
plot(H, xlim=c(0,30))


## End(Not run)