setClassUnion("matrixOrNULL", c("matrix", "NULL"))
setClass("hasGRanges",
representation(gr = "GRanges"))
setMethod("seqnames", signature(x = "hasGRanges"), function(x) {
seqnames(x@gr)
})
setReplaceMethod("seqnames", "hasGRanges", function(x, value) {
seqnames(x@gr) <- value
x
})
setMethod("seqlevels", signature(x = "hasGRanges"), function(x) {
seqlevels(x@gr)
})
setReplaceMethod("seqlevels", "hasGRanges", function(x, value) {
seqlevels(x@gr) <- value
x
})
setMethod("seqlengths", signature(x = "hasGRanges"), function(x) {
seqlengths(x@gr)
})
setReplaceMethod("seqlengths", "hasGRanges", function(x, value) {
seqlengths(x@gr) <- value
x
})
setMethod("granges", signature(x = "hasGRanges"),
function(x, use.names = TRUE, use.mcols = FALSE, ...)
granges(x@gr, use.names = use.names, use.mcols = use.mcols, ...)
)
## FIXME: might want a granges replacement function
setMethod("start", "hasGRanges", function(x, ...) {
start(x@gr, ...)
})
setReplaceMethod("start", "hasGRanges", function(x, check = TRUE, value) {
start(x@gr, check = check) <- value
x
})
setMethod("end", "hasGRanges", function(x, ...) {
end(x@gr, ...)
})
setReplaceMethod("end", "hasGRanges", function(x, check = TRUE, value) {
end(x@gr, check = check) <- value
x
})
setMethod("width", "hasGRanges", function(x) {
width(x@gr)
})
setReplaceMethod("width", "hasGRanges", function(x, check = TRUE, value) {
width(x@gr, check = check) <- value
x
})
setMethod("strand", "hasGRanges", function(x) {
strand(x@gr)
})
setReplaceMethod("strand", "hasGRanges", function(x, value) {
strand(x@gr) <- value
x
})
setMethod("length", "hasGRanges", function(x) length(x@gr))
setMethod("[", "hasGRanges", function(x, i, ...) {
if(missing(i))
stop("need [i] for subsetting")
if(missing(i))
return(x)
x@gr <- x@gr[i]
x
})
setMethod("findOverlaps",
signature(query = "hasGRanges", subject = "GenomicRanges"),
function (query, subject, maxgap = -1L, minoverlap = 0L,
type = c("any", "start", "end", "within", "equal"),
select = c("all", "first", "last", "arbitrary"),
ignore.strand = FALSE, ...) {
findOverlaps(query = query@gr, subject = subject,
maxgap = maxgap, minoverlap = minoverlap,
type = match.arg(type), select = match.arg(select),
ignore.strand = ignore.strand, ...)
})
setMethod("findOverlaps",
signature(query = "GenomicRanges", subject = "hasGRanges"),
function (query, subject, maxgap = -1L, minoverlap = 0L,
type = c("any", "start", "end", "within", "equal"),
select = c("all", "first", "last", "arbitrary"),
ignore.strand = FALSE, ...) {
findOverlaps(query = query, subject = subject@gr,
maxgap = maxgap, minoverlap = minoverlap,
type = match.arg(type), select = match.arg(select),
ignore.strand = ignore.strand, ...)
})
setMethod("findOverlaps",
signature(query = "hasGRanges", subject = "hasGRanges"),
function (query, subject, maxgap = -1L, minoverlap = 0L,
type = c("any", "start", "end", "within", "equal"),
select = c("all", "first", "last", "arbitrary"),
ignore.strand = FALSE, ...) {
findOverlaps(query = query@gr, subject = subject@gr,
maxgap = maxgap, minoverlap = minoverlap,
type = match.arg(type), select = match.arg(select),
ignore.strand = ignore.strand, ...)
})
setMethod("overlapsAny", c("hasGRanges", "GenomicRanges"),
IRanges:::default_overlapsAny
)
setMethod("overlapsAny", c("GenomicRanges", "hasGRanges"),
IRanges:::default_overlapsAny
)
setMethod("overlapsAny", c("hasGRanges", "hasGRanges"),
IRanges:::default_overlapsAny
)
setMethod("subsetByOverlaps", c("hasGRanges", "GenomicRanges"),
IRanges:::default_subsetByOverlaps
)
setMethod("subsetByOverlaps", c("GenomicRanges", "hasGRanges"),
IRanges:::default_subsetByOverlaps
)
setMethod("subsetByOverlaps", c("hasGRanges", "hasGRanges"),
IRanges:::default_subsetByOverlaps
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.