[BioC] HTqPCR to analyze Fluidigm 96.96 Dynamic Array data

Heidi Dvinge heidi at ebi.ac.uk
Sun Jun 27 15:14:11 CEST 2010

Hello Vicencio,

sorry, your email seems to have slipped under my radar.

> Hello Heidi,
> Thanks a lot for your heplful comments. I followed your suggestions
> regarding the re-structuring of the data, and am now doing some basic
> data exploration. I will give an update once I know a bit more, but I do
> have some questions already in relation to your comments.
>> > Is this a good way to structure my data? Or would it be better to
> create
>> 9
>> > qPCRset objects (1 for each plate)? Before spending more effort
>> continuing
>> > this approach I'd appreciate your opinion on whether this is the way
>> > forward.
>> >
>> It depends a bit on how clean your data is, and how you want to
> preprocess
>> it. If you suspect there are any array-specific effects at all, you'll
>> probably want to normalise your 9 plates separately, i.e. have them in
> a
>> qPCRset object with 96x96 rows and 9 columns.
>> Do you have your data in a single or 9 files? Either way, you can
> create
>> such a qPCRset. Or possibly, if you want to use the object you already
>> have loaded into R, you can split it up using something like this
>> (untested, and unelegant):
> I had my original data in 9 files, but I imported them into one qPCRset
> object (96 features, 864 samples). Using your code I splitted it up
> again and I found the array-specific effects--which I indeed suspected:
> I had run the same dilution series on all arrays, so those samples
> should have similar Ct values across arrays. However, when I plotted
> them (for each gene separately) against array I found some arrays that
> were consistently higher or lower than the others. My idea is to use
> this dilution series to correct for array-specific effects.

That makes sense. So if you have your data as e.g. 9216 x 9 (i.e. treat
each individual plate as a "pseudo-sample"), then I guess you can e.g.
rename your featureNames to be gene_sample to get all 96x96 combinations
and then select the gene_controlsample to normalise against.

> Note that
> I'm not talking about control genes here, but 'control' samples: the
> same samples ran for all genes on all 9 arrays.
> It never occurred to me to use different types of data structuring for
> different parts of the analysis (data eploration, QC, etc). A very good
> idea!
>> A bit of data exploration is probably required to check whether you
> have
>> any particular biases that needs correcting in your data. Based on the
>> qPCRset object you have now, you can e.g. try clustering your data
> using
>> clusterCt(), and see if the samples, especially the controls, cluster
>> together by sample type or based on what array they were run on. Also,
>> what's the correlation between samples like (plotCtCor)?
> Actually, this didn't work for me, neither in my old or new data
> structure.

Exactly what didn't work here? Both clusterCt, plotCtCor and/or other
functions? If you can send me the exact code+error message I can try to
chase down any bugs.

> Where can I add information on types of samples? E.g. with in
> 'Feature type' I can put info on each gene (reference, test). But is
> where can I put info on each sample? E.g. positive control sample,
> negative control, etc.? In a data frame separate from the qPCRset?
I'm afraid you'll probably have to do this externally, i.e. separate from
the qPCRset object. Unless of course you use featureType, and instead of
reference and test use the name of each individual sample. There shouldn't
be any upper limit on how many different groups can be in featureType.


> Cheers,,
> Vicencio

 Heidi Dvinge

European Bioinformatics Institute
Wellcome Trust Genome Campus
Cambridge, CB10 1SD
heidi at ebi.ac.uk

More information about the Bioconductor mailing list