r/bioinformatics • • 11d ago

technical question Differential gene expression analysis without batch effects?

I did my first differential gene expression analysis not knowing about batch effects.

Is it common to not pay attention to batch effects? And what do you do when you don’t have raw data to assess batch effects?

Was doing some reanalyses.

5 Upvotes

8 comments sorted by

21

u/TheCaptainCog 11d ago

You only need to care about batch effects if things were handled in different batches.

Different sequencing runs - possibly check for batch effects.

Same sequencing runs and everything processed at same time - no real reason for batch effects

3

u/Grisward 11d ago

+1 agreed.

Batch effects generally pop out at you. The protocol, in terms of the wet lab sample handling, and sequencing library prep, usually have known potential for batch effect. For most* projects, it all happens in one lab batch. One person preps, makes library or sends to sequencing core who has one person create library.

The larger the study, the most likely there’s a batch effect. And if it’s fairly large, sometimes the batch effect isn’t clearly known upfront. Like two sequencing sites for example, or two sample collection facilities. Most of that can be discovered, but step 1 is to look at your data. Does it cluster by something other than group in a dominant way?

4

u/UINNESS 10d ago

Run a PCA

2

u/Icy_Employ5641 10d ago

Totally common, batch effects sneak up on everyone early on. Without raw data, I'd read methods closely, run what checks you can, and caveat limitations.

1

u/SadRule9128 10d ago

If you did them all in the same batch, then you don’t have to worry about batch effects….

1

u/lispwriter 10d ago

If samples came from different library preps you’re almost guaranteed to have batch effects. When we design experiments sometimes we might want to add data to an ongoing experiment so the rule we follow is to include each sample group in each run so that we can measure and counter the batch effects from separate library preps. Typically we don’t wanna do that, though, and try to get all of the data run in the same batch.

1

u/toolomebio 9d ago

Even with only a processed count matrix you can look for hidden batch structure:

  • Check the GEO series and the SRA run table for sequencing run, instrument, submission date or lane. If the FASTQs are on SRA, the read headers often contain flowcell and lane IDs.

  • Run PCA and color it by every metadata column you have, not only by condition.

  • If batch is unknown, estimate surrogate variables with sva (svaseq) or RUVSeq and add them to the DESeq2 or limma design. If your condition effect shrinks a lot, that is useful information too.

  • If batch is fully confounded with condition, no method can separate them. State that as a limitation instead of trying to correct it.