\name{ini.call}
\alias{ini.call}
\alias{xpsINICall-methods}
\alias{xpsINICall}
\title{Informative/Non-Informative Call}
\description{
Computes the Informative/Non-Informative Call for the exclusion of non-informative probe sets.
}
\usage{
ini.call(xps.data,
         filename   = character(0),
         filedir    = getwd(),
         tmpdir     = "",
         weight     = 0.5,
         mu         = 0.0,
         scale      = 1.0,
         tol        = 0.00001,
         cyc        = 100,
         alpha1     = 0.4,
         alpha2     = 0.6,
         version    = "1.3.1",
         option     = "transcript",
         exonlevel  = "",
         xps.scheme = NULL,
         add.data   = TRUE,
         verbose    = TRUE)

xpsINICall(object, ...)
}
\arguments{
  \item{xps.data}{object of class \code{DataTreeSet}.}
  \item{filename}{file name of ROOT data file.}
  \item{filedir}{system directory where ROOT data file should be stored.}
  \item{tmpdir}{optional temporary directory where temporary ROOT files should be stored.}
  \item{weight}{hyperparameter, usually set to 0.5 for \code{version="1.3.1"} and to 8.0
   for \code{version="1.3.0"}.}
  \item{mu}{hyperparameter allowing to correct for potential bias.}
  \item{scale}{scaling parameter, usually set to 1.0 for \code{version="1.3.1"} and to 2.0
   for \code{version="1.3.0"}.}
  \item{tol}{termination tolerance for EM algorithm.}
  \item{cyc}{maximum number of cycles of EM algorithm.}
  \item{alpha1}{a significance threshold in (0,alpha2).}
  \item{alpha2}{a significance threshold in (alpha1,1.0).}
  \item{version}{version of original farms package. Currently, \code{version="1.3.1"} and
   \code{version="1.3.0"} are implemented. Default is \code{version="1.3.1"}.}
  \item{option}{option determining the grouping of probes for summarization, one of 
   \sQuote{transcript}, \sQuote{exon}, \sQuote{probeset}; exon arrays only.}
  \item{exonlevel}{exon annotation level determining which probes should be used for summarization; exon/genome arrays only.}
  \item{xps.scheme}{optional alternative \code{SchemeTreeSet}.}
  \item{add.data}{logical. If \code{TRUE} call data will be added to slots \code{data} and \code{detcall}.}
  \item{verbose}{logical, if \code{TRUE} print status information.}
  \item{object}{object of class \code{DataTreeSet}.}
  \item{\dots}{the arguments described above.}
}
\details{
 In contrast to \code{\link{mas5.call}} this function quantifies the signal-to-noise ratio for
 each probe set, as described in Talloen et al. Thus, the returned p-values and detection calls
 have a different meaning:

 The p-value that is returned estimates the signal-to-noise ratio (SNR): \cr
 P-values (SNR) of less than 0.5 indicate that there is more signal than noise and the
 corresponding genes are considered to be \sQuote{informative} for further analysis. In
 contrast, values greater than 0.5 indicate \sQuote{non-informative} genes.

 The informative call is computed by thresholding the p-value as in:

 call \dQuote{P} if p-value < alpha1 \cr
 call \dQuote{M} if alpha1 <= p-value < alpha2 \cr
 call \dQuote{A} if alpha2 <= p-value

 Here \dQuote{P} should be considered as informative \dQuote{I}, \dQuote{M} as marginally
 informative, and \dQuote{A} as non-informative \dQuote{NI}.

 The defaults for \code{alpha1=0.4} and \code{alpha2=0.6} are set to allow \dQuote{M} calls.
 In order to get the same results as package \sQuote{farms\_1.3.1}, you need to set
 \code{alpha1=0.5} and \code{alpha2=0.5}.

For exon/genome arrays it is necessary to supply \code{option} and \code{exonlevel}.

Following \code{option}s are valid for exon arrays only:
\tabular{ll}{
  \code{transcript}: \tab expression levels are computed for transcript clusters,
   i.e. probe sets containing the same \sQuote{transcript\_cluster\_id}. \cr
  \code{exon}: \tab expression levels are computed for exon clusters,
   i.e. probe sets containing the same \sQuote{exon\_id}, where each exon cluster
   consists of one or more \code{probeset}s. \cr
  \code{probeset}: \tab expression levels are computed for individual probe sets,
   i.e. for each \sQuote{probeset\_id}. \cr
}
Following \code{exonlevel} annotations are valid for exon arrays:
\tabular{lll}{
  \tab \code{core}:\tab probesets supported by RefSeq and full-length GenBank transcripts. \cr
  \tab \code{metacore}:\tab core meta-probesets. \cr
  \tab \code{extended}:\tab probesets with other cDNA support. \cr
  \tab \code{metaextended}:\tab extended meta-probesets. \cr
  \tab \code{full}:\tab probesets supported by gene predictions only. \cr
  \tab \code{metafull}:\tab full meta-probesets. \cr
  \tab \code{ambiguous}:\tab ambiguous probesets only. \cr
  \tab \code{affx}:\tab standard AFFX controls. \cr
  \tab \code{all}:\tab combination of above.
}
Following \code{exonlevel} annotations are valid for whole genome arrays:
\tabular{lll}{
  \tab \code{core}:\tab probesets with category \sQuote{unique} and \sQuote{mixed}. \cr
  \tab \code{metacore}:\tab probesets with category \sQuote{unique} only. \cr
  \tab \code{affx}:\tab standard AFFX controls. \cr
  \tab \code{all}:\tab combination of above.
}
Exon levels can also be combined, with following combinations being most useful:
\tabular{ll}{
  \code{exonlevel="metacore+affy"}:  \tab core meta-probesets plus AFFX controls \cr
  \code{exonlevel="core+extended"}: \tab probesets with cDNA support \cr
  \code{exonlevel="core+extended+full"}:  \tab supported plus predicted probesets \cr
}

 Exon level annotations are described in the Affymetrix whitepaper
 \sQuote{exon\_probeset\_trans\_clust\_whitepaper.pdf}.

 In order to use an alternative \code{\link{SchemeTreeSet}} set the corresponding
 SchemeTreeSet \code{xps.scheme}.

 \code{xpsINICall} is the \code{DataTreeSet} method called by function \code{ini.call}, 
 containing the same parameters.
}
\value{
 A \code{\link{CallTreeSet}}
}
\author{Christian Stratowa}
\note{
 Since I/NI-calls distinguish only between informative and non-informative genes, the
 calls are identical for all samples. 
}
\references{
 Talloen, W., Clevert D.-A., Hochreiter, S., Amaratunga, D., Bijnens, J., Kass, S., and
 Gohlmann, H.W.H. (2006), I/NI-calls for the exclusion of non-informative genes: a highly
 effective filtering tool for microarray data. Bioinformatics 23(21):2897-2902
}
\seealso{\code{\link{farms}}, \code{\link{mas5.call}}}
\examples{
## first, load ROOT scheme file and ROOT data file
scheme.test3 <- root.scheme(paste(.path.package("xps"),"schemes/SchemeTest3.root",sep="/"))
data.test3 <- root.data(scheme.test3, paste(.path.package("xps"),"rootdata/DataTest3_cel.root",sep="/"))

## I/NI call
call.ini <- ini.call(data.test3,"tmp_Test3INI",verbose=FALSE)

## get data.frames
snr.ini <- pvalData(call.ini)
inf.ini <- presCall(call.ini)
head(snr.ini)
head(inf.ini)

## plot results
if (interactive()) {
callplot(call.ini)
}

rm(scheme.test3, data.test3)
gc()
}
\keyword{manip}