Learn R Programming

pi0 (version 1.4-1)

znormix: Normal-mixture based estimation of LFDR and pi0

Description

This function implements the method of McLachLan, Bean and Jones (2006).

Usage

znormix(p, theoretical.null=TRUE, start.pi0, eps=1e-5, niter=Inf, verbose=FALSE)

Arguments

p

a numeric vector the p-values

theoretical.null

logical scalar, indicating whether theoretical N(0,1) null distribution is assumed for z-scores.

start.pi0

optional numeric scalar, starting value of pi0 for EM algorithm; if missing, qvalue will be called with default arguments to get this starting value.

eps

numeric scalar, maximum tolerable absolute difference of parameter estimates for successive iterations in the EM algorithm.

niter

numeric scalar, maximum number of EM iterations.

verbose

logical scalar, indicating whether excessive outputs will be printed during EM algorithm.

Value

A length 5 numeric named vector of estimated parameters, with class 'znormix' and attributes

theoretical.null

the same as input.

converged

logical, convergence status.

iter

numeric, number of iterations.

call

the match.call() result.

lfdr

numeric vector of local false discovery rates, with order being the same as the input p-values.

fdr

numeric vector of false discovery rates, with order being the same as the input p-values.

Details

A two-component normal mixture model is fit thru EM algorithm on the z-scores, where z=qnorm(1-p).

References

G.J. McLachlan, R.W. Bean and L. Ben-Tovim Jones. (2006) A Simple implementation of a normal mixture approach to differential gene expression in multiclass microarrays. Bioinformatics, 22(13):1608-1615.

See Also

qvalue, histf1

Examples

Run this code
# NOT RUN {
 set.seed(99722)
 p=1-pnorm(c(rnorm(7000),rnorm(3000,1)))
 znormix(p)['pi0']
# }

Run the code above in your browser using DataLab