Last data update: 2014.03.03

R: False Discovery Rate Computation
fdrR Documentation

False Discovery Rate Computation

Description

For internal use in functions stp and bcaFDR. Computes steps 2.1 to 2.4 from Algorithm 1 in the vignette.

Usage

fdr(Z, design, th = NULL, B = 100, lambda = 0.5, PER = FALSE, ...)

Arguments

Z

a matrix or data.frame representing genes' expression levels. The rows of Z correspond to the genes in the experiment, and the columns correspond to the replicates. Treatment replicates are to the left, control replicates to the right.

design

a vector of length equal to the number of columns in Z with 1's for the treatment replicates and 2's for the control replicates (1, …, 1, 2, …, 2).

th

Threshold values for estimating the FDR. If NULL, the values from abs(ac2(Z,design)) are used.

B

Number of bootstrap or permutation replications for estimating the FDR (as passed from stp and bcaFDR).

lambda

Parameter for the estimation of pi0 and the FDR as passed from stp and bcaFDR (see Storey, 2002).

PER

If FALSE (default), bootstrap replications are used to estimate the FDR. If TRUE, permutation replications are used instead (as passed from stp and bcaFDR).

...

additional arguments for parallel computation in boot function as passed from stp (see stp help page for details).

Value

Q

Estimations of the FDR using each value in th as the threshold.

th

Threshold values used for estimating the FDR.

pi0

Estimation of pi0, the true proportion of non differentially expressed genes in the experiment.

B

Number of bootstrap or permutation replications used for estimating the FDR.

lambda

Parameter used for the estimation of pi0 and the FDR.

call

The matched call.

Author(s)

Juan Pablo Acosta (jpacostar@unal.edu.co).

References

Acosta, J. P. (2015) Strategy for Multivariate Identification of Differentially Expressed Genes in Microarray Data. Unpublished MS thesis. Universidad Nacional de Colombia, Bogot'a.

Storey, J. D. (2002) A direct approach to false discovery rates. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 64(3): 479–498.

See Also

stp.

Examples

## Single time point analysis for 500 genes with 10 treatment 
## replicates and 10 control replicates
n <- 500; p <- 20; p1 <- 10
des <- c(rep(1, p1), rep(2, (p-p1)))
mu <- as.matrix(rexp(n, rate=1))
Z <- t(apply(mu, 1, function(mui) rnorm(p, mean=mui, sd=1)))
### 5 up regulated genes
Z[1:5,1:p1] <- Z[1:5,1:p1] + 5
### 10 down regulated genes
Z[6:15,(p1+1):p] <- Z[6:15,(p1+1):p] + 4

res <- fdr(Z, des)
plot(res$th, res$Q, type="l", col="blue")
legend(x="topright", legend="FDR", lty=1, col="blue")

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(acde)
Loading required package: boot
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/acde/fdr.Rd_%03d_medium.png", width=480, height=480)
> ### Name: fdr
> ### Title: False Discovery Rate Computation
> ### Aliases: fdr
> 
> ### ** Examples
> 
> ## Single time point analysis for 500 genes with 10 treatment 
> ## replicates and 10 control replicates
> n <- 500; p <- 20; p1 <- 10
> des <- c(rep(1, p1), rep(2, (p-p1)))
> mu <- as.matrix(rexp(n, rate=1))
> Z <- t(apply(mu, 1, function(mui) rnorm(p, mean=mui, sd=1)))
> ### 5 up regulated genes
> Z[1:5,1:p1] <- Z[1:5,1:p1] + 5
> ### 10 down regulated genes
> Z[6:15,(p1+1):p] <- Z[6:15,(p1+1):p] + 4
> 
> res <- fdr(Z, des)
> plot(res$th, res$Q, type="l", col="blue")
> legend(x="topright", legend="FDR", lty=1, col="blue")
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>