[BioC] HTqPCR bug in geometric mean normalization

Johannes Rainer johannes.rainer at i-med.ac.at
Thu May 29 14:47:44 CEST 2014


dear Heidi, dear all,

I've just tried to normalize Taqman microfluidic card data with the 
HTqPCR package using the "geometric.mean" method and was puzzled by its 
results, since, instead of making the samples more comparable, they 
become more different.
actually, I think I spotted the problem in the code:

geometric.mean = {
         geo.mean <- apply(data, 2, function(x) {
             xx <- log2(subset(x, x < Ct.max))
             2^mean(xx)
         })
         if (missing(geo.mean.ref)) geo.mean.ref <- 1
         geo.scale <- geo.mean/geo.mean[geo.mean.ref]
         data.norm <- t(t(data) * geo.scale)
         if (verbose) {
             cat(c("Scaling Ct values\n\tUsing geometric mean within 
each sample\n"))
             cat(c("\tScaling factors:", format(geo.scale, digits = 3),
                 "\n"))
         }

so basically, the scaling factor is a ratio between the average Ct value of a sample and the average Ct in the reference sample. so if the Ct values are on average higher in the sample compared to the reference the scaling factor is > 1. For normalization, however, this scaling factor is multiplied to the Ct values of the sample, making the difference bigger. Thus, I suggest to change the

data.norm <- t( t( data ) * geo.scale )

to

data.norm <- t( t( data ) / geo.scale )


cheers, jo

-- 
Johannes Rainer, PhD
Applied Bioinformatics Group,
Division Molecular Pathophysiology,
Biocenter, Medical University Innsbruck,
Innrain 80/82 II, 6020 Innsbruck, Austria
and
Tyrolean Cancer Research Institute
Innrain 66, 6020 Innsbruck, Austria

Tel.:     +43 (0)512 9003 70961
Email:  johannes.rainer at i-med.ac.at
         johannes.rainer at tcri.at
URL:   http://bioinfo.i-med.ac.at



More information about the Bioconductor mailing list