\HeaderA{ini.call}{Informative/Non-Informative Call}{ini.call}
\aliasA{xpsINICall}{ini.call}{xpsINICall}
\aliasA{xpsINICall-methods}{ini.call}{xpsINICall.Rdash.methods}
\keyword{manip}{ini.call}
\begin{Description}\relax
Computes the Informative/Non-Informative Call for the exclusion of non-informative probe sets.
\end{Description}
\begin{Usage}
\begin{verbatim}
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, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{xps.data}] object of class \code{DataTreeSet}.
\item[\code{filename}] file name of ROOT data file.
\item[\code{filedir}] system directory where ROOT data file should be stored.
\item[\code{tmpdir}] optional temporary directory where temporary ROOT files should be stored.
\item[\code{weight}] hyperparameter, usually set to 0.5 for \code{version="1.3.1"} and to 8.0
for \code{version="1.3.0"}.
\item[\code{mu}] hyperparameter allowing to correct for potential bias.
\item[\code{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[\code{tol}] termination tolerance for EM algorithm.
\item[\code{cyc}] maximum number of cycles of EM algorithm.
\item[\code{alpha1}] a significance threshold in (0,alpha2).
\item[\code{alpha2}] a significance threshold in (alpha1,1.0).
\item[\code{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[\code{option}] option determining the grouping of probes for summarization, one of 
\sQuote{transcript}, \sQuote{exon}, \sQuote{probeset}; exon arrays only.
\item[\code{exonlevel}] exon annotation level determining which probes should be used for summarization; exon/genome arrays only.
\item[\code{xps.scheme}] optional alternative \code{SchemeTreeSet}.
\item[\code{add.data}] logical. If \code{TRUE} call data will be added to slots \code{data} and \code{detcall}.
\item[\code{verbose}] logical, if \code{TRUE} print status information.
\item[\code{object}] object of class \code{DataTreeSet}.
\item[\code{...}] the arguments described above.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
In contrast to \code{\LinkA{mas5.call}{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): \\
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 \\
call \dQuote{M} if alpha1 <= p-value < alpha2 \\
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}: & expression levels are computed for transcript clusters,
i.e. probe sets containing the same \sQuote{transcript\_cluster\_id}. \\
\code{exon}: & 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. \\
\code{probeset}: & expression levels are computed for individual probe sets,
i.e. for each \sQuote{probeset\_id}. \\
}
Following \code{exonlevel} annotations are valid for exon arrays:
\Tabular{lll}{
& \code{core}:& probesets supported by RefSeq and full-length GenBank transcripts. \\
& \code{metacore}:& core meta-probesets. \\
& \code{extended}:& probesets with other cDNA support. \\
& \code{metaextended}:& extended meta-probesets. \\
& \code{full}:& probesets supported by gene predictions only. \\
& \code{metafull}:& full meta-probesets. \\
& \code{ambiguous}:& ambiguous probesets only. \\
& \code{affx}:& standard AFFX controls. \\
& \code{all}:& combination of above.
}
Following \code{exonlevel} annotations are valid for whole genome arrays:
\Tabular{lll}{
& \code{core}:& probesets with category \sQuote{unique} and \sQuote{mixed}. \\
& \code{metacore}:& probesets with category \sQuote{unique} only. \\
& \code{affx}:& standard AFFX controls. \\
& \code{all}:& combination of above.
}
Exon levels can also be combined, with following combinations being most useful:
\Tabular{ll}{
\code{exonlevel="metacore+affy"}:  & core meta-probesets plus AFFX controls \\
\code{exonlevel="core+extended"}: & probesets with cDNA support \\
\code{exonlevel="core+extended+full"}:  & supported plus predicted probesets \\
}

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

In order to use an alternative \code{\LinkA{SchemeTreeSet}{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.
\end{Details}
\begin{Value}
A \code{\LinkA{CallTreeSet}{CallTreeSet}}
\end{Value}
\begin{Note}\relax
Since I/NI-calls distinguish only between informative and non-informative genes, the
calls are identical for all samples.
\end{Note}
\begin{Author}\relax
Christian Stratowa
\end{Author}
\begin{References}\relax
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
\end{References}
\begin{SeeAlso}\relax
\code{\LinkA{farms}{farms}}, \code{\LinkA{mas5.call}{mas5.call}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
## 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()
\end{ExampleCode}
\end{Examples}

