I can reproduce the error by running the following code:
require(ArrayExpress)
AEset <- getAE("E-MEXP-950", type='full')
rawset <- ae2bioc(mageFiles = AEset)
require(frma)
A <- rawset$`A-AFFY-33`
frma(A)
Error in frma(A) :
object must be of class AffyBatch, ExonFeatureSet, or GeneFeatureSet.
There is a way around this issue, though.
You should have the CEL files on your local drive. Even with my command, above, the raw files are downloaded automatically and their paths are stored here:
as.character(A@protocolData@data@.Data[[1]])
[1] "C:/Users/kevin/Documents/PN5538_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PN72_U133A_1_1_1.CEL"
[3] "C:/Users/kevin/Documents/kiel1_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PDN15Normal_U133A_1_1_1.CEL"
[5] "C:/Users/kevin/Documents/PDN16Normal_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PDN17Normal_U133A_1_1_1.CEL"
[7] "C:/Users/kevin/Documents/PDN8_3_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PKN13Normal_U133A_1_1_1.CEL"
[9] "C:/Users/kevin/Documents/PKN15Normal_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PKN16Normal_U133A_1_1_1.CEL"
[11] "C:/Users/kevin/Documents/PKN9Normal_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/pt10_U113A_1_1_1.CEL"
[13] "C:/Users/kevin/Documents/33B_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/35B_U133A_1_1_1.CEL"
[15] "C:/Users/kevin/Documents/39B_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PT55_U133A_1_1_1.CEL"
[17] "C:/Users/kevin/Documents/56A_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PDT121-2Tumor_U133A_1_1_1.CEL"
[19] "C:/Users/kevin/Documents/PDT14Tumor_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PD51_3_U133A_1_1_1.CEL"
[21] "C:/Users/kevin/Documents/PDT81-2_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PDT91-2_U133A_1_1_1.CEL"
[23] "C:/Users/kevin/Documents/PKT4_1Tumor_U133A_1_1_1.CEL" "C:/Users/kevin/Documents/PKT5Tumor_U133A_1_1_1.CEL"
[25] "C:/Users/kevin/Documents/PKT9Tumor_U133A_1_1_1.CEL"
So, you just need to read those guys / gals into an AffyBatch object via the affy package:
files <- as.character(A@protocolData@data@.Data[[1]])
myAffyObject <- affy::ReadAffy(filenames = files)
Then, you can use frma()
:
myAffyObjectNormalised <- frma::frma(myAffyObject)
myAffyObjectNormalised
ExpressionSet (storageMode: lockedEnvironment)
assayData: 22283 features, 25 samples
element names: exprs, se.exprs
protocolData: none
phenoData
sampleNames: PN5538_U133A_1_1_1.CEL PN72_U133A_1_1_1.CEL ... PKT9Tumor_U133A_1_1_1.CEL (25 total)
varLabels: sample
varMetadata: labelDescription
featureData: none
experimentData: use 'experimentData(object)'
Annotation: hgu133a
It should automatically detect the annotation that is required. When you run frma()
, you may have to install a new package, hgu133afrmavecs
, and re-run the command (I did).
Kevin
Please show some code that allows reproduction. [ Please read before posting a question ] -- How To Ask A Good Question
I edited my post and added my code.