Hello Andreia,
hm, slightly tricky. Are these data sets from some sort of commercial
platform, like the ABI TLDA cards, or from normal qPCR reactions on a
384
well plate or similar? Just to make sure I understand you experiment
right, do you have something like this?
Sample Cell_type Platform RT_reaction
------------------------------------
1 A type1 RT1
1 A type1 RT1
1 A type2 RT2
2 A type2 RT1
2 B type2 RT1
3 B type2 RT1
4 B type2 RT1
Is each line a separate plate? Or would the "Platform" column
correspond
to 2 individual plates, where multiple samples can be loaded onto each
plate?
What exactly is your primary interest here? Difference between cell
types
A and B? I think we need some specification here, for us to help you
properly.
If you have different kinds of plates, then you could potentially
include
pate as a batch effect when doing your analysis. This will require you
to
use limmaCtData() for your test. This is based on the function lmFit
from
the limma package, which has some nice examples of how to take this
sort
of information into account. Although it looks like you have too many
variables here to consider all of them.
By the way, you don't necessarily need one file per sample. As long as
you
have the sample number of genes per sample, e.g. 384, then with HTqPCR
version 1.2.0 you can use the n.data parameter in readCtData() to
indicate
how many sets of data are in each file.
HTH
\Heidi
> Dear Heidi,
>
> I have received a data set from a qPCR miRNA set where I have
>
> sample1 - 2 replicates from the same RT reaction
> 1 replicate from an independen RT reaction
cell_type:A
> sample 2 - cell type : A
> sample2 cell_type:B
> sample3 cell_type:B
> sample 4 cell_type:B
>
> I saw that I should prepare one file per sample, but the replicates
of
> sample1 have been produced in different plates and one is even from
> another
> RT reaction. How can I account for this using your package?
> Thanks in advacne for your reply.
> With kind regards,
> Andreia
>
>
> --
> --------------------------------------------
> Andreia J. Amaral
> Unidade de Imunologia Cl?nica
> Instituto de Medicina Molecular
> Universidade de Lisboa
> email: andreiaamaral at fm.ul.pt
> andreia.fonseca at gmail.com
>
Dear heidi,
thank you for your reply. The datasets come from a 96 well qPCR
plate, but
only 80 reactions have good quality. Each line corresponds to a
separate
plate, with the same probes. I would like to compare A and B. Thanks
for
your help.
Kind regards,
Andreia
On Sat, Apr 24, 2010 at 12:45 PM, Heidi Dvinge <heidi@ebi.ac.uk>
wrote:
> Hello Andreia,
>
> hm, slightly tricky. Are these data sets from some sort of
commercial
> platform, like the ABI TLDA cards, or from normal qPCR reactions on
a 384
> well plate or similar? Just to make sure I understand you experiment
> right, do you have something like this?
>
> Sample Cell_type Platform RT_reaction
> ------------------------------------
> 1 A type1 RT1
> 1 A type1 RT1
> 1 A type2 RT2
> 2 A type2 RT1
> 2 B type2 RT1
> 3 B type2 RT1
> 4 B type2 RT1
>
> Is each line a separate plate? Or would the "Platform" column
correspond
> to 2 individual plates, where multiple samples can be loaded onto
each
> plate?
> What exactly is your primary interest here? Difference between cell
types
> A and B? I think we need some specification here, for us to help you
> properly.
>
> If you have different kinds of plates, then you could potentially
include
> pate as a batch effect when doing your analysis. This will require
you to
> use limmaCtData() for your test. This is based on the function lmFit
from
> the limma package, which has some nice examples of how to take this
sort
> of information into account. Although it looks like you have too
many
> variables here to consider all of them.
>
> By the way, you don't necessarily need one file per sample. As long
as you
> have the sample number of genes per sample, e.g. 384, then with
HTqPCR
> version 1.2.0 you can use the n.data parameter in readCtData() to
indicate
> how many sets of data are in each file.
>
> HTH
> \Heidi
>
> > Dear Heidi,
> >
> > I have received a data set from a qPCR miRNA set where I have
> >
> > sample1 - 2 replicates from the same RT reaction
> > 1 replicate from an independen RT reaction
cell_type:A
> > sample 2 - cell type : A
> > sample2 cell_type:B
> > sample3 cell_type:B
> > sample 4 cell_type:B
> >
> > I saw that I should prepare one file per sample, but the
replicates of
> > sample1 have been produced in different plates and one is even
from
> > another
> > RT reaction. How can I account for this using your package?
> > Thanks in advacne for your reply.
> > With kind regards,
> > Andreia
> >
> >
> > --
> > --------------------------------------------
> > Andreia J. Amaral
> > Unidade de Imunologia Clínica
> > Instituto de Medicina Molecular
> > Universidade de Lisboa
> > email: andreiaamaral@fm.ul.pt
> > andreia.fonseca@gmail.com
> >
>
>
>
--
--------------------------------------------
Andreia J. Amaral
Unidade de Imunologia Clínica
Instituto de Medicina Molecular
Universidade de Lisboa
email: andreiaamaral@fm.ul.pt
andreia.fonseca@gmail.com
[[alternative HTML version deleted]]
On 26 Apr 2010, at 09:41, Andreia Fonseca wrote:
> Dear heidi,
> thank you for your reply. The datasets come from a 96 well qPCR
> plate, but only 80 reactions have good quality. Each line
> corresponds to a separate plate, with the same probes. I would like
> to compare A and B. Thanks for your help.
> Kind regards,
> Andreia
>
Hello Andreia,
so, what you probably want is to include the "Platform" as a andom
effect using the duplicateCorrelation() function from limma with
block argument. If you type
> limmaUsersGuide()
you'll get the full limma users guide, which includes examples of how
to include different kinds of technical and biological variation.
This is basically what the limmaCtData() funciton is based on. So
generally you'd want to first do something like this (with "norm"
being your normalised qPCRset data):
> targets <- data.frame(Cell=rep(c("A", "B"), times=3:4),
Platform=rep(c("type1", "type2"), times=c(2,5)))
> design <- model.matrix(~0+targets$Cell)
> colnames(design) <- c("CellTypeA", "CellTypeB")
> dupcor <- duplicateCorrelation(exprs(norm), design=design,
block=targets$Platform)
and then include the dupcor$correlation and block in the
limmaCtData.There's a small bug in limmaCtData for including dupcor
though - I'll get that fixed.
However, int his case that doesn't really matter, since I don't think
you can analyse you data this way, if you experiment design really is
as outlined in "targets" here. All platforms of type1 are used for
cell type A, there are none present for B.
You might have to just ignore that the samples are measured on 2
different platforms, and simply do a standard test between cell type
A and B, even though this is not optimal. How different are these
platforms - would you expect it to be significant for your analysis?
Have you tried testing for significance between Ct values measured on
type1 and type2? Or what's the dupcor$correlation between them? These
are some of the things you can look at before deciding how to
continue.
Best wishes
\Heidi
> On Sat, Apr 24, 2010 at 12:45 PM, Heidi Dvinge <heidi@ebi.ac.uk>
> wrote:
> Hello Andreia,
>
> hm, slightly tricky. Are these data sets from some sort of
commercial
> platform, like the ABI TLDA cards, or from normal qPCR reactions on
> a 384
> well plate or similar? Just to make sure I understand you experiment
> right, do you have something like this?
>
> Sample Cell_type Platform RT_reaction
> ------------------------------------
> 1 A type1 RT1
> 1 A type1 RT1
> 1 A type2 RT2
> 2 A type2 RT1
> 2 B type2 RT1
> 3 B type2 RT1
> 4 B type2 RT1
>
> Is each line a separate plate? Or would the "Platform" column
> correspond
> to 2 individual plates, where multiple samples can be loaded onto
each
> plate?
> What exactly is your primary interest here? Difference between cell
> types
> A and B? I think we need some specification here, for us to help you
> properly.
>
> If you have different kinds of plates, then you could potentially
> include
> pate as a batch effect when doing your analysis. This will require
> you to
> use limmaCtData() for your test. This is based on the function
> lmFit from
> the limma package, which has some nice examples of how to take this
> sort
> of information into account. Although it looks like you have too
many
> variables here to consider all of them.
>
> By the way, you don't necessarily need one file per sample. As long
> as you
> have the sample number of genes per sample, e.g. 384, then with
HTqPCR
> version 1.2.0 you can use the n.data parameter in readCtData() to
> indicate
> how many sets of data are in each file.
>
> HTH
> \Heidi
>
> > Dear Heidi,
> >
> > I have received a data set from a qPCR miRNA set where I have
> >
> > sample1 - 2 replicates from the same RT reaction
> > 1 replicate from an independen RT reaction
> cell_type:A
> > sample 2 - cell type : A
> > sample2 cell_type:B
> > sample3 cell_type:B
> > sample 4 cell_type:B
> >
> > I saw that I should prepare one file per sample, but the
> replicates of
> > sample1 have been produced in different plates and one is even
from
> > another
> > RT reaction. How can I account for this using your package?
> > Thanks in advacne for your reply.
> > With kind regards,
> > Andreia
> >
> >
> > --
> > --------------------------------------------
> > Andreia J. Amaral
> > Unidade de Imunologia Clínica
> > Instituto de Medicina Molecular
> > Universidade de Lisboa
> > email: andreiaamaral@fm.ul.pt
> > andreia.fonseca@gmail.com
> >
>
>
>
>
>
> --
> --------------------------------------------
> Andreia J. Amaral
> Unidade de Imunologia Clínica
> Instituto de Medicina Molecular
> Universidade de Lisboa
> email: andreiaamaral@fm.ul.pt
> andreia.fonseca@gmail.com
[[alternative HTML version deleted]]
Greetings
I have R 2.11, BioC 2.6 and HTqPCR 1.2 (see session info at the end).
I created a qPCRset object by using rbind() to concatenate four pairs
of dissimilar cards for each experimental condition and then cbind()
to concatenate the four objects into one:
WT_time1.a |
WT_time1.b |---> WT_time1
MT_time1.a |
MT_time1.b |---> MT_time1
WT_time2.a | ---> s2010004660
WT_time2.b |---> WT_time2
MT_time2.a |
MT_time2.b |---> MT_time2
I set g <- c("MammU6") which is a endogenous control gene.
I then tried to plotCtOverview(s2010004660, genes=g,
groups=sampleNames(qPCRset), conf.int=TRUE) and got
> plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
Error in if (del == 0 && to == 0) return(to) :
missing value where TRUE/FALSE needed
Here's the object info:
> s2010004660
An object of class "qPCRset"
Size: 768 features, 4 samples
Feature types: Endogenous Control, Target
Feature names: mmu-let-7b-4373168 mmu-let-7c-4373167 mmu-
let-7d-4395394 ...
Feature classes:
Feature categories: OK, Undetermined
Sample names: WT_4wks MT_4wks WT_17wks ...
Could it be that the Feature classes slot is empty?
Here's session info:
> sessionInfo()
R version 2.11.0 (2010-04-22)
i386-apple-darwin9.8.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] HTqPCR_1.2.0 limma_3.4.0 RColorBrewer_1.0-2
Biobase_2.8.0 MASS_7.3-5
loaded via a namespace (and not attached):
[1] affy_1.26.0 affyio_1.16.0 gdata_2.7.1
gplots_2.7.4 gtools_2.6.1 preprocessCore_1.10.0
[7] tools_2.11.0
Thanks
Mike
Michael Muratet, Ph.D.
Senior Scientist
HudsonAlpha Institute for Biotechnology
mmuratet at hudsonalpha.org
(256) 327-0473 (p)
(256) 327-0966 (f)
Room 4005
601 Genome Way
Huntsville, Alabama 35806
Hello Mike,
> Greetings
>
> I have R 2.11, BioC 2.6 and HTqPCR 1.2 (see session info at the
end).
>
> I created a qPCRset object by using rbind() to concatenate four
pairs
> of dissimilar cards for each experimental condition and then cbind()
> to concatenate the four objects into one:
>
> WT_time1.a |
> WT_time1.b |---> WT_time1
> MT_time1.a |
> MT_time1.b |---> MT_time1
> WT_time2.a | ---> s2010004660
> WT_time2.b |---> WT_time2
> MT_time2.a |
> MT_time2.b |---> MT_time2
>
> I set g <- c("MammU6") which is a endogenous control gene.
>
> I then tried to plotCtOverview(s2010004660, genes=g,
> groups=sampleNames(qPCRset), conf.int=TRUE) and got
>
> > plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
> Error in if (del == 0 && to == 0) return(to) :
> missing value where TRUE/FALSE needed
>
> Here's the object info:
>
> > s2010004660
> An object of class "qPCRset"
> Size: 768 features, 4 samples
> Feature types: Endogenous Control, Target
> Feature names: mmu-let-7b-4373168 mmu-let-7c-4373167
mmu-
> let-7d-4395394 ...
> Feature classes:
> Feature categories: OK, Undetermined
> Sample names: WT_4wks MT_4wks WT_17wks ...
>
> Could it be that the Feature classes slot is empty?
>
Feature classes shouldn't matter at all here. I can reproduce this
using
the data sets included in HTqPCR (qPCRraw and qPCRpros) though. What
does
traceback() say? And does the same happen when you use conf.int=FALSE?
\Heidi
> Here's session info:
>
> > sessionInfo()
> R version 2.11.0 (2010-04-22)
> i386-apple-darwin9.8.0
>
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] HTqPCR_1.2.0 limma_3.4.0 RColorBrewer_1.0-2
> Biobase_2.8.0 MASS_7.3-5
>
> loaded via a namespace (and not attached):
> [1] affy_1.26.0 affyio_1.16.0 gdata_2.7.1
> gplots_2.7.4 gtools_2.6.1 preprocessCore_1.10.0
> [7] tools_2.11.0
>
> Thanks
>
> Mike
>
> Michael Muratet, Ph.D.
> Senior Scientist
> HudsonAlpha Institute for Biotechnology
> mmuratet at hudsonalpha.org
> (256) 327-0473 (p)
> (256) 327-0966 (f)
>
> Room 4005
> 601 Genome Way
> Huntsville, Alabama 35806
>
>
>
>
>
On Apr 30, 2010, at 2:42 PM, Heidi Dvinge wrote:
> Hello Mike,
>
>> Greetings
>>
>> I have R 2.11, BioC 2.6 and HTqPCR 1.2 (see session info at the
end).
>>
>> I created a qPCRset object by using rbind() to concatenate four
pairs
>> of dissimilar cards for each experimental condition and then
cbind()
>> to concatenate the four objects into one:
>>
>> WT_time1.a |
>> WT_time1.b |---> WT_time1
>> MT_time1.a |
>> MT_time1.b |---> MT_time1
>> WT_time2.a | ---> s2010004660
>> WT_time2.b |---> WT_time2
>> MT_time2.a |
>> MT_time2.b |---> MT_time2
>>
>> I set g <- c("MammU6") which is a endogenous control gene.
>>
>> I then tried to plotCtOverview(s2010004660, genes=g,
>> groups=sampleNames(qPCRset), conf.int=TRUE) and got
>>
>>> plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
>> Error in if (del == 0 && to == 0) return(to) :
>> missing value where TRUE/FALSE needed
>>
>> Here's the object info:
>>
>>> s2010004660
>> An object of class "qPCRset"
>> Size: 768 features, 4 samples
>> Feature types: Endogenous Control, Target
>> Feature names: mmu-let-7b-4373168 mmu-let-7c-4373167
mmu-
>> let-7d-4395394 ...
>> Feature classes:
>> Feature categories: OK, Undetermined
>> Sample names: WT_4wks MT_4wks WT_17wks ...
>>
>> Could it be that the Feature classes slot is empty?
>>
> Feature classes shouldn't matter at all here. I can reproduce this
> using
> the data sets included in HTqPCR (qPCRraw and qPCRpros) though. What
> does
> traceback() say? And does the same happen when you use
conf.int=FALSE?
Thanks Heidi
Here's the traceback():
> plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
Error in if (del == 0 && to == 0) return(to) :
missing value where TRUE/FALSE needed
> traceback()
3: seq.default(1.5, ncol(SD) * (nrow(SD) + 1), nrow(SD) + 1)
2: seq(1.5, ncol(SD) * (nrow(SD) + 1), nrow(SD) + 1)
1: plotCtOverview(s2010004660, genes = g, conf.int = TRUE)
conf.int = FALSE it makes the plot without complaining. Actually, it
makes the plot in the first case, too, it just doesn't draw error
bars.
Thanks again for the package and the help
Mike
>
> \Heidi
>
>> Here's session info:
>>
>>> sessionInfo()
>> R version 2.11.0 (2010-04-22)
>> i386-apple-darwin9.8.0
>>
>> locale:
>> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets methods
base
>>
>> other attached packages:
>> [1] HTqPCR_1.2.0 limma_3.4.0 RColorBrewer_1.0-2
>> Biobase_2.8.0 MASS_7.3-5
>>
>> loaded via a namespace (and not attached):
>> [1] affy_1.26.0 affyio_1.16.0 gdata_2.7.1
>> gplots_2.7.4 gtools_2.6.1 preprocessCore_1.10.0
>> [7] tools_2.11.0
>>
>> Thanks
>>
>> Mike
>>
>> Michael Muratet, Ph.D.
>> Senior Scientist
>> HudsonAlpha Institute for Biotechnology
>> mmuratet at hudsonalpha.org
>> (256) 327-0473 (p)
>> (256) 327-0966 (f)
>>
>> Room 4005
>> 601 Genome Way
>> Huntsville, Alabama 35806
>>
>>
>>
>>
>>
>
>
Michael Muratet, Ph.D.
Senior Scientist
HudsonAlpha Institute for Biotechnology
mmuratet at hudsonalpha.org
(256) 327-0473 (p)
(256) 327-0966 (f)
Room 4005
601 Genome Way
Huntsville, Alabama 35806
>
> On Apr 30, 2010, at 2:42 PM, Heidi Dvinge wrote:
>
>> Hello Mike,
>>
>>> Greetings
>>>
>>> I have R 2.11, BioC 2.6 and HTqPCR 1.2 (see session info at the
end).
>>>
>>> I created a qPCRset object by using rbind() to concatenate four
pairs
>>> of dissimilar cards for each experimental condition and then
cbind()
>>> to concatenate the four objects into one:
>>>
>>> WT_time1.a |
>>> WT_time1.b |---> WT_time1
>>> MT_time1.a |
>>> MT_time1.b |---> MT_time1
>>> WT_time2.a | ---> s2010004660
>>> WT_time2.b |---> WT_time2
>>> MT_time2.a |
>>> MT_time2.b |---> MT_time2
>>>
>>> I set g <- c("MammU6") which is a endogenous control gene.
>>>
>>> I then tried to plotCtOverview(s2010004660, genes=g,
>>> groups=sampleNames(qPCRset), conf.int=TRUE) and got
>>>
>>>> plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
>>> Error in if (del == 0 && to == 0) return(to) :
>>> missing value where TRUE/FALSE needed
>>>
>>> Here's the object info:
>>>
>>>> s2010004660
>>> An object of class "qPCRset"
>>> Size: 768 features, 4 samples
>>> Feature types: Endogenous Control, Target
>>> Feature names: mmu-let-7b-4373168 mmu-let-7c-4373167
mmu-
>>> let-7d-4395394 ...
>>> Feature classes:
>>> Feature categories: OK, Undetermined
>>> Sample names: WT_4wks MT_4wks WT_17wks ...
>>>
>>> Could it be that the Feature classes slot is empty?
>>>
>> Feature classes shouldn't matter at all here. I can reproduce this
>> using
>> the data sets included in HTqPCR (qPCRraw and qPCRpros) though.
What
>> does
>> traceback() say? And does the same happen when you use
conf.int=FALSE?
>
> Thanks Heidi
>
> Here's the traceback():
>
> > plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
> Error in if (del == 0 && to == 0) return(to) :
> missing value where TRUE/FALSE needed
> > traceback()
> 3: seq.default(1.5, ncol(SD) * (nrow(SD) + 1), nrow(SD) + 1)
> 2: seq(1.5, ncol(SD) * (nrow(SD) + 1), nrow(SD) + 1)
> 1: plotCtOverview(s2010004660, genes = g, conf.int = TRUE)
>
> conf.int = FALSE it makes the plot without complaining. Actually, it
> makes the plot in the first case, too, it just doesn't draw error
bars.
>
Hm, so for some reason it can't calculate a standard deviation for
your
qPCRset. However it should work even if SD returns NA.
Do your have replicate genes in your set? And what happens if you say
e.g.
groups=c("A", "A", "B", "B")?
\Heidi
> Thanks again for the package and the help
>
> Mike
>>
>> \Heidi
>>
>>> Here's session info:
>>>
>>>> sessionInfo()
>>> R version 2.11.0 (2010-04-22)
>>> i386-apple-darwin9.8.0
>>>
>>> locale:
>>> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>>
>>> attached base packages:
>>> [1] stats graphics grDevices utils datasets methods
base
>>>
>>> other attached packages:
>>> [1] HTqPCR_1.2.0 limma_3.4.0 RColorBrewer_1.0-2
>>> Biobase_2.8.0 MASS_7.3-5
>>>
>>> loaded via a namespace (and not attached):
>>> [1] affy_1.26.0 affyio_1.16.0 gdata_2.7.1
>>> gplots_2.7.4 gtools_2.6.1 preprocessCore_1.10.0
>>> [7] tools_2.11.0
>>>
>>> Thanks
>>>
>>> Mike
>>>
>>> Michael Muratet, Ph.D.
>>> Senior Scientist
>>> HudsonAlpha Institute for Biotechnology
>>> mmuratet at hudsonalpha.org
>>> (256) 327-0473 (p)
>>> (256) 327-0966 (f)
>>>
>>> Room 4005
>>> 601 Genome Way
>>> Huntsville, Alabama 35806
>>>
>>>
>>>
>>>
>>>
>>
>>
>
> Michael Muratet, Ph.D.
> Senior Scientist
> HudsonAlpha Institute for Biotechnology
> mmuratet at hudsonalpha.org
> (256) 327-0473 (p)
> (256) 327-0966 (f)
>
> Room 4005
> 601 Genome Way
> Huntsville, Alabama 35806
>
>
>
>
>
On Apr 30, 2010, at 3:08 PM, Heidi Dvinge wrote:
>>
>> On Apr 30, 2010, at 2:42 PM, Heidi Dvinge wrote:
>>
>>> Hello Mike,
>>>
>>>> Greetings
>>>>
>>>> I have R 2.11, BioC 2.6 and HTqPCR 1.2 (see session info at the
>>>> end).
>>>>
>>>> I created a qPCRset object by using rbind() to concatenate four
>>>> pairs
>>>> of dissimilar cards for each experimental condition and then
>>>> cbind()
>>>> to concatenate the four objects into one:
>>>>
>>>> WT_time1.a |
>>>> WT_time1.b |---> WT_time1
>>>> MT_time1.a |
>>>> MT_time1.b |---> MT_time1
>>>> WT_time2.a | ---> s2010004660
>>>> WT_time2.b |---> WT_time2
>>>> MT_time2.a |
>>>> MT_time2.b |---> MT_time2
>>>>
>>>> I set g <- c("MammU6") which is a endogenous control gene.
>>>>
>>>> I then tried to plotCtOverview(s2010004660, genes=g,
>>>> groups=sampleNames(qPCRset), conf.int=TRUE) and got
>>>>
>>>>> plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
>>>> Error in if (del == 0 && to == 0) return(to) :
>>>> missing value where TRUE/FALSE needed
>>>>
>>>> Here's the object info:
>>>>
>>>>> s2010004660
>>>> An object of class "qPCRset"
>>>> Size: 768 features, 4 samples
>>>> Feature types: Endogenous Control, Target
>>>> Feature names: mmu-let-7b-4373168 mmu-let-7c-4373167
mmu-
>>>> let-7d-4395394 ...
>>>> Feature classes:
>>>> Feature categories: OK, Undetermined
>>>> Sample names: WT_4wks MT_4wks WT_17wks ...
>>>>
>>>> Could it be that the Feature classes slot is empty?
>>>>
>>> Feature classes shouldn't matter at all here. I can reproduce this
>>> using
>>> the data sets included in HTqPCR (qPCRraw and qPCRpros) though.
What
>>> does
>>> traceback() say? And does the same happen when you use
>>> conf.int=FALSE?
>>
>> Thanks Heidi
>>
>> Here's the traceback():
>>
>>> plotCtOverview(s2010004660, genes=g, conf.int=TRUE)
>> Error in if (del == 0 && to == 0) return(to) :
>> missing value where TRUE/FALSE needed
>>> traceback()
>> 3: seq.default(1.5, ncol(SD) * (nrow(SD) + 1), nrow(SD) + 1)
>> 2: seq(1.5, ncol(SD) * (nrow(SD) + 1), nrow(SD) + 1)
>> 1: plotCtOverview(s2010004660, genes = g, conf.int = TRUE)
>>
>> conf.int = FALSE it makes the plot without complaining. Actually,
it
>> makes the plot in the first case, too, it just doesn't draw error
>> bars.
>>
> Hm, so for some reason it can't calculate a standard deviation for
> your
> qPCRset. However it should work even if SD returns NA.
>
> Do your have replicate genes in your set? And what happens if you
> say e.g.
> groups=c("A", "A", "B", "B")?
Heidi
I see the same problem.
> plotCtOverview(s2010004660, genes=g,
groups=c("WT_4wks"),conf.int=TRUE,replicates=TRUE)
Error in if (del == 0 && to == 0) return(to) :
missing value where TRUE/FALSE needed
> plotCtOverview(s2010004660, genes=g,
groups=c("WT_4wks","MT_4wks"),conf.int=TRUE,replicates=TRUE)
Error in if (del == 0 && to == 0) return(to) :
missing value where TRUE/FALSE needed
It makes a plot but without error bars.
Yes, there are replicates:
Each card (stock ABI item) has 4 duplicates of the control.
> exprs(s2010004660)[grep("U6",featureNames(s2010004660)),]
WT_4wks MT_4wks WT_17wks MT_17wks
MammU6-4395470 17.06939 17.18261 17.31673 17.11643
MammU6-4395470 17.15968 17.25446 17.31998 17.10729
MammU6-4395470 17.06865 17.07786 17.22182 17.02346
MammU6-4395470 17.20133 17.17483 17.11134 16.96466
MammU6-4395470 17.99183 17.92814 18.57421 18.11891
MammU6-4395470 17.72530 17.83194 18.60460 17.95789
MammU6-4395470 17.98547 17.90774 18.75409 18.00277
MammU6-4395470 17.88600 17.96328 18.40904 18.12783
With stats:
> colMeans(exprs(s2010004660)[grep("U6",featureNames(s2010004660)),])
WT_4wks MT_4wks WT_17wks MT_17wks
17.51096 17.54011 17.91398 17.55241
> sd(exprs(s2010004660)[grep("U6",featureNames(s2010004660)),])
WT_4wks MT_4wks WT_17wks MT_17wks
0.4230635 0.3975762 0.7266933 0.5388762
Mike
>
> \Heidi
>
>> Thanks again for the package and the help
>>
>> Mike
>>>
>>> \Heidi
>>>
>>>> Here's session info:
>>>>
>>>>> sessionInfo()
>>>> R version 2.11.0 (2010-04-22)
>>>> i386-apple-darwin9.8.0
>>>>
>>>> locale:
>>>> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>>>
>>>> attached base packages:
>>>> [1] stats graphics grDevices utils datasets methods
>>>> base
>>>>
>>>> other attached packages:
>>>> [1] HTqPCR_1.2.0 limma_3.4.0 RColorBrewer_1.0-2
>>>> Biobase_2.8.0 MASS_7.3-5
>>>>
>>>> loaded via a namespace (and not attached):
>>>> [1] affy_1.26.0 affyio_1.16.0 gdata_2.7.1
>>>> gplots_2.7.4 gtools_2.6.1 preprocessCore_1.10.0
>>>> [7] tools_2.11.0
>>>>
>>>> Thanks
>>>>
>>>> Mike
>>>>
>>>> Michael Muratet, Ph.D.
>>>> Senior Scientist
>>>> HudsonAlpha Institute for Biotechnology
>>>> mmuratet at hudsonalpha.org
>>>> (256) 327-0473 (p)
>>>> (256) 327-0966 (f)
>>>>
>>>> Room 4005
>>>> 601 Genome Way
>>>> Huntsville, Alabama 35806
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>> Michael Muratet, Ph.D.
>> Senior Scientist
>> HudsonAlpha Institute for Biotechnology
>> mmuratet at hudsonalpha.org
>> (256) 327-0473 (p)
>> (256) 327-0966 (f)
>>
>> Room 4005
>> 601 Genome Way
>> Huntsville, Alabama 35806
>>
>>
>>
>>
>>
>
>
Michael Muratet, Ph.D.
Senior Scientist
HudsonAlpha Institute for Biotechnology
mmuratet at hudsonalpha.org
(256) 327-0473 (p)
(256) 327-0966 (f)
Room 4005
601 Genome Way
Huntsville, Alabama 35806
Dear Heidi,
Sorry it seems that I have not understood your table well. All the
samples
were analyzed using the same platform, but each sample is on a
different
plate. This way the commands are different right?
So going back to your table:
Sample Cell_type Platform RT_reaction
------------------------------
------
1 A type1 RT1
1 A type1 RT1
1 A type1 RT2
2 A type1 RT1
2 B type1 RT1
3 B type1 RT1
4 B type1 RT1
Thanks
Andreia
On Tue, Apr 27, 2010 at 11:11 AM, Heidi Dvinge <heidi@ebi.ac.uk>
wrote:
>
> On 26 Apr 2010, at 09:41, Andreia Fonseca wrote:
>
> Dear heidi,
> thank you for your reply. The datasets come from a 96 well qPCR
plate, but
> only 80 reactions have good quality. Each line corresponds to a
separate
> plate, with the same probes. I would like to compare A and B. Thanks
for
> your help.
> Kind regards,
> Andreia
>
> Hello Andreia,
>
> so, what you probably want is to include the "Platform" as a andom
effect
> using the duplicateCorrelation() function from limma with block
argument. If
> you type
>
> > limmaUsersGuide()
>
> you'll get the full limma users guide, which includes examples of
how to
> include different kinds of technical and biological variation. This
is
> basically what the limmaCtData() funciton is based on. So generally
you'd
> want to first do something like this (with "norm" being your
normalised
> qPCRset data):
>
> > targets <- data.frame(Cell=rep(c("A", "B"), times=3:4),
> Platform=rep(c("type1", "type2"), times=c(2,5)))
> > design <- model.matrix(~0+targets$Cell)
> > colnames(design) <- c("CellTypeA", "CellTypeB")
> > dupcor <- duplicateCorrelation(exprs(norm), design=design,
> block=targets$Platform)
>
> and then include the dupcor$correlation and block in the
> limmaCtData.There's a small bug in limmaCtData for including dupcor
though -
> I'll get that fixed.
>
> However, int his case that doesn't really matter, since I don't
think you
> can analyse you data this way, if you experiment design really is as
> outlined in "targets" here. All platforms of type1 are used for cell
type A,
> there are none present for B.
>
> You might have to just ignore that the samples are measured on 2
different
> platforms, and simply do a standard test between cell type A and B,
even
> though this is not optimal. How different are these platforms -
would you
> expect it to be significant for your analysis? Have you tried
testing for
> significance between Ct values measured on type1 and type2? Or
what's the
> dupcor$correlation between them? These are some of the things you
can look
> at before deciding how to continue.
>
> Best wishes
> \Heidi
>
> On Sat, Apr 24, 2010 at 12:45 PM, Heidi Dvinge <heidi@ebi.ac.uk>
wrote:
>
>> Hello Andreia,
>>
>> hm, slightly tricky. Are these data sets from some sort of
commercial
>> platform, like the ABI TLDA cards, or from normal qPCR reactions on
a 384
>> well plate or similar? Just to make sure I understand you
experiment
>> right, do you have something like this?
>>
>> Sample Cell_type Platform RT_reaction
>> ------------------------------------
>> 1 A type1 RT1
>> 1 A type1 RT1
>> 1 A type2 RT2
>> 2 A type2 RT1
>> 2 B type2 RT1
>> 3 B type2 RT1
>> 4 B type2 RT1
>>
>> Is each line a separate plate? Or would the "Platform" column
correspond
>> to 2 individual plates, where multiple samples can be loaded onto
each
>> plate?
>> What exactly is your primary interest here? Difference between cell
types
>> A and B? I think we need some specification here, for us to help
you
>> properly.
>>
>> If you have different kinds of plates, then you could potentially
include
>> pate as a batch effect when doing your analysis. This will require
you to
>> use limmaCtData() for your test. This is based on the function
lmFit from
>> the limma package, which has some nice examples of how to take this
sort
>> of information into account. Although it looks like you have too
many
>> variables here to consider all of them.
>>
>> By the way, you don't necessarily need one file per sample. As long
as you
>> have the sample number of genes per sample, e.g. 384, then with
HTqPCR
>> version 1.2.0 you can use the n.data parameter in readCtData() to
indicate
>> how many sets of data are in each file.
>>
>> HTH
>> \Heidi
>>
>> > Dear Heidi,
>> >
>> > I have received a data set from a qPCR miRNA set where I have
>> >
>> > sample1 - 2 replicates from the same RT reaction
>> > 1 replicate from an independen RT reaction
>> cell_type:A
>> > sample 2 - cell type : A
>> > sample2 cell_type:B
>> > sample3 cell_type:B
>> > sample 4 cell_type:B
>> >
>> > I saw that I should prepare one file per sample, but the
replicates of
>> > sample1 have been produced in different plates and one is even
from
>> > another
>> > RT reaction. How can I account for this using your package?
>> > Thanks in advacne for your reply.
>> > With kind regards,
>> > Andreia
>> >
>> >
>> > --
>> > --------------------------------------------
>> > Andreia J. Amaral
>> > Unidade de Imunologia Clínica
>> > Instituto de Medicina Molecular
>> > Universidade de Lisboa
>> > email: andreiaamaral@fm.ul.pt
>> > andreia.fonseca@gmail.com
>> >
>>
>>
>>
>
>
> --
> --------------------------------------------
> Andreia J. Amaral
> Unidade de Imunologia Clínica
> Instituto de Medicina Molecular
> Universidade de Lisboa
> email: andreiaamaral@fm.ul.pt
> andreia.fonseca@gmail.com
>
>
>
--
--------------------------------------------
Andreia J. Amaral
Unidade de Imunologia Clínica
Instituto de Medicina Molecular
Universidade de Lisboa
email: andreiaamaral@fm.ul.pt
andreia.fonseca@gmail.com
[[alternative HTML version deleted]]
Hi Andreia
> Dear Heidi,
>
> Sorry it seems that I have not understood your table well. All the
samples
> were analyzed using the same platform, but each sample is on a
different
> plate. This way the commands are different right?
> So going back to your table:
>
> Sample Cell_type Platform RT_reaction
> ------------------------------
> ------
> 1 A type1 RT1
> 1 A type1 RT1
> 1 A type1 RT2
> 2 A type1 RT1
> 2 B type1 RT1
> 3 B type1 RT1
> 4 B type1 RT1
>
So, you actually just have cell type A and B you want to compare? That
makes it all easier. In that case you can use either of the three
functions limmaCtData, ttestCtData and mannwhitneyCtData depending on
what
you prefer. Both the vignette and the help pages has examples about
how to
compare two groups. ttestCtData and mannwhitneyCtData are probably
easier
if you just have two conditions, with mannwhitney perhaps being most
suitable if you only have a small number of genes on each qPCR card.
There's no way to account for the single different RT reaction though.
You
can check if this is an outlier in any of the QC plots, like
plotCtDensity
or plotCtBoxes, or perhaps try running the A versus B comparison both
with/without this card, and see if it skews the result in any
unexpected
ways. Hopefully different RT reactions should be quite similar though.
HTH
\Heidi
> Thanks
> Andreia
>
>
> On Tue, Apr 27, 2010 at 11:11 AM, Heidi Dvinge <heidi at="" ebi.ac.uk="">
wrote:
>
>>
>> On 26 Apr 2010, at 09:41, Andreia Fonseca wrote:
>>
>> Dear heidi,
>> thank you for your reply. The datasets come from a 96 well qPCR
plate,
>> but
>> only 80 reactions have good quality. Each line corresponds to a
separate
>> plate, with the same probes. I would like to compare A and B.
Thanks for
>> your help.
>> Kind regards,
>> Andreia
>>
>> Hello Andreia,
>>
>> so, what you probably want is to include the "Platform" as a andom
>> effect
>> using the duplicateCorrelation() function from limma with block
>> argument. If
>> you type
>>
>> > limmaUsersGuide()
>>
>> you'll get the full limma users guide, which includes examples of
how to
>> include different kinds of technical and biological variation. This
is
>> basically what the limmaCtData() funciton is based on. So generally
>> you'd
>> want to first do something like this (with "norm" being your
normalised
>> qPCRset data):
>>
>> > targets <- data.frame(Cell=rep(c("A", "B"), times=3:4),
>> Platform=rep(c("type1", "type2"), times=c(2,5)))
>> > design <- model.matrix(~0+targets$Cell)
>> > colnames(design) <- c("CellTypeA", "CellTypeB")
>> > dupcor <- duplicateCorrelation(exprs(norm), design=design,
>> block=targets$Platform)
>>
>> and then include the dupcor$correlation and block in the
>> limmaCtData.There's a small bug in limmaCtData for including dupcor
>> though -
>> I'll get that fixed.
>>
>> However, int his case that doesn't really matter, since I don't
think
>> you
>> can analyse you data this way, if you experiment design really is
as
>> outlined in "targets" here. All platforms of type1 are used for
cell
>> type A,
>> there are none present for B.
>>
>> You might have to just ignore that the samples are measured on 2
>> different
>> platforms, and simply do a standard test between cell type A and B,
even
>> though this is not optimal. How different are these platforms -
would
>> you
>> expect it to be significant for your analysis? Have you tried
testing
>> for
>> significance between Ct values measured on type1 and type2? Or
what's
>> the
>> dupcor$correlation between them? These are some of the things you
can
>> look
>> at before deciding how to continue.
>>
>> Best wishes
>> \Heidi
>>
>> On Sat, Apr 24, 2010 at 12:45 PM, Heidi Dvinge <heidi at="" ebi.ac.uk="">
wrote:
>>
>>> Hello Andreia,
>>>
>>> hm, slightly tricky. Are these data sets from some sort of
commercial
>>> platform, like the ABI TLDA cards, or from normal qPCR reactions
on a
>>> 384
>>> well plate or similar? Just to make sure I understand you
experiment
>>> right, do you have something like this?
>>>
>>> Sample Cell_type Platform RT_reaction
>>> ------------------------------------
>>> 1 A type1 RT1
>>> 1 A type1 RT1
>>> 1 A type2 RT2
>>> 2 A type2 RT1
>>> 2 B type2 RT1
>>> 3 B type2 RT1
>>> 4 B type2 RT1
>>>
>>> Is each line a separate plate? Or would the "Platform" column
>>> correspond
>>> to 2 individual plates, where multiple samples can be loaded onto
each
>>> plate?
>>> What exactly is your primary interest here? Difference between
cell
>>> types
>>> A and B? I think we need some specification here, for us to help
you
>>> properly.
>>>
>>> If you have different kinds of plates, then you could potentially
>>> include
>>> pate as a batch effect when doing your analysis. This will require
you
>>> to
>>> use limmaCtData() for your test. This is based on the function
lmFit
>>> from
>>> the limma package, which has some nice examples of how to take
this
>>> sort
>>> of information into account. Although it looks like you have too
many
>>> variables here to consider all of them.
>>>
>>> By the way, you don't necessarily need one file per sample. As
long as
>>> you
>>> have the sample number of genes per sample, e.g. 384, then with
HTqPCR
>>> version 1.2.0 you can use the n.data parameter in readCtData() to
>>> indicate
>>> how many sets of data are in each file.
>>>
>>> HTH
>>> \Heidi
>>>
>>> > Dear Heidi,
>>> >
>>> > I have received a data set from a qPCR miRNA set where I have
>>> >
>>> > sample1 - 2 replicates from the same RT reaction
>>> > 1 replicate from an independen RT reaction
>>> cell_type:A
>>> > sample 2 - cell type : A
>>> > sample2 cell_type:B
>>> > sample3 cell_type:B
>>> > sample 4 cell_type:B
>>> >
>>> > I saw that I should prepare one file per sample, but the
replicates
>>> of
>>> > sample1 have been produced in different plates and one is even
from
>>> > another
>>> > RT reaction. How can I account for this using your package?
>>> > Thanks in advacne for your reply.
>>> > With kind regards,
>>> > Andreia
>>> >
>>> >
>>> > --
>>> > --------------------------------------------
>>> > Andreia J. Amaral
>>> > Unidade de Imunologia Cl?nica
>>> > Instituto de Medicina Molecular
>>> > Universidade de Lisboa
>>> > email: andreiaamaral at fm.ul.pt
>>> > andreia.fonseca at gmail.com
>>> >
>>>
>>>
>>>
>>
>>
>> --
>> --------------------------------------------
>> Andreia J. Amaral
>> Unidade de Imunologia Cl?nica
>> Instituto de Medicina Molecular
>> Universidade de Lisboa
>> email: andreiaamaral at fm.ul.pt
>> andreia.fonseca at gmail.com
>>
>>
>>
>
>
> --
> --------------------------------------------
> Andreia J. Amaral
> Unidade de Imunologia Cl?nica
> Instituto de Medicina Molecular
> Universidade de Lisboa
> email: andreiaamaral at fm.ul.pt
> andreia.fonseca at gmail.com
>