\HeaderA{calculatePathwayStatistics}{Calculate the NTk and NEk statistics}{calculatePathwayStatistics}
\aliasA{calculate.NEk}{calculatePathwayStatistics}{calculate.NEk}
\aliasA{calculate.NTk}{calculatePathwayStatistics}{calculate.NTk}
\keyword{array}{calculatePathwayStatistics}
\keyword{htest}{calculatePathwayStatistics}
\begin{Description}\relax
Calculates the NTk and NEk statistics and the corresponding p-values and
q-values for each selected pathway.
\end{Description}
\begin{Usage}
\begin{verbatim}
calculate.NTk(tab, phenotype, gsList, nsim = 1000,
              ngroups = 2, verbose = FALSE, alwaysUseRandomPerm = FALSE)
calculate.NEk(tab, phenotype, gsList, nsim = 1000,
              weightType = c("constant", "variable"),
              ngroups = 2, verbose = FALSE, alwaysUseRandomPerm = FALSE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{tab}] a numeric matrix of expression values, with the rows and
columns representing probe sets and sample arrays, respectively
\item[\code{phenotype}] a numeric (or character if \code{ngroups} >= 2)
vector indicating the phenotype
\item[\code{gsList}] a list containing three vectors from the output of
the \code{selectGeneSets} function
\item[\code{nsim}] an integer indicating the number of permutations to use
\item[\code{weightType}] a character string specifying the type of weight to
use when calculating NEk statistics
\item[\code{ngroups}] an integer indicating the number of groups in the
matrix
\item[\code{verbose}] a boolean to indicate whether to print debugging messages
to the R console
\item[\code{alwaysUseRandomPerm}] a boolean to indicate whether the algorithm
can use complete permutations for cases where \code{nsim} is greater
than the total number of unique permutations possible with the
\code{phenotype} vector
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
These functions calculate the NTk and NEk statistics and the
corresponding p-values and q-values for each selected pathway.  The output
of both functions should be together to rank top pathways with
the \code{rankPathways} function.
\end{Details}
\begin{Value}
A list containing
\begin{ldescription}
\item[\code{ngs}] number of gene sets
\item[\code{nsim}] number of permutations performed
\item[\code{t.set}] a numeric vector of Tk/Ek statistics
\item[\code{t.set.new}] a numeric vector of NTk/NEk statistics
\item[\code{p.null}] the proportion of nulls
\item[\code{p.value}] a numeric vector of p-values
\item[\code{q.value}] a numeric vector of q-values
\end{ldescription}
\end{Value}
\begin{Author}\relax
Lu Tian, Peter Park, and Weil Lai
\end{Author}
\begin{References}\relax
Tian L., Greenberg S.A., Kong S.W., Altschuler J., Kohane I.S., Park
P.J. (2005)  Discovering statistically significant pathways in
expression profiling studies.  \emph{Proceedings of the National
Academy of Sciences of the USA}, \bold{102}, 13544-9.

\url{http://www.pnas.org/cgi/doi/10.1073/pnas.0506577102}
\end{References}
\begin{Examples}
\begin{ExampleCode}
## Load in filtered, expression data
data(MuscleExample)

## Prepare the pathways to analyze
probeID <- rownames(tab)
gsList <- selectGeneSets(G, probeID, 20, 500)

## Calculate NTk and weighted NEk for each gene set
## * Use a higher nsim (e.g., 2500) value for more reproducible results
nsim <- 1000
ngroups <- 2
verbose <- TRUE
weightType <- "constant"
methodNames <- c("NTk", "NEk")
npath <- 25
allpathways <- FALSE
annotpkg <- "hgu133a.db"

res.NTk <- calculate.NTk(tab, phenotype, gsList, nsim, ngroups, verbose)
res.NEk <- calculate.NEk(tab, phenotype, gsList, nsim, weightType,
                         ngroups, verbose)

## Summarize results
res.pathways <- rankPathways(res.NTk, res.NEk, G, tab, phenotype,
                             gsList, ngroups, methodNames, npath, allpathways)
print(res.pathways)

## Get more information about the probe sets' means and other statistics
## for the top pathway in res.pathways
statList <- calcTStatFast(tab, phenotype, ngroups)
gpsList <-
  getPathwayStatistics(tab, phenotype, G, res.pathways$IndexG,
                       ngroups, statList, FALSE, annotpkg)
print(gpsList[[1]])

## Write table of top-ranked pathways and their associated probe sets to
## HTML files
parameterList <-
  list(nprobes = nrow(tab), nsamples = ncol(tab),
       phenotype = phenotype, ngroups = ngroups,
       minNPS = 20, maxNPS = 500, ngs = res.NTk$ngs,
       nsim.NTk = res.NTk$nsim, nsim.NEk = res.NEk$nsim,
       weightType = weightType,
       annotpkg = annotpkg, npath = npath, allpathways = allpathways)

writeSP(res.pathways, gpsList, parameterList, tempdir(), "sigPathway_cPS",
        "TopPathwaysTable.html")

\end{ExampleCode}
\end{Examples}

