File: XIntegerViews-class.Rd

package info (click to toggle)
r-bioc-xvector 0.46.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 572 kB
  • sloc: ansic: 4,970; makefile: 2
file content (122 lines) | stat: -rw-r--r-- 3,426 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
\name{XIntegerViews-class}
\docType{class}

% Classes:
\alias{class:XIntegerViews}
\alias{XIntegerViews-class}
\alias{XIntegerViews}

% Constructors:
\alias{Views,XInteger-method}
\alias{Views,integer-method}

% Methods:
\alias{show,XIntegerViews-method}

\alias{==,XIntegerViews,XIntegerViews-method}
\alias{==,XIntegerViews,XInteger-method}
\alias{==,XIntegerViews,integer-method}
\alias{==,XInteger,XIntegerViews-method}
\alias{==,integer,XIntegerViews-method}


\title{The XIntegerViews class}

\description{
  The XIntegerViews class is the basic container for storing a set of views
  (start/end locations) on the same XInteger object.
}

\details{
  An XIntegerViews object contains a set of views (start/end locations) on the
  same \link{XInteger} object called "the subject integer vector" or simply
  "the subject".
  Each view is defined by its start and end locations: both are integers such
  that start <= end.
  An XIntegerViews object is in fact a particular case of a
  \link[IRanges]{Views} object (the XIntegerViews class contains the
  \link[IRanges]{Views} class) so it can be manipulated in a similar manner:
  see \code{?\link[IRanges]{Views}} for more information.
  Note that two views can overlap and that a view can be "out of limits"
  i.e. it can start before the first element of the subject or/and end
  after its last element.
}

\section{Other methods}{
  In the code snippets below,
  \code{x}, \code{object}, \code{e1} and \code{e2} are XIntegerViews objects,
  and \code{i} can be a numeric or logical vector.

  \describe{
    \item{\code{x[[i]]}:}{
      Extract a view as an \link{XInteger} object.
      \code{i} must be a single numeric value (a numeric vector of length 1).
      Can't be used for extracting a view that is "out of limits" (raise an
      error). The returned object has the same \link{XInteger} subtype as
      \code{subject(x)}.
    }
    \item{\code{e1 == e2}:}{
      A vector of logicals indicating the result of the view by
      view comparison. The views in the shorter of the two XIntegerViews
      object being compared are recycled as necessary.
    }
    \item{\code{e1 != e2}:}{
      Equivalent to \code{!(e1 == e2)}.
    }
  }
}

\author{P. Aboyoun}

\seealso{
  \link{view-summarization-methods},
  \link[IRanges]{Views-class},
  \link{XInteger-class},
  \link{XDoubleViews-class}
}

\examples{
## One standard way to create an XIntegerViews object is to use
## the Views() constructor:
subject <- as(c(45, 67, 84, 67, 45, 78), "XInteger")
v4 <- Views(subject, start=3:0, end=5:8)
v4
subject(v4)
length(v4)
start(v4)
end(v4)
width(v4)

## Attach a comment to views #3 and #4:
names(v4)[3:4] <- "out of limits"
names(v4)

## A more programatical way to "tag" the "out of limits" views:
idx <- start(v4) < 1 | end(v4) > length(subject(v4)) 
names(v4)[idx] <- "out of limits"

## Extract a view as an XInteger object:
v4[[2]]

## It is an error to try to extract an "out of limits" view:
\dontrun{
v4[[3]] # Error!
}

## Here the first view doesn't even overlap with the subject:
subject <- as(c(97, 97, 97, 45, 45, 98), "XInteger")
Views(subject, start=-3:4, end=-3:4 + c(3:6, 6:3))

## Views on a big XInteger subject:
subject <- XInteger(99999, sample(99, 99999, replace=TRUE) - 50)
v5 <- Views(subject, start=1:99*1000, end=1:99*1001)
v5
v5[-1]
v5[[5]]

## 31 adjacent views:
successiveViews(subject, 40:10)
}

\keyword{methods}
\keyword{classes}