Views-class {IRanges} | R Documentation |
The Views virtual class is a general container for storing a set of views on an arbitrary Sequence object, called the "subject".
Its primary purpose is to introduce concepts and provide some facilities that can be shared by the concrete classes that derive from it.
Some direct subclasses of the Views class are: XIntegerViews, RleViews, XStringViews (defined in the Biostrings package), etc...
Views(subject, start=NULL, end=NULL, width=NULL, names=NULL)
:
This constructor is a generic function with dispatch on argument
subject
. Specific methods must be defined for the subclasses
of the Views class. For example a method for XString
subjects is defined that returns an XStringViews
object. There is no default method.
The treatment of the start
, end
and width
arguments is the same as with the IRanges
constructor,
except that, in addition, Views
allows start
to be an
IRanges object. This ensures that
Views(subject, IRanges(mystarts, myends, mywidths, mynames))
and Views(subject, mystarts, myends, mywidths, mynames)
are equivalent (except when mystarts
is itself an
IRanges object).
All the accessor-like methods defined for IRanges
objects
work on Views objects. In addition, the following accessors are defined
for Views objects:
subject(x)
:
Return the subject of the views.
The "["
and c
methods defined for IRanges
objects
work on Views objects and return a Views object.
In addition, the "[["
operator is defined for Views objects:
x[[i]]
:
Extracts the view selected by i
as an object of the same class
as subject(x)
. Subscript i
can be a single integer
or a character string.
The result is the subsequence of subject(x)
defined by
subseq(subject(x), start=start(x)[i], end=end(x)[i])
or an error if the view is "out of limits" (i.e. start(x)[i] < 1
or end(x)[i] > length(subject(x))
).
restrict(x, start, end, keep.all.ranges=FALSE, use.names=TRUE)
:
start
and end
must be single integers specifying the
restriction window.
restrict
will drop the views that don't overlap with the
restriction window and drop the parts of the remaining views that
are outside the window.
trim(x, use.names=TRUE)
:
[TODO]
narrow(x, start=NA, end=NA, width=NA, use.names=TRUE)
:
[TODO]
subviews(x, start=NA, end=NA, width=NA, use.names=TRUE)
:
[TODO]
gaps(x, start=NA, end=NA)
:
start
and end
can be single integers or NAs.
The gap extraction will be restricted to the window specified by
start
and end
. start=NA
and end=NA
are interpreted as start=1
and end=length(subject(x))
,
respectively, so, if start
and end
are not specified,
then gaps are extracted with respect to the entire subject.
successiveViews(subject, width, gapwidth=0, from=1)
:
Equivalent to Views(subject, successiveIRanges(width, gapwidth, from))
.
See ?successiveIRanges
for a description of the width
,
gapwidth
and from
arguments.
H. Pages
IRanges-class, ListLike-class, IRanges-utils, Sequence, XSequence.
Some direct subclasses of the Views class: XIntegerViews-class, RleViews-class, XStringViews-class.
showClass("Views") # shows (some of) the known subclasses ## Create a set of 4 views on an XInteger subject of length 10: subject <- XInteger(10, 3:-6) v1 <- Views(subject, start=4:1, end=4:7) ## Extract the 2nd view: v1[[2]] ## Some views can be "out of limits" v2 <- Views(subject, start=4:-1, end=6) trim(v2) subviews(v2, end=-2) ## gaps() v3 <- Views(subject, start=c(8, 3), end=c(14, 4)) gaps(v3) ## Views on a big XInteger subject: subject <- XInteger(99999, sample(99, 99999, replace=TRUE) - 50) v4 <- Views(subject, start=1:99*1000, end=1:99*1001) v4 v4[-1] v4[[5]] ## 31 adjacent views: successiveViews(subject, 40:10)