Deseq2 Biological replicates and nested conditions
1
0
Entering edit mode
@benoitjkunath-24405
Last seen 4.4 years ago

Hello,

I'm currently trying to use Deseq2 but I'm getting confused with some of the conditions. I have multiple individuals that are either Sick or Healthy (that is the main condition I want to use for comparison)

However, those individuals can be also classified into families. For example, Individual 1, 2, 3 and 4 are part of family 1 while individual 5,6,7 and are part of family 2.

Additionally, I sometimes have biological replicates for my individuals. The experiment was based on 3 visits but of course due to experimental issues, not all visit are available for all sample. In summary, my metadata table looks like this:

sample  condition   family  individual
M05-01-V1   Sick    M05 M05-01
M05-02-V1   Healthy M05 M05-02
M05-02-V2   Healthy M05 M05-02
M05-02-V3   Healthy M05 M05-02
M05-03-V1   Healthy M05 M05-03
M05-03-V2   Healthy M05 M05-03
M05-03-V3   Healthy M05 M05-03
M05-04-V1   Sick    M05 M05-04
M05-04-V2   Sick    M05 M05-04
M05-04-V3   Sick    M05 M05-04
M06-01-V1   Healthy M06 M06-01
M06-01-V2   Healthy M06 M06-01
M06-02-V1   Sick    M06 M06-02
M06-02-V3   Sick    M06 M06-02
M06-03-V1   Sick    M06 M06-03
M06-04-V2   Healthy M06 M06-04
M06-04-V3   Healthy M06 M06-04
M08-01-V1   Sick    M08 M08-01
M08-01-V2   Sick    M08 M08-01
M08-01-V3   Sick    M08 M08-01
M08-02-V1   Healthy M08 M08-02
M08-02-V2   Healthy M08 M08-02
M08-02-V3   Healthy M08 M08-02
M08-03-V1   Healthy M08 M08-03

My question would be, how could I compare what changes in term of expression between my conditions using both family belonging and biological replicate information as confunder? I did it already for the family level using that piece of code:

  ddsMF <- dds
  design(ddsMF) <- formula(~ family + condition)
  print('Running DESeq on multi-factor data.')
  ddsMF <- DESeq(ddsMF)
  resultsNames(ddsMF)
  resMF <- results(ddsMF, contrast=c("condition", "Sick", "Healthy"))
  summary(resMF)

But I wondered how I could also include the biological replicate information. I thought to use ~ family + individual + condition but then I have an error saying:full model matrix is less than full rank since individual information is nested into family.

I've also been linked to solution like this one: http://bioconductor.org/packages/release/bioc/vignettes/DESeq2/inst/doc/DESeq2.html#group-specific-condition-effects-individuals-nested-within-groups But it confuses me a lot since in my case, one individual doesn't have 2 conditions. The sample is either sick or healthy and sometime have replicate and is always part of a family.

What would be the solution then? I'm getting very confused :/ Thanks a lot for your help,

Ben

deseq2 • 1.7k views
ADD COMMENT
0
Entering edit mode
@mikelove
Last seen 1 day ago
United States

If you want to control for correlations within condition, but compare across that condition, DESeq2 doesn't have a framework for that. You really need mixed effects modeling. So the best choice here within Bioconductor is to use limma-voom with duplicateCorrelation, which allows for modeling the correlations of samples, e.g. from within familiar here.

ADD COMMENT
0
Entering edit mode

Thanks a lot for your answer.

But then, if I understand properly, I cannot compare neither across my conditions (sick/healthy) and controlling for the belonging to particular family like I was doing until now with:

  design(ddsMF) <- formula(~ family + condition)
  print('Running DESeq on multi-factor data.')
  ddsMF <- DESeq(ddsMF)
  resultsNames(ddsMF)
  resMF <- results(ddsMF, contrast=c("condition", "Sick", "Healthy"))

Thanks a lot, Ben

ADD REPLY
0
Entering edit mode

You can control for family just by including a blocking term as you have, but not for the replicate measurements per individual. Once you add individual it will be confounded with family, and you won't be able to estimate fixed effects due to the confounding.

ADD REPLY

Login before adding your answer.

Traffic: 949 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6