# [BioC] HTqPCR: normalizeCtData

Heidi Dvinge heidi at ebi.ac.uk
Wed Mar 28 12:20:25 CEST 2012

```Dear Ali,

> Dear all,
>
> 1- In normalizeCtData for norm="geometric.mean" , Can we average over
> all arrays or should we obrain the geometric mean of all samples?

I don't really understand what you mean here. Can you define 'arrays' and
'samples' here, and what you're trying to do?

Just to explain a bit more, 'geometric.mean' calculates the average Ct
value across all samples, i.e. columns in the exprs matrix, and then
scales each sample according to the sample average. In each case, a
reference sample is indicated, i.e. the sample whose average is set to 1
in the scaling. This sample therefore remains unchanged after the
normalisation. For example, using sample 1 as the reference:

> data(qPCRraw)
# Scale according to sample 1, i.e. the average Ct value of all
# other samples are taken relative to this sample
> test <- normalizeCtData(qPCRraw, norm="geometric.mean", geo.mean.ref=1)
Scaling Ct values
Using geometric mean within each sample
Scaling factors: 1.00 1.06 1.05 1.02 1.04 1.02
# The refence sample remains unchanged
> all(exprs(test)[,1]==exprs(qPCRraw)[,1])
[1] TRUE
# The other samples are scaled
> all(exprs(test)[,2]==exprs(qPCRraw)[,2])
[1] FALSE

If using a different sample as reference, the scaling factors are now
changed accordingly:

> test <- normalizeCtData(qPCRraw, norm="geometric.mean", geo.mean.ref=2)
Scaling Ct values
Using geometric mean within each sample
Scaling factors: 0.940 1.000 0.992 0.963 0.981 0.956

> 2- geo.mean.ref= apply (a40set at exprs,1 , mean, na.rm=TRUE) gives an
> error but margin =2 does not produces an error, To me this is
> uncomprehensible.
>

You don't say what the error is, so I can really comment on whether it's
incomprehensible or not. However, none of the two should really work,
since the input to geo.mean.ref is a single numeric value between 1 and
the number of samples in your qPCRset.

On a side note, rather than saying a40set at exprs, it's generally better to
use the official accessor functions, i.e. exprs(a40set) or getCt(a40set).

HTH
\Heidi

> normalizeCtData(a40set, norm="geometric.mean",geo.mean.ref= apply
> (a40set at exprs,1 , mean, na.rm=TRUE))
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives:
> http://news.gmane.org/gmane.science.biology.informatics.conductor
>

```