Entering edit mode
Dear list,
basically I'm trying to design an object to contain the following
microarray-data
1) "gxIndData": microarray-data normalized in parallel by (an array-
dependent) number of n methods plus the corresponding expression-calls
(again, <= n methods),
2) "gxAvData": derived values (replicate-averages, SEMs, etc),
3) gene/spot annotation,
4) sample-description,
5) various supl informations (parameters, notes, versions, etc)
In overall, this is a somehow modified/extended concept to the Biobase
eSet and I'm trying to figure out if there is a way to use the Biobase
eSet. This way I hope to maintain a decent level of compatibility with
other Bioconductor methods and allow code-reuse.
Now I'd like to store the various sections of 1) and 2) as separate
lists with n matrixes of values to keep things organized.
According to the Vignette "Biobase development and the new eSet"
section 5 ("Extending eSet"), I defined new a new class 'eSet'. But as
soon as I integrate something different than matrixes at the level of
'AssayData', I get an error-message (see code below) - no matter if
these are simply lists or custom-objects. I suppose this means that I
would have to store all matrixes (up to 10*6methods =60 matrixes)
without further organization at the level of 'AssayData'.
However, I'd like to keep at least one (in my case better 2) levels of
additional arborescence to keep the data organized.
So, finally I would like to integrate two new classes for 1) and 2) at
the level of the assayData slot of my modified/new eSet.
Does this mean this is not possible and that I cannot use the 'eSet'
for my purposes ? Do I have to create a novel class somehow equivalent
but finally incompatible to the 'eSet' ?
Any suggestions/hints ?
Thanks in advance,
wolfgang
##
require(Biobase)
setClass("gxSet", contains = "eSet")
setMethod("initialize", "gxSet", function(.Object,
A=new("list"),B=new("list"),...) {
callNextMethod(.Object, A=A,B=B, ...) })
new("gxSet")
## produces :
Error in function (storage.mode = c("lockedEnvironment",
"environment", :
'AssayData' elements with invalid dimensions: 'A' 'B'
## ideally I'd like to use
setClass("gxIndData",representation(SIdata="list",SIcall="list"))
setClass("gxAvData",representation(avSI="list",expressed="list",SEM="
list", conCall="list",
FC="list",FiltFin="list",FiltSI="list",FiltOther="list"))
setClass("gxSet", contains = "eSet")
setMethod("initialize","gxSet", function(.Object,
assayData=assayDataNew(IndData=IndData,AvData=AvData),
IndData=new("gxIndData"), AvData=new("gxAvData"),...) {
if(!missing(assayData) && any(!missing(IndData), !missing(AvData)))
{
warning("using 'assayData'; ignoring 'IndData', 'AvData'") }
callNextMethod(.Object, assayData = assayData, ...)
})
new("gxSet")
## produces :
Error in assayDataNew(IndData = IndData, AvData = AvData) :
'AssayData' elements with invalid dimensions: 'AvData' 'IndData'
## the alternative : an eSet 'like' but independent and incompatible
object ..
setClass("gxSet",representation(IndData="gxIndData",AvData="gxAvData"
,phenoData="AnnotatedDataFrame",featureData="AnnotatedDataFrame",
experimentData="MIAME",annotation="character",protocolData="Annotate
dDataFrame",notes="list"))
## for completeness:
sessionInfo()
R version 2.12.0 (2010-10-15)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252
LC_MONETARY=French_France.1252
[4] LC_NUMERIC=C LC_TIME=French_France.1252
attached base packages:
[1] grDevices datasets splines graphics stats tcltk utils
methods base
other attached packages:
[1] affy_1.28.0 Biobase_2.10.0 svSocket_0.9-50 TinnR_1.0.3
R2HTML_2.2 Hmisc_3.8-3 survival_2.35-8
loaded via a namespace (and not attached):
[1] affyio_1.18.0 cluster_1.13.1 grid_2.12.0
lattice_0.19-13 preprocessCore_1.12.0
[6] svMisc_0.9-60 tools_2.12.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
Wolfgang Raffelsberger, PhD
Laboratoire de BioInformatique et Génomique Intégratives
IGBMC,
1 rue Laurent Fries, 67404 Illkirch Strasbourg, France
Tel (+33) 388 65 3300 Fax (+33) 388 65 3276
wolfgang.raffelsberger @ igbmc.fr
[[alternative HTML version deleted]]