Hi All,

Could you please help me how to explain different methods for differential expression analysis such as edgeR,  Limma, DESeq etc to  biologist or non-bioinformatician.

Thanks in advance!
*DESeq* and *EdgeR* are very similar and both assume that no genes are differentially expressed. *DESeq* uses a "*geometric*" normalisation strategy, whereas *EdgeR* is a weighted mean of log ratios-based method. Both normalise data initially via the calculation of size / normalisation factors.

*Limma* / *Voom* is different in that it normalises via the very successful (for microarrays) quantile nomalisation, where an attempt is made to match gene count distributions across samples in your dataset. It can somewhat loosely be viewed as scaling each sample's values to be between the min and max values (across all samples). Thus, the final distributions will be similar.

**Note added August 19, 2020:** for *limma*, if we are referring to microarrays and not RNA-seq, then normalisation will be performed by *affy* or *oligo* for Affymetrix arrays, while *limma* has functionality to normalise Illumina and Agilent arrays.


Here is further information (important parts in bold):

#DESeq2

> DESeq: This normalization method [14] is included in the DESeq
> Bioconductor package (version 1.6.0) [14] and is **based on the
> hypothesis that most genes are not DE**. **A DESeq scaling factor for
> a given lane is computed as the median of the ratio, for each gene, of
> its read count over its geometric mean across all lanes.** The
> underlying idea is that non-DE genes should have similar read counts
> across samples, leading to a ratio of 1. **Assuming most genes are not
> DE, the median of this ratio for the lane provides an estimate of the
> correction factor that should be applied to all read counts of this
> lane to fulfill the hypothesis**. By calling the estimateSizeFactors()
> and sizeFactors() functions in the DESeq Bioconductor package, this
> factor is computed for each lane, and raw read counts are divided by
> the factor associated with their sequencing lane.

*[source: https://www.ncbi.nlm.nih.gov/pubmed/22988256]*


#EdgeR

> Trimmed Mean of M-values (TMM): This normalization method [17] is
> implemented in the edgeR Bioconductor package (version 2.4.0). It is
> **also based on the hypothesis that most genes are not DE**. The TMM factor is computed for each lane, with one lane being considered as a
> reference sample and the others as test samples. For each test sample,
> **TMM is computed as the weighted mean of log ratios between this test and the reference, after exclusion of the most expressed genes and the
> genes with the largest log ratios.** According to the hypothesis of
> low DE, this TMM should be close to 1. If it is not, its value
> provides an estimate of the correction factor that must be applied to
> the library sizes (and not the raw counts) in order to fulfill the
> hypothesis. The calcNormFactors() function in the edgeR Bioconductor
> package provides these scaling factors. To obtain normalized read
> counts, these normalization factors are re-scaled by the mean of the
> normalized library sizes. Normalized read counts are obtained by
> dividing raw read counts by these re-scaled normalization factors.

*[source: https://www.ncbi.nlm.nih.gov/pubmed/22988256]*

#Limma / Voom

> Quantile (Q): First proposed in the context of microarray data, this
> **normalization method consists in matching distributions of gene counts**
> across lanes [22, 23]. It is implemented in the Bioconductor package
> limma [31] by calling the normalizeQuantiles() function.


*[source: https://www.ncbi.nlm.nih.gov/pubmed/22988256]*

