[BioC] Limma: background correction. Use or ignore?

Henrik Bengtsson hb at maths.lth.se
Wed Apr 5 16:09:33 CEST 2006

On 4/5/06, J.delasHeras at ed.ac.uk <J.delasHeras at ed.ac.uk> wrote:
> Quoting Naomi Altman <naomi at stat.psu.edu>:
> > We have done up to 4 scans of the same arrays at different
> > intensities with little apparent degradation of the signal.  We found
> > a setting of the scanner that preserved the full optical range, and
> > did not try to combine data across scanner levels, although there is
> > some literature on this.
> >
> > --Naomi
> Thanks Naomi.
> I came across a PERL script called Masliner. It's described in Dudley
> et al. PNAS(2002) 99:7554-7559.
> I haven't tested it in any detail yet (so much to do, so little
> time...) but I had it set to run under Cygwin by our local computer
> guy. I also asked him to write a wrapper so that I only need to input
> my two .gpr files (it's only set for Genepix files) and the program
> will produce a "fake" output .gpr that can be used straight away (the
> PERL script alone forces you do do some manual changes). I mean to
> check it soon.

Hi again,

the multiscan-calibration method in Bengtsson, H.; Jönsson, G. &
Christersson, J.V. Calibration and assessment of channel-specific
biases in microarray data with extended dynamical range, BMC
Bioinformatics, 2004, is implemented in the aroma package

First, the method is applied to each channel separately, which means
it can also be used for Affymetrix scans (if you can change the PMT). 
Second, each array has to be scanned at at least two different PMTs.

gpr <- GenePixData$read(pattern="scan[0-9].gpr")
rg <- as.RGData(rg)

(You can set the fields of the gpr object and the save this to file,
but I would not recommend to modify a GPR file, because its different
fields will become inconsistent with each other.)

If you prefer to use data in plain matrix, use the aroma.light package
instead.  Also, the help pages of this package are much more up to
date.  Consider one channel at the time.  Assume that the signals from
three scans are stored in vectors X1, X2 and X3.  Then:

X <- cbind(X1, X2, X3)
Xest <- calibrateMultiscan(X)

To get the actual parameter estimates, for instance the scanner
offset, see the attributes of X.

If you use BASE, the aroma.Base package has a plugin utilizing the
aroma.light method.

The advantages of multiscan calibration are several: 1) you remove the
offset of the scanner, 2) the effect of the scanner noise is smaller
because each feature is measured multiple times (contrary to
Masliner), 3) the dynamical range of you scanner is increased, and 4)
you do not have to worry about exact PMT settings and saturation (the
estimation methods are rather robust against this and in the worst
case you can always downweight such signals yourself).

Note that the above applies to changing the PMT.  We haven't tried the
same modifying the laser power.  If one identifies an offset by
changing the laser power this way, it is a different type of offset
than the one we talk about in the paper.  The one found in the paper,
is most likely due to the PMT (photo-multiplier tube) or the A/D
converters following.

Finally, I would like to collect scanner-offset estimates from as many
sources as possible, so if you try the above method, I would be happy
you could forward you estimates together with what scanner and scanner
settings (power and PMT) you've used.



> Jose
> --
> Dr. Jose I. de las Heras                      Email: J.delasHeras at ed.ac.uk
> The Wellcome Trust Centre for Cell Biology    Phone: +44 (0)131 6513374
> Institute for Cell & Molecular Biology        Fax:   +44 (0)131 6507360
> Swann Building, Mayfield Road
> University of Edinburgh
> Edinburgh EH9 3JR
> UK
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor

More information about the Bioconductor mailing list