[Bioc-devel] accession methods to new ExpressionSet objects
Hi Martino, Martino Barenco <sejjmba at ucl.ac.uk> writes:
Hi, I am in the process of updating the package I am maintaining (rHVDM) in the view of the upcoming deprecation of exprSet objects R2.5/ BiobaseX.Y and I have a few questions about accession methods of the new ExpressionSet objects. In particular: 1) Will the pData method be still valid in the near future? I am asking because it is semantically identical to the old one.
Yes, pData will remain
2) The se.exprs method does not work on R2.4.0/Biobase 1.12.2, actually, it is more a remark than a question
The new ExpressionSet does not require an element se.exprs, so there is no method defined.
3) But I have found a workaround using assayData (Name_of_ExpressionSet)$se.exprs, will this be still valid in the near future?
Yes assayData(obj) returns the assay data (list or environment), and $ (or [[) can be used to extract an 'se.exprs' element (if it exists!). You can check on the names of the assay data elements with assayDataElementNames.
4) I also need to be able to modify the se.exprs matrix and the above command does not allow that, the only way this can be done is by reallocating a whole new object.
obj <- assayDataElementReplace(obj, 'se.exprs', <matrix>) or, with the very latest Biobase assayDataElement(obj, 'se.exprs') <- <matrix> do the trick; The awkwardness of the syntax emphasize that these are departing from the 'usual' ExpressisonSet interface, that somehow the se.exprs element is different from what an ExpressionSet 'is'. Likely you should do validObject(obj) after the addition, to make sure that the object you create is consistent with an ExpressionSet (there may be row or column name issues with your 'se.exprs' matrix).
5) This update completely passed under my (admitedly poor) radar: in which R/Biobase were these changes first introduced so that I can update the "DESCRIPTION" file as well. I am interested in backward- as much as forward- compatibility.
Are you thinking of the 'Depends' field? You should probably indicate the version of Biobase you used when updating your code.
Many thanks and I hope these questions are not too silly, you might have guessed that I am a total beginner.
Hope that helps, and feel free to ask further questions if you need more help. Martin
Martino Here is the relevant listing, I am converting an exprSet object (fiveGyMAS5) into a new ExpressionSet object (fiveGyMAS5), note that it has two data slots (exprs and se.exprs):
> class(fiveGyMAS5)
[1] "exprSet" attr(,"package") [1] "Biobase"
> fiveGyMAS5_ES<-as(fiveGyMAS5,"ExpressionSet") > fiveGyMAS5_ES
ExpressionSet (storageMode: lockedEnvironment)
assayData: 22283 features, 21 samples
element names: exprs, se.exprs
phenoData
sampleNames: cARP3-6hrs.CEL, cARP3-2hrs.CEL, ..., cARP3-10hrs.CEL
(21 total)
varLabels and varMetadata:
replicate: NULL
time: NULL
experiment: NULL
featureData
featureNames: 1007_s_at, 1053_at, ..., AFFX-r2-P1-cre-5_at (22283
total)
varLabels and varMetadata: none
experimentData: use 'experimentData(object)'
Annotation [1] "hgu133a"
> pData(fiveGyMAS5_ES)
replicate time experiment cARP3-6hrs.CEL 3 6 5Gy cARP3-2hrs.CEL 3 2 5Gy cARP3-0hrs.CEL 3 0 5Gy cARP2-0hrs.CEL 2 0 5Gy cARP2-12hrs.CEL 2 12 5Gy cARP1-6hrs.CEL 1 6 5Gy cARP1-12hrs.CEL 1 12 5Gy cARP1-2hrs.CEL 1 2 5Gy cARP3-8hrs.CEL 3 8 5Gy cARP2-8hrs.CEL 2 8 5Gy cARP3-12hrs.CEL 3 12 5Gy cARP1-0hrs.CEL 1 0 5Gy cARP2-4hrs.CEL 2 4 5Gy cARP1-8hrs.CEL 1 8 5Gy cARP2-10hrs.CEL 2 10 5Gy cARP2-2hrs.CEL 2 2 5Gy cARP1-4hrs.CEL 1 4 5Gy cARP2-6hrs.CEL 2 6 5Gy cARP3-4hrs.CEL 3 4 5Gy cARP1-10hrs.CEL 1 10 5Gy cARP3-10hrs.CEL 3 10 5Gy
> exprs(fiveGyMAS5_ES)[1,]
cARP3-6hrs.CEL cARP3-2hrs.CEL cARP3-0hrs.CEL cARP2-0hrs.CEL
cARP2-12hrs.CEL
142.3257 78.6030 78.2122
82.0896 162.3600
cARP1-6hrs.CEL cARP1-12hrs.CEL cARP1-2hrs.CEL cARP3-8hrs.CEL
cARP2-8hrs.CEL
152.0475 141.0750 97.6976
176.5356 222.5884
cARP3-12hrs.CEL cARP1-0hrs.CEL cARP2-4hrs.CEL cARP1-8hrs.CEL
cARP2-10hrs.CEL
156.5543 99.3000 125.4226
130.5018 175.9454
cARP2-2hrs.CEL cARP1-4hrs.CEL cARP2-6hrs.CEL cARP3-4hrs.CEL
cARP1-10hrs.CEL
85.4280 106.2817 170.4510
90.2580 157.8746
cARP3-10hrs.CEL
185.9463
> se.exprs(fiveGyMAS5_ES)[1,]
Error in function (classes, fdef, mtable) : unable to find an inherited method for function "se.exprs", for signature "ExpressionSet"
> assayData(fiveGyMAS5_ES)$se.exprs[1,]
cARP3-6hrs.CEL cARP3-2hrs.CEL cARP3-0hrs.CEL cARP2-0hrs.CEL
cARP2-12hrs.CEL
21.20778 15.79627 14.20352
12.50463 20.83215
cARP1-6hrs.CEL cARP1-12hrs.CEL cARP1-2hrs.CEL cARP3-8hrs.CEL
cARP2-8hrs.CEL
17.21553 16.22317 13.97164
31.00531 38.83279
cARP3-12hrs.CEL cARP1-0hrs.CEL cARP2-4hrs.CEL cARP1-8hrs.CEL
cARP2-10hrs.CEL
21.60900 13.49323 18.31659
14.55734 22.28536
cARP2-2hrs.CEL cARP1-4hrs.CEL cARP2-6hrs.CEL cARP3-4hrs.CEL
cARP1-10hrs.CEL
14.94011 14.53037 24.42759
17.59149 19.52623
cARP3-10hrs.CEL
30.85853
[[alternative HTML version deleted]]
_______________________________________________ Bioc-devel at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
Martin Morgan Bioconductor / Computational Biology http://bioconductor.org