Hello, A recent question on the support site ( https://support.bioconductor.org/p/76430/#76460) shows that the mcols assignment in GRanges (and perhaps others) is subtly different from classes that purely inherit from Vector (such as GenomicInteractions in the example), as the GRanges method will implicitly convert a data.frame object to a "DataFrame".
Is it possible for Vector to have the same behaviour? From the users' perspective it looks like a bug in the downstream package, and I guess many people will not spot the obvious fix. Thanks, Malcolm PS Here is a self-contained example just using the core packages and no external data: library(S4Vectors) setClass("CharacterVector", representation(char_data = "character"), contains="Vector" ) setMethod(length, "CharacterVector", function(x) length(x@char_data)) char = new("CharacterVector", char_data=c("one", "two", "three")) mcols(char) = data.frame(number=1:3) # will fail mcols(char) = DataFrame(number=1:3) # fine library(GenomicRanges) gr = GRanges("chr", IRanges(1, 5)) mcols(gr) = data.frame(name="range1") [[alternative HTML version deleted]] _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel