\name{mt.rawp2adjp}
\alias{mt.rawp2adjp}
\title{Adjusted p-values for simple multiple testing procedures}
\description{
  This function computes adjusted \eqn{p}-values for simple
  multiple testing procedures from a vector of raw (unadjusted)
  \eqn{p}-values. The procedures include the Bonferroni, Holm (1979),
  Hochberg (1988), and Sidak procedures for strong control of the
  family-wise Type I error rate (FWER), and the Benjamini & Hochberg
  (1995) and Benjamini & Yekutieli (2001) procedures for (strong)
  control of the false discovery rate (FDR).  The less conservative
  adaptive Benjamini & Hochberg (2000) and two-stage Benjamini & Hochberg
  (2006) FDR-controlling procedures are also included.
}
\usage{
mt.rawp2adjp(rawp, proc=c("Bonferroni", "Holm", "Hochberg", "SidakSS", "SidakSD",
"BH", "BY","ABH","TSBH"), alpha = 0.05, na.rm = FALSE)
}
\arguments{
  \item{rawp}{A vector of raw (unadjusted) \eqn{p}-values for each
    hypothesis under consideration. These could be nominal
    \eqn{p}-values, for example, from \eqn{t}-tables, or permutation
    \eqn{p}-values as given in \code{mt.maxT} and \code{mt.minP}. If the
    \code{mt.maxT} or \code{mt.minP} functions are used, raw
    \eqn{p}-values should be given in the original data order,
    \code{rawp[order(index)]}.}
  \item{proc}{A vector of character strings containing the names of the
    multiple testing procedures for which adjusted \eqn{p}-values are to
    be computed. This vector should include any of the following:
    \code{"Bonferroni"}, \code{"Holm"}, \code{"Hochberg"},
    \code{"SidakSS"}, \code{"SidakSD"}, \code{"BH"}, \code{"BY"},
    \code{"ABH"}, \code{"TSBH"}.\cr

Adjusted \eqn{p}-values are computed for simple FWER- and FDR-
controlling procedures based on a vector of raw (unadjusted)
\eqn{p}-values by one or more of the following methods:

\describe{
\item{Bonferroni}{Bonferroni single-step adjusted \eqn{p}-values
for strong control of the FWER.}
\item{Holm}{Holm (1979) step-down adjusted \eqn{p}-values for
strong control of the FWER.}
\item{Hochberg}{ Hochberg (1988) step-up adjusted \eqn{p}-values
for
strong control of the FWER (for raw (unadjusted) \eqn{p}-values
satisfying the Simes inequality).}
\item{SidakSS}{Sidak single-step adjusted \eqn{p}-values for
strong control of the FWER (for positive orthant dependent test
statistics).}
\item{SidakSD}{Sidak step-down adjusted \eqn{p}-values for
strong control of the FWER (for positive orthant dependent test
statistics).}
\item{BH}{Adjusted \eqn{p}-values for the Benjamini & Hochberg
(1995) step-up FDR-controlling procedure (independent and positive
regression dependent test statistics).}
\item{BY}{Adjusted \eqn{p}-values for the Benjamini & Yekutieli
(2001) step-up FDR-controlling procedure (general dependency
structures).}
\item{ABH}{Adjusted \eqn{p}-values for the adaptive Benjamini & Hochberg
(2000) step-up FDR-controlling procedure.  This method ammends the original step-up procedure using an estimate of the number of true null hypotheses obtained from \eqn{p}-values.}
\item{TSBH}{Adjusted \eqn{p}-values for the two-stage Benjamini & Hochberg
(2006) step-up FDR-controlling procedure.  This method ammends the original step-up procedure using an estimate of the number of true null hypotheses obtained from a first-pass application of \code{"BH"}.  The adjusted \eqn{p}-values are \eqn{a}-dependent, therefore \code{alpha} must be set in the function arguments when using this procedure.}
}
}

\item{alpha}{A nominal type I error rate, or a vector of error
    rates, used for estimating the number of true null hypotheses in the
    two-stage Benjamini & Hochberg procedure (\code{"TSBH"}).  Default is 0.05.}

\item{na.rm}{An option for handling \code{NA} values in a list of raw \eqn{p}-values.  If
\code{FALSE}, the number of hypotheses considered is the length of the vector
of raw \eqn{p}-values.  Otherwise, if \code{TRUE}, the number of hypotheses is
the number of raw \eqn{p}-values which were not \code{NA}s.}
}


\value{
A list with components:
  \item{adjp}{A matrix of adjusted \eqn{p}-values, with rows
    corresponding to hypotheses and columns to multiple testing
    procedures. Hypotheses are sorted in increasing order of their raw
    (unadjusted) \eqn{p}-values.}
  \item{index}{A vector of row indices, between 1 and
    \code{length(rawp)}, where rows are sorted according to
    their raw (unadjusted) \eqn{p}-values. To obtain the adjusted
    \eqn{p}-values in the original data order, use
    \code{adjp[order(index),]}.}
  \item{h0.ABH}{The estimate of the number of true null hypotheses as proposed
    by Benjamini & Hochberg (2000) used when computing adjusted \eqn{p}-values
    for the \code{"ABH"} procedure (see Dudoit et al., 2007).}
  \item{h0.TSBH}{The estimate (or vector of estimates) of the number of true
    null hypotheses as proposed by Benjamini et al. (2006) when computing adjusted
    \eqn{p}-values for the \code{"TSBH"} procedure. (see Dudoit et al., 2007).}
}

\references{
Y. Benjamini and Y. Hochberg (1995). Controlling the false discovery
rate: a practical and powerful approach to multiple
testing. \emph{J. R. Statist. Soc. B}. Vol. 57: 289-300.\cr

Y. Benjamini and Y. Hochberg (2000). On the adaptive control of the false discovery rate in multiple testing with independent statistics. \emph{J. Behav. Educ. Statist}. Vol 25: 60-83.\cr

Y. Benjamini and D. Yekutieli (2001). The control of the false discovery rate in multiple hypothesis testing under dependency. \emph{Annals of Statistics}. Vol. 29: 1165-88.\cr

Y. Benjamini, A. M. Krieger and D. Yekutieli (2006). Adaptive linear step-up procedures that control the false discovery rate. \emph{Biometrika}. Vol. 93: 491-507.\cr

S. Dudoit, J. P. Shaffer, and J. C. Boldrick (2003). Multiple
hypothesis testing in microarray experiments. \emph{Statistical Science}. Vol. 18: 71-103. \cr

S. Dudoit, H. N. Gilbert, and M. J. van der Laan (2008).
Resampling-based empirical Bayes multiple testing procedures for controlling generalized tail probability and expected value error rates: Focus on the false discovery rate and simulation study. \emph{Biometrical Journal}, 50(5):716-44. \url{http://www.stat.berkeley.edu/~houston/BJMCPSupp/BJMCPSupp.html}. \cr

Y. Ge, S. Dudoit, and T. P. Speed (2003). Resampling-based multiple testing for microarray data analysis. \emph{TEST}. Vol. 12: 1-44 (plus discussion p. 44-77).\cr

Y. Hochberg (1988). A sharper Bonferroni procedure for multiple tests of significance, \emph{Biometrika}. Vol. 75: 800-802.\cr

S. Holm (1979). A simple sequentially rejective multiple test
procedure. \emph{Scand. J. Statist.}. Vol. 6: 65-70.
}

\author{
  Sandrine Dudoit, \url{http://www.stat.berkeley.edu/~sandrine},\cr
  Yongchao Ge, \email{yongchao.ge@mssm.edu},\cr
  Houston Gilbert, \url{http://www.stat.berkeley.edu/~houston}.
}

\seealso{\code{\link{mt.maxT}}, \code{\link{mt.minP}},
  \code{\link{mt.plot}}, \code{\link{mt.reject}}, \code{\link{golub}}.}

\examples{
# Gene expression data from Golub et al. (1999)
# To reduce computation time and for illustrative purposes, we condider only
# the first 100 genes and use the default of B=10,000 permutations.
# In general, one would need a much larger number of permutations
# for microarray data.

data(golub)
smallgd<-golub[1:100,]
classlabel<-golub.cl

# Permutation unadjusted p-values and adjusted p-values for maxT procedure
res1<-mt.maxT(smallgd,classlabel)
rawp<-res1$rawp[order(res1$index)]

# Permutation adjusted p-values for simple multiple testing procedures
procs<-c("Bonferroni","Holm","Hochberg","SidakSS","SidakSD","BH","BY","ABH","TSBH")
res2<-mt.rawp2adjp(rawp,procs)
}

\keyword{htest}





