Issue with module-trait analysis in BioNero
1
0
Entering edit mode
Biologist • 0
@a00bf838
Last seen 2.1 years ago
Netherlands

Hi,

I have tried to do module-trait analysis using module_trait_cor function. However, the correlation values I get on heatmap show opposite results to what I see with differential gene expression analysis. For example, if a gene is upregulated from DEG analysis based on the factor that I am analysing based on, with BioNERO that gene is in a module which is negatively correlated with the trait and it is for all genes. Is it normal? How to fix the issue? My metadata looks okay.

Thanks.

BioNERO • 1.2k views
ADD COMMENT
0
Entering edit mode
@fabricio_almeidasilva-14890
Last seen 8 months ago
Ghent, Belgium

Hi,

First, differential gene expression and module-trait correlations are different things, because DGE performs pairwise comparisons between two levels of a discrete variable, while module-trait correlations don't.

Nevertheless, if a gene is up-regulated, it should not be in a module that is negatively correlated with the trait. Without looking at the data, it is very hard to think of what might have gone wrong, but I would suspect:

  • Your differential expression analysis is wrong. A common mistake that people make (with DESeq2, for example) is to not relevel factor levels, so what they think is "up-regulated" is actually down-regulated;
  • There is a problem with your metadata. If you are using a SummarizedExperiment object (say "se") and you are passing a metadata data frame, check if your metadata data frame matches colData(se), because module_trait_cor() ignores any argument to the metadata param if the expression data is a SummarizedExperiment object.
ADD COMMENT
0
Entering edit mode

Hi Fabricio, thanks for your quick help.

I have 2 factors, each with two levels and have already releveled them in DESeq2 like, so there is no issue with my DGE:

dds$Factor1<- relevel(dds$Factor1,"control")
dds$Factor2<- relevel(dds$Factor2,"male")

In my study I wanted to see the effect of each factor1 and factor2 and their interactions by DGE. For module_trait analysis, I have grouped these two factors to get four different traits and know the network of genes that are ruling in each condition.

1- male_control 2-female_control 3-male_treatment 4-female_treatment

  • I did not do any releving before module_trait analysis. Was I correct? That's because my metadata is composed of one column of run name and the other I have called "Condition". For DGE, there's again the run name column, plus one for "gender" and the other for "test".

Eventhough I have grouped the traits together, its coldata looks okay and the details matches the one I have prepared for DGE. I appreciate any further suggestions.

ADD REPLY
0
Entering edit mode

Hi,

I would try to obtain module-trait correlations using each variable separately, besides the combined variable (e.g., "male_control", etc). You don't need to relevel data for module-trait correlations, by the way.

But again, without looking at the whole data and what you did, it is impossible to suggest much further than that. Besides the fact that DGE and module-trait correlations are different things, the data processing for DGE in DESeq2 and coexpression network inference in BioNERO are quite different. For example, by default, the function BioNERO::exp_preprocess() removes principal components that add noise to the data (to remove spurious correlations) and quantile-normalizes the data. The different processing steps could also be a reason for the different results.

Always keep in mind that DGE compares 2 variables (e.g., treatment vs control), while module-trait correlations compare a variable against everything else.

ADD REPLY

Login before adding your answer.

Traffic: 528 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