[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