List of Hits objects
The HitsList class stores a set of Hits objects. It's typically
used to represent the result of findOverlaps
on
two IntegerRangesList objects.
Roughly the same set of utilities are provided for HitsList as for Hits:
The as.matrix
method coerces a HitsList object in a
similar way to Hits, except a column is prepended that indicates
which space (or element in the query IntegerRangesList)
to which the row corresponds.
The as.table
method flattens or unlists the list, counts the
number of hits for each query range and outputs the counts as a
table
, which has the same shape as from a single Hits
object.
To transpose a HitsList object x
, so that the subject
and query in each space are interchanged, call t(x)
. This
allows, for example, counting the number of hits for each subject
element using as.table
.
queryHits(x)
: Equivalent to
unname(as.matrix(x)[,1])
.
subjectHits(x)
: Equivalent to
unname(as.matrix(x)[,2])
.
space(x)
: gets the character vector naming the space
in the query IntegerRangesList for each hit,
or NULL
if the query did not have any names.
In the code snippets below, x
is a HitsList object.
as.matrix(x)
: calls as.matrix
on each
Hits, combines them row-wise and offsets the
indices so that they are aligned with the result of calling
unlist
on the query and subject.
as.table(x)
: counts the number of hits for each
query element in x
and outputs the counts as a table
,
which is aligned with the result of calling unlist
on the query.
t(x)
: Interchange the query and subject in each space
of x
, returns a transposed HitsList object.
This class is highly experimental. It has not been well tested and may disappear at any time.
Michael Lawrence
findOverlaps
in the IRanges package,
which returns a HitsList object when the query and subject are
IntegerRangesList objects.
hits <- Hits(rep(1:20, each=5), 100:1, 20, 100) hlist <- splitAsList(hits, 1:5) hlist hlist[[1]] hlist[[2]] ## Some sanity checks: hits1 <- Hits(c(4, 4, 15, 15), c(1, 2, 3, 4), 20, 4) hits2 <- Hits(c(4, 4, 15, 15), c(1, 2, 3, 4), 20, 4, sort.by.query=TRUE) fA <- c(1, 1, 2, 2) hlist1A <- split(hits1, fA) hlist2A <- split(hits2, fA) stopifnot(identical(as(hlist1A, "SortedByQueryHitsList"), hlist2A)) stopifnot(identical(hlist1A, as(hlist2A, "HitsList"))) fB <- c(1, 2, 1, 2) hlist1B <- split(hits1, fB) hlist2B <- split(hits2, fB) stopifnot(identical(as(hlist1B, "SortedByQueryHitsList"), hlist2B)) stopifnot(identical(hlist1B, as(hlist2B, "HitsList")))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.