\name{mappings}
\alias{mappings}
\alias{probeset.to.probe}
\alias{probeset.to.exon}
\alias{probeset.to.transcript}
\alias{probeset.to.gene}
\alias{exon.to.probeset}
\alias{exon.to.transcript}
\alias{exon.to.gene}
\alias{transcript.to.probeset}
\alias{transcript.to.exon}
\alias{transcript.to.gene}
\alias{gene.to.probeset}
\alias{gene.to.exon}
\alias{gene.to.transcript}
\alias{symbol.to.gene}
\alias{symbol.to.probeset}
\alias{gene.to.exon.probeset}
\alias{gene.to.exon.probeset.expr}
\alias{exon.to.sequence}

\title{Map between probes, probesets, exons, transcripts and genes}
\description{
A set of functions of the form X.to.Y. That take a character vector of
database identifiers of type X, and return a set of type Y, either as a
character vector, or as rows in a dataframe. 
}
\usage{

probeset.to.probe(v,as.vector=TRUE,unique=TRUE,mt.rm=TRUE)
probeset.to.exon(v,as.vector=TRUE,unique=TRUE,subset=c("core","est","prediction"))
probeset.to.transcript(v,as.vector=TRUE,unique=TRUE,subset=c("core","est","prediction"))
probeset.to.gene(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"))
exon.to.probeset(v,as.vector=TRUE,unique=TRUE,subset=c("core","est","prediction"),probes.min=4)
exon.to.transcript(v,as.vector=TRUE,unique=TRUE,subset=c("core","est","prediction"))
exon.to.gene(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"))
transcript.to.probeset(v,as.vector=TRUE,unique=TRUE,subset=c("core","est","prediction"),probes.min=4)
transcript.to.exon(v,as.vector=TRUE,unique=TRUE,subset=c("core","est","prediction"))
transcript.to.gene(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"))
gene.to.probeset(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"),probes.min=4)
gene.to.exon(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"))
gene.to.transcript(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"))
symbol.to.gene(v,as.vector=TRUE,unique=TRUE)
gene.to.exon.probeset(v,unique=TRUE,probes.min=4)
gene.to.exon.probeset.expr(x,v,probes.min=4)
exon.to.sequence(v,as.vector=TRUE,unique=TRUE,subset=c("core","est"))
}
\arguments{
 \item{v}{A character vector of database identifiers}
 \item{as.vector}{If TRUE, return a \link{character} vector otherwise return a \code{\link{data.frame}}}
 \item{unique}{If TRUE, remove duplicates from the results}
 \item{mt.rm}{If TRUE, remove multitarget probesets before returning the
   result}
 \item{probes.min}{Only return probesets with at least this many
   probes}
 \item{subset}{Which subset of the database to perform the mapping
   against? \code{core} refers to Ensembl genes, \code{est}
   refers to Ensembl ESTs and \code{prediction} refers to Ensembl
   predictions.}
 \item{x}{An \code{\link[Biobase:class.ExpressionSet]{ExpressionSet}}
   object or a \code{matrix} 
   containing expression data. If the latter, then the rownames must
   specify the exon array probeset names.} 
}

\details{
  Connects to the X:Map database to retrieve data. Before these
  functions can be used, \code{\link{xmapConnect}} must have been
  called.

  By default the results are returned as a vector, and duplicate entries
  are removed. Note that the function \code{probeset.to.probe}, by
  default, also removes multitarget probesets.

  \code{gene.to.exon.probeset}
  generates a single \code{data.frame} with mappings between genes, exons
  and probesets. \code{gene.to.exon.probeset.exprs} does the same but
  adds the expression data for the corresponding probesets onto the
  beginning of the \code{data.frame}.

  Mappings against the prediction subset of the database are made slightly
  more complicated since there are no predicted genes, only transcripts
  and exons. In addition, their IDs are integers not strings. The
  additional functions \code{genscan.label.to.id} and
  \code{genescan.id.to.label} should be used to provide the mapping
  between names of the form 'GENSCAN0000...' and the integer ids used
  for the transcripts.

  
}
\value{
A character vector, or, if \code{as.vector=FALSE}, a \code{\link{data.frame}}.
}
\seealso{
  \link{xmapConnect} \link{filters} \link{details} 
}
\examples{
  if(interactive()) {
    xmapConnect()
    probeset.to.gene(c("3743919"))
    probeset.to.gene(c("3743919"),as.vector=FALSE)
    probeset.to.gene(c("3743919","3743919"),as.vector=FALSE,unique=TRUE)
    gene <-  probeset.to.gene(c("3743919"))
    gene.to.probeset(gene,as.vector=TRUE)
    gene.to.exon.probeset(gene)
  }
}
\keyword{misc}
\author{C.J. Miller, M.J. Okoniewski}
\references{\url{http://xmap.picr.man.ac.uk}}