This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Extract Pre-Normalisation Expression Data From Probe Set Values

I want to take a look on the pre-normalised data of some Affymetrix .CEL files (HuGene-1_0-st-v1, so no MM spots on the chip). For this I have to combined/summarised low level probe intensity values into probe sets values (that map to genes). For comparison I provide the first line of the Expression set:

(0) my normal approach to normalise the data:

library(affy)  
celFiles <- list.celfiles(path_to_cel_files,full.names=TRUE)
affyExpressionFS <- read.celfiles(celFiles)
eset <- rma(affyExpressionFS)
> exprs(eset)[1,]
100712_KMT_1-1_(HuGene-1_0-st-v1).CEL 120712_KMT_1-2_(HuGene-1_0-st-v1).CEL 
                             7.573983                              6.960390 
120712_KMT_1-3_(HuGene-1_0-st-v1).CEL  120712_KMT_M1_(HuGene-1_0-st-v1).CEL 
                             7.884465                              7.956841 
 120712_KMT_M2_(HuGene-1_0-st-v1).CEL  120712_KMT_M3_(HuGene-1_0-st-v1).CEL 
                             7.825583                              8.862901

(1) without normalisation using justRMA:

eset <- justRMA(background=FALSE, normalize=FALSE)
> exprs(eset)[1,]
100712_KMT_1-1_(HuGene-1_0-st-v1).CEL 120712_KMT_1-2_(HuGene-1_0-st-v1).CEL 
                             8.135738                              7.349999 
120712_KMT_1-3_(HuGene-1_0-st-v1).CEL  120712_KMT_M1_(HuGene-1_0-st-v1).CEL 
                             7.767440                              8.251783 
 120712_KMT_M2_(HuGene-1_0-st-v1).CEL  120712_KMT_M3_(HuGene-1_0-st-v1).CEL 
                             7.975933                              8.804127

(2) without normalisation using expresso:

affy.data <- ReadAffy()
eset <- expresso(affy.data, bg.correct=FALSE, normalize=FALSE, summary.method = "avgdiff", pmcorrect.method="pmonly", bgcorrect.method = "rma")
> exprs(eset)[1,]
100712_KMT_1-1_(HuGene-1_0-st-v1).CEL 120712_KMT_1-2_(HuGene-1_0-st-v1).CEL 
                             7.564649                              6.946216 
120712_KMT_1-3_(HuGene-1_0-st-v1).CEL  120712_KMT_M1_(HuGene-1_0-st-v1).CEL 
                             7.875625                              7.947773 
 120712_KMT_M2_(HuGene-1_0-st-v1).CEL  120712_KMT_M3_(HuGene-1_0-st-v1).CEL 
                             7.826963                              8.859935

(3) with normalisation using justRMA:

eset <- justRMA(background=TRUE, normalize=TRUE)
> exprs(eset)[1,]
100712_KMT_1-1_(HuGene-1_0-st-v1).CEL 120712_KMT_1-2_(HuGene-1_0-st-v1).CEL 
                             7.564649                              6.946216 
120712_KMT_1-3_(HuGene-1_0-st-v1).CEL  120712_KMT_M1_(HuGene-1_0-st-v1).CEL 
                             7.875625                              7.947773 
 120712_KMT_M2_(HuGene-1_0-st-v1).CEL  120712_KMT_M3_(HuGene-1_0-st-v1).CEL 
                             7.826963                              8.859935

My conclusion is that (0),(2),(3) is the same. My question now is: Is (1) the best method to get the pre-normalised probe sets values? I am right that the expresso function in (2) perform normalisation although I use normalize=FALSE? Iam right that the values in (1) are also log2 values? Thank you!

gene-expression probeset affymetrix

1 answer

Due to my very limited experience with the affy package I won't directly answer your questions. But I would like to point out that the oligo package is an alternative that you could compare with your approach (1). What I would do to get summarized but not normalized or background corrected (log2 transformed) data is:

library(oligo) celFiles <- list.celfiles(path_to_cel_files, full.name = TRUE) data <- read.celfiles(celFiles) eset <- rma(data, object, background = FALSE, normalize = FALSE) exprs(eset)[1,]

rma() with the oligo package will perform median polish for probe summarization.

Thank you, it is the same result as (1), so I think I can rely on the correctness.

Log in to answer this question.