How to perform DE anaysis on a data set in which biological replicates have high varaince?
2
0
Entering edit mode
10 weeks ago
Gisele • 0

Hello guys! I would really appreciate if someone could help me with DE analysis. This is my challenge:

I have four conditions and I have five biological replicates for each condition. Performing a PCA (DESeq2) we can observe that most of the replicates don't cluster together. My first question is, can I simply analyze them using DESeq2 or edgeR or this would be wrong because of this replicate scenario? Second, are there any ways to filter out the genes in which the replicates are not good and keep only the ones that are consistent among the replicates of the same condition to run the DE analysis?

Thank for the help!

PCA

high replicates biological variance DE • 1.1k views
ADD COMMENT
0
Entering edit mode
10 weeks ago

If the 5 replicates are repeated in each condition (e.g. 5 cell lines), you can do a paired t-test, even if the PCA doesn't look nice. The paired t-test will correct for the individual bias of each replicate. Alternatively, if the 5 replicates are repeated in the conditions, you can perform batch correction on the replicates. As last resort, you can you SVA (surrogate variable analysis) to correct any batch effects.

ADD COMMENT
0
Entering edit mode

Since when is a paired t-test best practice for RNASeq?

ADD REPLY
0
Entering edit mode

You can do a paired t-test on Voom-limma transformed data. For edgeR and DEseq2 you will need to put the sample pairing in the linear model as covariate.

ADD REPLY
0
Entering edit mode

You "can", but is it best practice? "5 biological replicates" shouldn't mean "5 different cell lines". It should mean "5 samples that are the same except for incidental variance". You can't do a paired t-test on that.

ADD REPLY
0
Entering edit mode

That's why I started my sentence with "if". Voom-limma is well accepted and shown to be as good as deseq2 or edger, there are numerous papers about that. Regarding the cell lines, I clearly wrote e.g. (=for example). Swbarnes2, if you know a better method, please suggest it.

ADD REPLY
0
Entering edit mode
10 weeks ago

I would hazard that the ground truth of your experiment is that your conditions do not affect RNA expression much. You can do DESeq2, but I predict it will return very few genes as DE.

You certainly cannot just throw away genes that don't agree with what you think the experiment should look like.

You might want to investigate and see if there is any experimental reason driving PC1.

ADD COMMENT
0
Entering edit mode

Thanks for the ideas! However, I got lots of DEs in some comparisons I got more than 20k! But what bothers me the most is the fact that lots of DEs have bad concordance across replicates. I will put an example so you can have a better idea.

enter image description here

ADD REPLY
0
Entering edit mode

You have to decide for yourself if all those genes expressed in only a couple of samples are real or not. You can filter away genes which, say, have fewer than 5 samples with > 10 counts, or whatever, but if that's all really biologically real, then I guess you should keep it. I assume you checked and all of these samples have a healthy number of total gene counts?

ADD REPLY
0
Entering edit mode

DESeq2 manual doesn't recommend performing such filter because it does the independent filtering. But I could try it to see what happens. Thanks for the tips!

ADD REPLY
1
Entering edit mode

You will find many posts at http://support.bioconductor.org where the developer recommends some minimum prefiltering, e.g. at least 10 counts in at least 3 samples. True, that is (I think) not explicitely in the manual, but I think it makes good sense as these genes you show are probably not very reliable, at least not at that sample size. Three are zero and two are high, what do you believe => not easy to say with 5 samples in that group, one would need many more to see whether zero or high is the reproducible truth, hence the conservative approach would be the filtering. For example one of the groups must have at least 10 counts in either all of its samples or in the majority, there is no strict rule for that. edgeR::filterByExpr does this type of filtering with well-tested defaults and is group-aware, you could simple filter out from dds those genes flagged by the edgeR filter.+

Something like:

#/ assuming you had your factor of interest as "group":

raw_counts <- dds(counts)

keep <- filterByExpr(raw_counts, group=dds$group)

dds[keep,]
ADD REPLY
0
Entering edit mode

Thank you! This is my next step to try to understand what is the best choice.

ADD REPLY

Login before adding your answer.

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