On 05/20/2014 12:49 PM, Hervé Pagès wrote:
Hi Julian,
At the root of the problem is what rbind() does on DataFrames containing
matrices:
m <- matrix(1:4, nrow=2)
df <- DataFrame(m=I(m))
df2 <- rbind(df, df)
Then:
> df2
DataFrame with 8 rows and 1 column
m
<matrix>
1 1 3
2 2 4
3 1 3
4 2 4
> nrow(df2)
[1] 8
Too many rows!
> str(df2)
Formal class 'DataFrame' [package "IRanges"] with 6 slots
..@ rownames : NULL
..@ nrows : int 12
..@ listData :List of 1
.. ..$ m: int [1:6, 1:2] 1 2 3 1 2 3 4 5 6 4 ...
..@ elementType : chr "ANY"
..@ elementMetadata: NULL
..@ metadata : list()
Sorry, I mixed up outputs from different sessions. Correct str() output:
> str(df2)
Formal class 'DataFrame' [package "IRanges"] with 6 slots
..@ rownames : NULL
..@ nrows : int 8
..@ listData :List of 1
.. ..$ m: int [1:4, 1:2] 1 2 1 2 3 4 3 4
..@ elementType : chr "ANY"
..@ elementMetadata: NULL
..@ metadata : list()
H.
> validObject(df2)
[1] TRUE
I'll leave this to Michael.
Thanks,
H.
On 05/20/2014 01:22 AM, Julian Gehring wrote:
Hi,
If I want to bind two GRanges object with a matrix in the meta columns,
the concatenation of the two fails in bioc-stable (GenomicRanges 1.16.3)
and bioc-devel (GenomicRanges 1.17.13) with:
'''
Error in validObject(.Object) :
invalid class “GRanges” object: number of rows in DataTable
'mcols(x)' must match length of 'x'
'''
If multiple columns are used, the class of of the first column seem to
determine the behavior:
#+BEGIN_SRC R
library(GenomicRanges)
## sample data, two identical GRanges
gr1 = gr2 = GRanges(1, IRanges(1:2, width = 1))
m = matrix(1:4, 2)
## the vector alone works
mcols(gr1) = mcols(gr2) = DataFrame(x = 1)
c(gr1, gr2) ## works
## vector first, matrix second works
mcols(gr1) = mcols(gr2) = DataFrame(x = 1, m = I(m))
c(gr1, gr2) ## works
## the matrix alone fails
mcols(gr1) = mcols(gr2) = DataFrame(m = I(m))
c(gr1, gr2) ## fails
## matrix first, vector second fails
mcols(gr1) = mcols(gr2) = DataFrame(m = I(m), x = 1)
c(gr1, gr2) ## fails
#+END_SRC
Best wishes
Julian
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpa...@fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel