[BioC] RMA background adjustment implementation in affy
Mikko Korpela
mvkorpel at james.hut.fi
Wed Jan 18 10:31:57 CET 2006
Hello!
There are some differences in the way the RMA background adjustment
formula is presented in different documents, and the way it's implemented
in the affy package. I wonder what causes the differences, and whether I
should be worried about the RMA values produced by affy.
The relevant part of the code, I think, is this (copy-paste from affy
1.9.6, same as in many previous versions of affy, at least in affy-1.5.8):
---
void bg_adjust(double *PM,double *MM, double *param, int rows, int cols,
int co$ int i;
double a;
for (i=0; i < rows; i++){
a = PM[column*rows + i] - param[1] - param[0]*param[2]*param[2];
PM[column*rows + i] = a + param[2] * phi(a/param[2])/Phi(a/param[2]);
}
}
---
where the array "param" is as described by the following comment (also
copy-paste):
** note we will assume that param[0] is alpha, param[1] is mu, param[2]
is sigma
The documents that do not agree with the above are builtinMethods.pdf
(documentation of the affy package) and
http://stat-www.berkeley.edu/users/bolstad/stuff/AffyLowLevelWorkshop_Poster_20$
In particular, some terms are missing from both the numerator and the
denominator of the division operation in the affy implementation. The
documents also do not agree with each other...
Am I missing something simple here? I hope someone knows the right
formula for the background adjustment and the reason why the
implementation is different (it seems) from the documentation.
Thanks,
Mikko
More information about the Bioconductor
mailing list