\HeaderA{import}{Import raw file to an arrayCGH object}{import}
\aliasA{import.default.aux}{import}{import.default.aux}
\aliasA{import.gpr.aux}{import}{import.gpr.aux}
\aliasA{import.spot.aux}{import}{import.spot.aux}
\keyword{IO}{import}
\keyword{file}{import}
\begin{Description}\relax
Load raw data from a text file coming from image analysis and convert it to an \code{\LinkA{arrayCGH}{arrayCGH}}
object, using additional information about the array design.

Supported file types are Genepix Results file (.gpr), outputs from
SPOT, or any text file with appropriate fields "Row" and "Column" and
specified array design
\end{Description}
\begin{Usage}
\begin{verbatim}
  import(file, var.names=NULL, spot.names=NULL, clone.names=NULL, type=c("default", "gpr", "spot"), id.rep=1, design=NULL, add.lines=FALSE, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{file}] a connection or character string giving the name of the
file to import.
\item[\code{var.names}] a vector of variables names used to compute the array
design. If default is not
overwritten, it is set to c("Block", "Column", "Row", "X", "Y") for
gpr files, c("Arr.colx", "Arr.rowy", "Spot.colx", "Spot.rowy") for
SPOT files, and c("Col", "Row") for other text files

\item[\code{spot.names}] a list with spot-level variable names to be added to
\code{arrayCGH\$arrayValues}
\item[\code{clone.names}] a list with clone-level variable names to be added
to \code{arrayCGH\$cloneValues} (only used in case of within-slide replicates)
\item[\code{type}] a character value specifying the type of input file:
currently .gpr files ("gpr"), spot files ("spot") and other text
files with fields 'Col' and 'Row' ("default") are supported
\item[\code{id.rep}] index of the replicate identifier (e.g. the name of the clone) in the
vector(clone.names)
\item[\code{design}] a numeric vector of length 4 specifying array design as
number of blocks per column, number of blocks per row, number of columns by block, number of
rows per block. This field is mandatory
for "default" text files, optional for "gpr" files, and not used for
"SPOT" files
\item[\code{add.lines}] boolean value to handle the case when array design
does not match number of lines. If TRUE, empty lines are added; if
FALSE, execution is stopped
\item[\code{...}] additional import parameters (e.g. '\code{sep=}', or '\code{comment.char=}', to be passed to read.delim
function. Note that argument \code{as.is=TRUE} is always passed to
read.delim, in order to avoid unapropriate conversion of character
vectors to factors
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Mandatory elements of \code{\LinkA{arrayCGH}{arrayCGH}} objects are the array design and the x and y
\emph{absolute coordinates} of each spot on the array. Output files
from SPOT contain x and y relative coordinates of each spot within a
block, as well as block coordinates on the array; one can therefore
easily construct te corresponding \code{\LinkA{arrayCGH}{arrayCGH}}
object.

.gpr files currently only contain x and y relative coordinates of each
spot within a block, and block index with no specification of the 
spatial block design: if block design is not specified by user, we
compute it using the real pixel locations of each spot (\code{X} and \code{Y} variables in
usual .gpr files)  

If clone.names is provided, an additional data frame is created with
clone-level information (e.g. clone names, positions, 
chromosomes, quality marks), aggregated from array-level information
using the identifier specified by id.rep. This identifier is also
added to the \code{arrayCGH} object created, with name 'id.rep'.

Due to space limitations, only the first 100 lines of sample 'gpr' and
'spot' files are given in the standard distribution of
\code{MANOR}. Complete files are available at \url{http://bioinfo.curie.fr/projects/manor/index.html}
\end{Details}
\begin{Value}
an object of class \code{\LinkA{arrayCGH}{arrayCGH}}
\end{Value}
\begin{Note}\relax
People interested in tools for array-CGH analysis can
visit our web-page: \url{http://bioinfo.curie.fr}.
\end{Note}
\begin{Author}\relax
Pierre Neuvial, \email{manor@curie.fr}.
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{arrayCGH}{arrayCGH}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
dir.in <- system.file("data", package="MANOR")

## import from 'spot' files
spot.names <- c("LogRatio", "RefFore", "RefBack", "DapiFore", "DapiBack", "SpotFlag", "ScaledLogRatio")
clone.names <- c("PosOrder", "Chromosome")
edge <- import(paste(dir.in, "/edge.txt", sep=""), type="spot",
spot.names=spot.names, clone.names=clone.names, add.lines=TRUE) 

## import from 'gpr' files
spot.names <- c("Clone", "FLAG", "TEST_B_MEAN", "REF_B_MEAN",
"TEST_F_MEAN", "REF_F_MEAN", "ChromosomeArm")  
clone.names <- c("Clone", "Chromosome", "Position", "Validation")
  
ac <- import(paste(dir.in, "/gradient.gpr", sep=""), type="gpr",
spot.names=spot.names, clone.names=clone.names, sep="\t", 
comment.char="@", add.lines=TRUE) 
\end{ExampleCode}
\end{Examples}

