Adjusting for known covariates before coexpression analysis with WGCNA
1
1
Entering edit mode
@mikhaelmanurung-17423
Last seen 9 weeks ago
Netherlands

Dear all,

I would like to adjust my whole-blood RNA-Seq count data matrix for cell type composition (obtained from hematological analysis & flow cytometry) before doing a coexpression network analysis with WGCNA.

So far, I did the following:

# I use DESeq2's vst to remove mean-variance relationship in the data
dds <- DESeq2::DESeqDataSetFromMatrix(counts, colData, design = ~ group)
dds <- DESeq2::vst(dds, blind = TRUE)
vst <- assay(dds)

x = vst,
covariates = c(cellA, cellB, cellC) # numeric vectors containing scaled cell proportion
)


However, according to this link from other forum I can apparently insert the covariates into the design matrix when making the DESeqDataSet and then set blind = FALSE during the variance-stabilizing transformation.

There are also those who recommend using ComBat from sva by inserting my covariates to the mod parameter.

Which one is the best way for my goal?

Thank you for your kind response.

Best regards, Mikhael

wgcna coexpression sva • 1.1k views
3
Entering edit mode
@peter-langfelder-4469
Last seen 6 months ago
United States

It is my understanding that ComBat cannot handle continuous nuisance variables (i.e., variables you want to remove). It can handle continuous covariates which in this case means variables whose effect you want to keep; these are supplied in the 'mod' argument for ComBat.

For removing the effect of continuous covariates, I personally use WGCNA's empiricalBayesLM but removeBatchEffect should work as well. Just check your code, I would expect that you will need

covariates = cbind(cellA, cellB, cellC)


not

covariates = c(cellA, cellB, cellC).

0
Entering edit mode

Dear Peter,

Thank you for your prompt response. For empiricalBayesLM, would you advise feeding the group variables into the retainedCovariates argument?

Best, Mikhael

1
Entering edit mode

Retained covariates are those whose effect you want to preserve. My understanding is that you want to remove the cell type abundance/composition information, not retain it; removed variables should go into the removedCovariates argument.