man/intra-range-methods.Rd
6b1f41fc
 \name{intra-range-methods}
 
 \alias{intra-range-methods}
 
 \alias{shift}
 \alias{shift,RangedSummarizedExperiment-method}
 
 \alias{narrow}
 \alias{narrow,RangedSummarizedExperiment-method}
 
 \alias{resize}
 \alias{resize,RangedSummarizedExperiment-method}
 
 \alias{flank}
 \alias{flank,RangedSummarizedExperiment-method}
 
 \alias{promoters}
6b32ed49
 \alias{terminators}
6b1f41fc
 \alias{promoters,RangedSummarizedExperiment-method}
6b32ed49
 \alias{terminators,RangedSummarizedExperiment-method}
6b1f41fc
 
 \alias{restrict}
 \alias{restrict,RangedSummarizedExperiment-method}
 
 \alias{trim,RangedSummarizedExperiment-method}
 
 
 \title{Intra range transformations of a RangedSummarizedExperiment object}
 
 \description{
dd19136b
   This man page documents the \emph{intra range transformations} that are
   supported on \link{RangedSummarizedExperiment} objects.
6b1f41fc
 }
 
 \usage{
 \S4method{shift}{RangedSummarizedExperiment}(x, shift=0L, use.names=TRUE)
 
 \S4method{narrow}{RangedSummarizedExperiment}(x, start=NA, end=NA, width=NA, use.names=TRUE)
 
 \S4method{resize}{RangedSummarizedExperiment}(x, width, fix="start", use.names=TRUE,
        ignore.strand=FALSE)
 
 \S4method{flank}{RangedSummarizedExperiment}(x, width, start=TRUE, both=FALSE,
       use.names=TRUE, ignore.strand=FALSE)
 
 \S4method{promoters}{RangedSummarizedExperiment}(x, upstream=2000, downstream=200)
6b32ed49
 \S4method{terminators}{RangedSummarizedExperiment}(x, upstream=2000, downstream=200)
6b1f41fc
 
 \S4method{restrict}{RangedSummarizedExperiment}(x, start=NA, end=NA, keep.all.ranges=FALSE,
          use.names=TRUE)
 
 \S4method{trim}{RangedSummarizedExperiment}(x, use.names=TRUE)
 }
 
 \arguments{
   \item{x}{
     A \link{RangedSummarizedExperiment} object.
   }
6b32ed49
   \item{shift, use.names, start, end, width, fix, ignore.strand, both,
         upstream, downstream, keep.all.ranges}{
     See \code{?GenomicRanges::\link[GenomicRanges]{shift}} in the
     \pkg{GenomicRanges} package.
6b1f41fc
   }
 }
 
 \details{
dd19136b
   These transformations operate on the \code{rowRanges} component of the
   \link{RangedSummarizedExperiment} object, which can be a
   \link[GenomicRanges]{GenomicRanges} or \link[GenomicRanges]{GRangesList}
   object.
 
   More precisely, any of the above functions performs the following
   transformation on \link{RangedSummarizedExperiment} object \code{x}:
 \preformatted{    rowRanges(x) <- f(rowRanges(x), ...)
6b1f41fc
 }
   where \code{f} is the name of the function and \code{...} any additional
5bea390c
   arguments passed to it.
dd19136b
 
6b32ed49
   See \code{?GenomicRanges::\link[GenomicRanges]{shift}} in the
   \pkg{GenomicRanges} package for the details of how these transformations
   operate on a \link[GenomicRanges]{GenomicRanges} or
   \link[GenomicRanges]{GRangesList}
dd19136b
   object.
6b1f41fc
 }
 
 \seealso{
   \itemize{
     \item \link{RangedSummarizedExperiment} objects.
e061457c
 
6b32ed49
     \item The \code{\link[GenomicRanges]{shift}} man page in the
           \pkg{GenomicRanges} package where \emph{intra range transformations}
e061457c
           of a \link[GenomicRanges]{GenomicRanges} or
           \link[GenomicRanges]{GRangesList} object are documented.
6b1f41fc
   }
 }
 
 \examples{
 nrows <- 20; ncols <- 6
 counts <- matrix(runif(nrows * ncols, 1, 1e4), nrows)
 rowRanges <- GRanges(rep(c("chr1", "chr2"), c(5, 15)),
                      IRanges(sample(1000L, 20), width=100),
                      strand=Rle(c("+", "-"), c(12, 8)))
 colData <- DataFrame(Treatment=rep(c("ChIP", "Input"), 3),
                      row.names=LETTERS[1:6])
37589055
 rse0 <- SummarizedExperiment(assays=SimpleList(counts=counts),
                              rowRanges=rowRanges, colData=colData)
6b1f41fc
 
37589055
 rse1 <- shift(rse0, 1)
6b1f41fc
 stopifnot(identical(
37589055
   rowRanges(rse1),
   shift(rowRanges(rse0), 1)
6b1f41fc
 ))
 
37589055
 se2 <- narrow(rse0, start=10, end=-15)
6b1f41fc
 stopifnot(identical(
   rowRanges(se2),
37589055
   narrow(rowRanges(rse0), start=10, end=-15)
6b1f41fc
 ))
 
37589055
 se3 <- resize(rse0, width=75)
6b1f41fc
 stopifnot(identical(
   rowRanges(se3),
37589055
   resize(rowRanges(rse0), width=75)
6b1f41fc
 ))
 
37589055
 se4 <- flank(rse0, width=20)
6b1f41fc
 stopifnot(identical(
   rowRanges(se4),
37589055
   flank(rowRanges(rse0), width=20)
6b1f41fc
 ))
 
6b32ed49
 se5 <- promoters(rse0, upstream=85, downstream=50)
6b1f41fc
 stopifnot(identical(
   rowRanges(se5),
6b32ed49
   promoters(rowRanges(rse0), upstream=85, downstream=50)
 ))
 
 se6 <- terminators(rse0, upstream=85, downstream=50)
 stopifnot(identical(
   rowRanges(se6),
   terminators(rowRanges(rse0), upstream=85, downstream=50)
 ))
 
 se7 <- restrict(rse0, start=200, end=700, keep.all.ranges=TRUE)
 stopifnot(identical(
   rowRanges(se7),
37589055
   restrict(rowRanges(rse0), start=200, end=700, keep.all.ranges=TRUE)
6b1f41fc
 ))
 }
 
 \keyword{methods}
 \keyword{utilities}