Question: How to process Affymetrix HT HG-U133+ PM Array Plate
0
19 months ago by
India
Agaz Hussain Wani260 wrote:

I am trying to process data from Affymetrix HT HG-U133+ PM Array Plate GSE27544 by using affy R package. I am interested to generate the expression values, present/absent calls and p-values. I am using the following code

# read file
eset.mas5 = mas5(file)

# generate expression values
exprSet.nologs = exprs(eset.mas5)

# calls
data.mas5calls = mas5calls(file)
data.mas5calls.calls = exprs(data.mas5calls)

# pvalues
pvalue <- assayData(data.mas5calls)[["se.exprs"]]

data.full <- cbind(exprSet.nologs, data.mas5calls.calls, pvalue)

But it does not produce expression, which is supposed to done by

# generate expression values
exprSet.nologs = exprs(eset.mas5)

It just gets NA values

 head(exprSet.nologs)
GSM680176.CEL
1007_PM_s_at            NA
1053_PM_at              NA
117_PM_at               NA
121_PM_at               NA
1255_PM_g_at            NA
1294_PM_at              NA

And when I try to generate calls by

# calls
data.mas5calls = mas5calls(file)

I get  Error in FUN(X[[i]], ...) : NA/NaN/Inf in foreign function call (arg 2)

Which is due to the above NA values. How can I process the data from the above mentioned array.

modified 19 months ago by Guido Hooiveld2.5k • written 19 months ago by Agaz Hussain Wani260
Answer: How to process Affymetrix HT HG-U133+ PM Array Plate
1
19 months ago by
Guido Hooiveld2.5k
Wageningen University, Wageningen, the Netherlands
Guido Hooiveld2.5k wrote:

Please familiarize yourselves a little with the design of the Affymetrix arrays. The design of the HG-U133+ PM array differs from the 'original'  HG-U133 Plus 2.0 array at two points, of which this is the relevant one: "Only perfect match (PM) probes from the cartridge design were retained, while mismatch probes were removed." Source. As a consequence, the P/A calls and MAS5 normalization cannot be performed (because for these the MM probes are also required).

How to proceed? I would go for RMA normalization (which has been repeatedly shown to outperform  MAS5 normalization anyway). Obtaining a P/A (like-)call for the probesets on this array is (AFAIK) not possible.

Thank you for your comment. But when I do that using RMA

rma(file)
I get an error Error in (function (classes, fdef, mtable)  :  unable to find an inherited method for function ‘rma’ for signature ‘"AffyBatch"’

Thank you I got it by affy::rma(). And please ignore the above comment. Is it possible to get p-values?.

P-values of what? I assume you would like to compare two or more groups? Use the package limma for this (link), and 'feed' it the normalized data. Please be sure to carefully read the very extensive vignette (manual), since this document contains tons of examples/approaches on how to do this.

P-values of a sample like we do with

pvalue <- assayData(data.mas5calls)[["se.exprs"]]

I am not interested to compare two or more groups (and I know that I can do with limma), But what I am interested is shown in the example code.

In order to calculate the MAS5-like detection calls (P, A, M), you will need the MM probes. Since you meanwhile know that these are lacking on this PM only array, how could you do this....?
Answer: you can't, so what you would like to do makes no sense....

The only alternative I know of that allows you to calculate a probability of expression (p-value) for PM only arrays is the Universal exPression Codes (UPC) algorithm available in the package SCAN.UPC (link). See ?SCAN and the related PNAS paper for more info.