Title: | Estimation of the false discovery rate |
---|---|
Description: | LBE is an efficient procedure for estimating the proportion of true null hypotheses, the false discovery rate (and so the q-values) in the framework of estimating procedures based on the marginal distribution of the p-values without assumption for the alternative hypothesis. |
Authors: | Cyril Dalmasso |
Maintainer: | Cyril Dalmasso <[email protected]> |
License: | GPL-2 |
Version: | 1.75.0 |
Built: | 2024-12-19 03:21:18 UTC |
Source: | https://github.com/bioc/LBE |
The package LBE allows estimating the proportion of true null hypotheses and the false discovery rate.
Package: | LBE |
Type: | Package |
Version: | 1.13.2 |
Date: | 2007-1-10 |
License: | GPL-2 |
Cyril Dalmasso Maintainer: Cyril Dalmasso [email protected]
Dalmasso C, Broet P, Moreau T (2005): A simple procedure for estimating the false discovery rate. Bioinformatics, 21: 660 - 668.
Storey JD and Tibshirani R. (2003). Statistical significance for genome-wide studies. Proc Natl Acad Sci, 100, 9440-9445.
LBE is an alternative method to the one proposed by Storey and Tibshirani (2003) for estimating the q-values, this latter method being implemented in the package qvalue
.
The aim of the study of Golub et al. Golub was to identify differentially expressed genes between acute myeloid leukemia (AML) and acute lymphoblastic leukemia (ALL).
The samples were assayed using Affymetrix Hgu6800 chips and the data on the expression of 7129 genes are available in the Bioconductor package golubEsets
.
The p-values provided here were calculated from a two-sample t-test analysis. The variance-stabilizing method included in the vsn
package was applied for normalizing the data.
data(golub.pval)
data(golub.pval)
The format is: num [1:3051] 0.0170 0.2552 0.9130 0.7867 0.2431 ...
Golub TR, Slonim DK, Tamayo P, Huard C, Gaasenbeek M, Mesirov JP, Coller H, Loh ML, Downing JR, Caligiuri MA, Bloomfield CD, Lander ES (1999). Molecular classification of cancer: class discovery and class prediction by gene expression monitoring. Science, 15, 286(5439), 531-7.
The aim of the study of Hedenfalk et al. (2001) was to examine breast-cancer tissues from patients with BRCA1-BRCA2 related cancer and cases of sporadic breast cancer to determine global gene expression patterns in the different classes of tumours. Here, we focus on the comparison of BRCA1 and BRCA2. The p-values provided here are the same as those provided with the package qvalue
. They were otained from a two-sample t-test analysis on a subset of 3,170 genes, as described in Storey and Tibshirani (2003).
data(hedenfalk.pval)
data(hedenfalk.pval)
The format is: num [1:3170] 0.0121 0.0750 0.9949 0.0418 0.8458 ...
Hedenfalk I, Duggan D, Chen Y, Radmacher M, Bittner M, Simon R, Meltzer P, Guterson B, Esteller M, Kallioniemi OP et al. (2001) Gene-expression profiles in hereditary breast cancer. N Engl J Med, 22, 539-548.
Storey JD and Tibshirani R. (2003). Statistical significance for genome-wide studies. Proc Natl Acad Sci, 100, 9440-9445.
LBE is an efficient procedure for estimating the proportion of true null hypotheses, the false discovery rate and the q-values.
LBE(pval, a = NA, l = 0.05, ci.level = 0.95, qvalues = TRUE, plot.type = "main", FDR.level = 0.05, n.significant = NA)
LBE(pval, a = NA, l = 0.05, ci.level = 0.95, qvalues = TRUE, plot.type = "main", FDR.level = 0.05, n.significant = NA)
pval |
Numerical vector of p-values (only necessary input). |
a |
Real value used in If |
l |
Threshold for the upper bound of the asymptotic standard deviation (only used if a == NA). |
ci.level |
Level for the confidence interval of pi0. |
qvalues |
Logical value for estimating the qvalues and the FDR. If qvalues = FALSE, only the proportion pi0 of true null hypotheses is estimated. |
plot.type |
If plot.type = "none", no graphic is displayed. If plot.type = "main", the estimated q-values versus the p-values are plotted together with the histogram of the p-values. If plot.type = "multiple", several graphics are displayed: 1. The histogram of the p-values 2. The estimated q-values versus the p-values 3. The number of significant tests versus each qvalue cutoff 4. The number of expected false positives versus the number of significant tests. |
FDR.level |
Level at which to control the FDR (only used if n.significant == NA). |
n.significant |
If specified, the FDR is estimated for the rejection region defined by the "n.significant" smallest p-values. |
The procedure LBE is based on the expectation of a particular transformation of the p-values leading to a straightforward estimation of the key quantity pi0 that is the proportion of true null hypotheses:
where a belongs to the interval
.
A list containing:
call |
Function call. |
FDR |
Level at which to control the FDR (if n.significant == NA) or estimated FDR (if n.significant != NA). |
pi0 |
Estimated value of pi0, the proportion of true null hypotheses. |
pi0.ci |
Confidence interval for pi0. |
ci.level |
Level for the confidence interval of pi0. |
a |
Value used in |
l |
Upper bound of the asymptotic standard deviation for pi0. |
qvalues |
Vector of the estimated q-values. |
pvalues |
Vector of the original p-values. |
significant |
Indicator of wether the null hypothesis is rejected. |
n.significant |
Number of rejected null hypotheses. |
LBE is an alternative method to the one proposed by Storey and Tibshirani
(2003) for estimating the q-values, this latter method being implemented in
the package qvalue
.
Cyril Dalmasso
Dalmasso C, Broet P, Moreau T (2005). A simple procedure for estimating the false discovery rate. Bioinformatics. Bioinformatics, 21: 660 - 668.
Storey JD and Tibshirani R. (2003). Statistical significance for genome-wide studies. Proc Natl Acad Sci, 100, 9440-9445.
LBEplot
, LBEsummary
, LBEwrite
, LBEa
## start data(hedenfalk.pval) res=LBE(hedenfalk.pval) data(golub.pval) res=LBE(golub.pval) ## end
## start data(hedenfalk.pval) res=LBE(hedenfalk.pval) data(golub.pval) res=LBE(golub.pval) ## end
The LBEa function is called by the main function LBE for choosing the greatest value of a such that the upper bound of the asymptotic standard deviation is less than a threshold l. A plot illustrating the relation between a and l for a fixed number of tested hypotheses can also be displayed.
LBEa(m, l = 0.05, fig = TRUE, a.rng = NA)
LBEa(m, l = 0.05, fig = TRUE, a.rng = NA)
m |
Total number of tested hypotheses. |
l |
Threshold for the upper bound of the asymptotic standard deviation (default value is 0.05). |
fig |
Logical value for plotting the standard deviation versus a. |
a.rng |
Range of values of a to consider. If a.rng == NA, a.rng is set such that the standard deviation is less than 0.5. |
The procedure LBE is based on the expectation of a particular transformation of the p-values leading to a straightforward estimation of the key quantity pi0 that is the proportion of true null hypotheses:
where a belongs to the interval .
As there is a balance between bias (decreasing as a increase) and variance (increasing as a increase), for a specified number m of tested hypotheses, we have proposed to choose the greatest value of a such that the upper bound of the asymptotic standard deviation of the estimator of pi0 is smaller than the threshold l.
The function LBEa allows to plot the standard deviation versus a in order to help for the choice of the threshold l (for a specific number m of tested hypotheses).
a |
Greatest value of a such that the the upper bound of the asymptotic standard deviation of the estimator of pi0 is smaller than the threshold l. |
Cyril Dalmasso
Dalmasso C, Broet P, Moreau T (2005). A simple procedure for estimating the false discovery rate. Bioinformatics. Bioinformatics, 21: 660 - 668.
LBE
, LBEplot
, LBEsummary
, LBEwrite
## start data(hedenfalk.pval) m <- length(hedenfalk.pval) LBEa(m,l = 0.05) ## end
## start data(hedenfalk.pval) m <- length(hedenfalk.pval) LBEa(m,l = 0.05) ## end
Graphical display of LBE objects.
LBEplot(LBEobj, rng = c(0, 0.1), plot.type = c("multiple", "main"), legend = TRUE)
LBEplot(LBEobj, rng = c(0, 0.1), plot.type = c("multiple", "main"), legend = TRUE)
LBEobj |
LBE object. |
rng |
Range of q-values to consider. |
plot.type |
If plot.type == "main", The estimated q-values versus the p-values are plotted together with the histogram of the p-values. If plot.type == "multiple" (default value), several graphics are displayed. |
legend |
Logical value for displaying the legend on the plot (when plot.type == "main"). |
If plot.type == "multiple", the following graphics are displayed: 1. The histogram of the p-values. 2. The estimated q-values versus the p-values. 3. The number of significant tests versus each qvalue cutoff. 4. The number of expected false positives versus the number of significant tests.
The function LBEplot is analogous to the function qplot from the package qvalue
.
Cyril Dalmasso
LBE
, LBEsummary
, LBEwrite
, LBEa
## start data(hedenfalk.pval) res=LBE(hedenfalk.pval,plot.type="none") LBEplot(res) LBEplot(res,plot.type="main") LBEplot(res,plot.type="main",legend=FALSE) ## end
## start data(hedenfalk.pval) res=LBE(hedenfalk.pval,plot.type="none") LBEplot(res) LBEplot(res,plot.type="main") LBEplot(res,plot.type="main",legend=FALSE) ## end
Display summary information for an LBE object.
LBEsummary(LBEobj, cuts = c(1e-04, 0.001, 0.01, 0.025, 0.05, 0.1, 1), digits = getOption("digits"), ...)
LBEsummary(LBEobj, cuts = c(1e-04, 0.001, 0.01, 0.025, 0.05, 0.1, 1), digits = getOption("digits"), ...)
LBEobj |
LBE object. |
cuts |
Vector of significance value to use for table. |
digits |
Significant digits to display. |
... |
Any other arguments. |
LBEsumary shows the original call, estimated proportion of true null hypotheses, confidence interval for the proportion of true null hypotheses and a table comparing the number of significant calls for the p-values and for the estimated q-values using a set of cutoffs given by the argument cuts.
Invisibly returns the original object.
The function LBEsummary is analogous to the function qsummary from the
package qvalue
.
Cyril Dalmasso
## start data(hedenfalk.pval) res<-LBE(hedenfalk.pval) print(res) LBEsummary(res) ## end
## start data(hedenfalk.pval) res<-LBE(hedenfalk.pval) print(res) LBEsummary(res) ## end
Write the results of an LBE object to a file.
LBEwrite(LBEobj, filename = "LBE-results.txt")
LBEwrite(LBEobj, filename = "LBE-results.txt")
LBEobj |
LBE object |
filename |
Output filename (optional) |
The output file lists the estimate of pi0, which is the proportion of true null hypotheses. It also lists each p-value and corresponding q-value, one per line. If an FDR significance level was specified in the call to qvalue, the significance level is printed below the estimate of pi0, and an indicator of significance is included as a third column for each p-value and q-value.
The function LBEwrite is analogous to the function qwrite from the package
qvalue
.
Cyril Dalmasso
LBE
, LBEplot
, LBEsummary
, LBEa
## start data(hedenfalk.pval) res<-LBE(hedenfalk.pval) LBEwrite(res,filename="myresults.txt") ## end
## start data(hedenfalk.pval) res<-LBE(hedenfalk.pval) LBEwrite(res,filename="myresults.txt") ## end