[BioC] IRanges bug? Running do.cal("c", list.of.IRanges.objects)
Patrick Aboyoun
paboyoun at fhcrc.org
Fri May 7 23:46:47 CEST 2010
Steve,
This outcome is due to how the S4 generic for c is defined
> args(getGeneric("c"))
function (x, ..., recursive = FALSE)
NULL
The dispatch occurs off the argument x. Since all your list elements are
named, but none are named "x", your object uses the primitive method
> c
function (..., recursive = FALSE) .Primitive("c")
and so you get an undesired result. One solution is to unname your list
object in the do.call step
R> do.call(c, unname(ilist))
IRanges of length 3
start end width
[1] 1 30 30
[2] 10 80 71
[3] 100 500 401
In your situation, however, I would recommend storing lists of IRanges
objects in an [Simple/Compressed]IRangesList instance. You can then use
many IRangesList methods as well as its unlist method to get the object
you were looking for:
R> ilist2 <- IRangesList(ilist)
R> unlist(ilist2, use.names=FALSE)
IRanges of length 3
start end width
[1] 1 30 30
[2] 10 80 71
[3] 100 500 401
R> sessionInfo()
R version 2.12.0 Under development (unstable) (2010-05-02 r51890)
i386-apple-darwin9.8.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] IRanges_1.7.1
Patrick
On 5/7/10 2:23 PM, Steve Lianoglou wrote:
> Hi,
>
> I feel like this should construct a new IRanges object that is the
> "stack" of all the IRanges objects in my list:
>
> R> library(IRanges)
> R> ilist<- list(a=IRanges(1, 30), b=IRanges(10,80), c=IRanges(100, 500))
> R> do.call('c', ilist)
>
> But it just returns the same list as ilist.
>
> Shouldn't the above return the equivalent of:
>
> R> c(l$a, l$b, l$c)
>
> No?
>
> R> sessionInfo()
> R version 2.11.0 Patched (2010-05-05 r51909)
> x86_64-apple-darwin9.8.0
>
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] IRanges_1.6.1 ARE.utils_0.1.0
>
> loaded via a namespace (and not attached):
> [1] igraph_0.5.3 tools_2.11.0
>
> Thanks,
> -steve
>
>
More information about the Bioconductor
mailing list