# Normalization for microbiome 16s sequence analysis

**URL:** https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398
**Category:** General Discussion
**Tags:** normalization, 16s
**Created:** [June 24, 2019, 8:43pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398 "2019-06-24T20:43:00Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![abalter](https://forum.qiime2.org/user_avatar/forum.qiime2.org/abalter/32/9286_2.png) [@abalter](https://forum.qiime2.org/u/abalter)
#### Post date: [June 24, 2019, 8:43pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/1 "2019-06-24T20:43:00Z")

</div>

The way I understand things, normalization (such as in DeSeq2, EdgeR, etc.) serves two purposes: 1) Model the "real" abundance in the original samples from the read counts, 2) Make the abundance distributions conform to the needs of statistical analysis by removing heteroskedasticity, dependence, dispersion, etc.

It has been stated [many times here](https://www.biostars.org/p/334524/#334526) that it is very difficult to reproduce the fold-change you get from DeSeq2 by extracting the normalized counts, but you can come close. Taken at face semantic value, "fold change" sounds like it should refer to the ratio of the "real" abundance; the fold change of "actual" expression or "actual" community representation.

So if the normalized (or normalized + VST, or normalized + MLE) abundance better represents the "real" abundance, then shouldn't I use the normalized counts for ALL of my analysis steps:

- Alpha diversity
- Beta diversity
- F2B ratio
- IgA sorting analysis
- Other regression analysis
- etc.

**NOTE:** Cross post from [here](https://www.biostars.org/p/385922/) and [here]Ihttps://bioinformatics.stackexchange.com/questions/8846/normalization-for-microbiome-16s-sequence-analysis) due to no action.

---

<div class="post-metadata">

### Author: ![Nicholas\_Bokulich](https://forum.qiime2.org/user_avatar/forum.qiime2.org/nicholas_bokulich/32/19937_2.png) [@Nicholas\_Bokulich](https://forum.qiime2.org/u/Nicholas_Bokulich)
#### Post date: [June 27, 2019, 10:50am UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/2 "2019-06-27T10:50:14Z")

</div>



---

<div class="post-metadata">

### Author: ![mortonjt](https://forum.qiime2.org/user_avatar/forum.qiime2.org/mortonjt/32/3488_2.png) [@mortonjt](https://forum.qiime2.org/u/mortonjt)
#### Post date: [June 27, 2019, 1:35pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/3 "2019-06-27T13:35:32Z")

</div>

Hi @abalter, I think you are hitting a key point. It is difficult to reproduce fold change mainly because it isn't possible.

It's not possible to infer absolute differences from relative data.

See our paper that just came out here: [Establishing microbial composition measurement standards with reference frames | Nature Communications](https://www.nature.com/articles/s41467-019-10656-5)

These concepts apply to DESeq2, since DESeq2 assumes that the median for each sample is constant. This may not be a good choice of reference, and alternatives are discussed.

---

<div class="post-metadata">

### Author: ![thermokarst](https://forum.qiime2.org/letter_avatar_proxy/v4/letter/t/8e7dd6/32.png) [@thermokarst](https://forum.qiime2.org/u/thermokarst)
#### Post date: [June 27, 2019, 2:08pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/4 "2019-06-27T14:08:29Z")

</div>



---

<div class="post-metadata">

### Author: ![abalter](https://forum.qiime2.org/user_avatar/forum.qiime2.org/abalter/32/9286_2.png) [@abalter](https://forum.qiime2.org/u/abalter)
#### Post date: [June 27, 2019, 4:35pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/5 "2019-06-27T16:35:51Z")

</div>

@mortonjt Thank you so much for replying. As I said, I've gotten no response to this question. And congratulations for trying to tackle the issue of compositional data head-on. I look forward to digesting the article and trying out your ratio methods.

In the short term, would you say that doing the standard routine (alpha, beta, igaseq, regression, etc.) on some sort of normalized data rather than raw data would be an improvement?

---

<div class="post-metadata">

### Author: ![Nicholas\_Bokulich](https://forum.qiime2.org/user_avatar/forum.qiime2.org/nicholas_bokulich/32/19937_2.png) [@Nicholas\_Bokulich](https://forum.qiime2.org/u/Nicholas_Bokulich)
#### Post date: [June 27, 2019, 4:41pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/6 "2019-06-27T16:41:11Z")

</div>

> [@abalter](#):
>
> would you say that doing the standard routine (alpha, beta, igaseq, regression, etc.) on some sort of normalized data rather than raw data would be an improvement?

Definitely some sort of normalization is required for most analyses, but the same sort of normalization may or may not be appropriate for all methods.

In QIIME 2 we handle this by having each method (mostly) perform the normalization that is required. So a couple examples:

1. alpha/beta diversity methods have their own normalization (rarefaction in the `core-metrics` pipelines; see q2-breakaway for a more sophisticated method for attempting to estimate the true alpha diversity if rarefaction is upsetting)
2. differential abundance methods have their own normalization procedures on-board (e.g., see ANCOM or @mortonjt's methods)

It would be awesome to see other normalization methods implemented in QIIME 2 and we have some open issues — if you are interested in getting involved please let us know!

---

<div class="post-metadata">

### Author: ![abalter](https://forum.qiime2.org/user_avatar/forum.qiime2.org/abalter/32/9286_2.png) [@abalter](https://forum.qiime2.org/u/abalter)
#### Post date: [June 27, 2019, 6:04pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/7 "2019-06-27T18:04:46Z")

</div>

@Nicholas_Bokulich thanks! Regarding the rarefaction, does the [waste not want not](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003531) idea not apply to that metric?

I tried googling for QIIME2 normalization and found the `normalize_table.py` script and `differential_abundance.py` script. Both have options to use DeSeq normalization. There are also some 3rd party scripts implementing percentile normalization that have been developed:

[https://github.com/cduvallet/q2-perc-norm](https://github.com/cduvallet/q2-perc-norm)

[https://github.com/seangibbons/percentile\_normalization](https://github.com/seangibbons/percentile_normalization)

I couldn't find one that does ANCOM.

Is ANCOM normalization implemented in QIIME2?

I'm not fully versed, but it seems to me that the more biological/clinical microbiome literature is well behind the improved methods being developed.

I did a small amount of Google sleuthing just now and found that there are quite a few papers developing percentile methods or other ways to better normalize compositional data.

This is a hot area I hope to explore!

---

<div class="post-metadata">

### Author: ![Nicholas\_Bokulich](https://forum.qiime2.org/user_avatar/forum.qiime2.org/nicholas_bokulich/32/19937_2.png) [@Nicholas\_Bokulich](https://forum.qiime2.org/u/Nicholas_Bokulich)
#### Post date: [June 27, 2019, 6:12pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/8 "2019-06-27T18:12:40Z")

</div>

> [@abalter](#):
>
> Regarding the rarefaction, does the [waste not want not](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003531) idea not apply to that metric?

Yes and no — there has been a lot of discussion on this forum about rarefaction and the arguments for/against, see this post for a nice collection of those topics:

> [@Use of rarefacted Table](https://forum.qiime2.org/t/use-of-rarefacted-table/9708/2):
>
> Hi @m_max, Welcome! There's been a fair bit of discussion around rarefaction here (or maybe Im just involved in a lot of them). It's maybe good to go look into those threads since they'll give you a wide variety of view points. Here are a few to start that I found pretty quickly. [https://forum.qiime2.org/t/how-to-normalize-bacterial-abundance-for-unequal-sample-size/7358](https://forum.qiime2.org/t/how-to-normalize-bacterial-abundance-for-unequal-sample-size/7358)[https://forum.qiime2.org/t/rarefraction-not-advantageous-to-detect-differences-in-beta-diversity/1612/5](https://forum.qiime2.org/t/rarefraction-not-advantageous-to-detect-differences-in-beta-diversity/1612/5)[https://forum.qii…](https://forum.qiime2.org/t/making-sense-of-diversity-estimates/8916)

> [@abalter](#):
>
> I tried googling for QIIME2 normalization and found the `normalize_table.py` script and `differential_abundance.py` script. Both have options to use DeSeq normalization.

Those are implemented in QIIME 1, not QIIME 2

> [@abalter](#):
>
> There are also some 3rd party scripts implementing percentile normalization that have been developed:

Yes! q2-perc-norm is a QIIME 2 plugin! You can see the [QIIME 2 plugin library](https://library.qiime2.org/) to see these and other plugins (some of which use alternative normalization techniques, including @mortonjt's methods)

> [@abalter](#):
>
> I’m not fully versed, but it seems to me that the more biological/clinical microbiome literature is well behind the improved methods being developed.

Microbiome data normalization and differential abundance methods are very active areas of research, and of debate.

> [@abalter](#):
>
> This is a hot area I hope to explore!

It is hot! Best of luck and any new methods you use/implement please consider adding to QIIME 2!

---

<div class="post-metadata">

### Author: ![abalter](https://forum.qiime2.org/user_avatar/forum.qiime2.org/abalter/32/9286_2.png) [@abalter](https://forum.qiime2.org/u/abalter)
#### Post date: [June 27, 2019, 6:39pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/9 "2019-06-27T18:39:51Z")

</div>

Thanks again for the many answers! Just one still: is there an ANCOM plugin for QIIME2?

---

<div class="post-metadata">

### Author: ![Nicholas\_Bokulich](https://forum.qiime2.org/user_avatar/forum.qiime2.org/nicholas_bokulich/32/19937_2.png) [@Nicholas\_Bokulich](https://forum.qiime2.org/u/Nicholas_Bokulich)
#### Post date: [June 27, 2019, 6:55pm UTC](https://forum.qiime2.org/t/normalization-for-microbiome-16s-sequence-analysis/10398/10 "2019-06-27T18:55:42Z")

</div>

> [@abalter](#):
>
> is there an ANCOM plugin for QIIME2?

Oh sorry missed that in the cross-fire. Yes:

[https://docs.qiime2.org/2019.4/plugins/available/composition/ancom/](https://docs.qiime2.org/2019.4/plugins/available/composition/ancom/)

See the tutorials on the QIIME 2 website for some examples of using ANCOM in QIIME 2 workflows.

Good luck!
