q2-srs: QIIME2 plugin for library size normalization by scaling with ranked subsampling (SRS)

Hi everyone,

I am happy to announce that the SRS QIIME 2 plugin is out!

SRS is an alternative library size normalization tool. For details, take a look at the SRS paper or go to the @lukasbeule’s topic on how SRS works.

Here follows a short guide on how to install and use q2-srs (or go to the full tutorial).

Thank you!


Activate your qiime2>=2020.8 environment by running (or equivalent):

conda activate qiime2-2020.8
  • Option 1 - To install from conda, run:
conda install -c vitorheidrich q2_srs
  • Option 2 - To install from the repository, run:
pip install git+https://github.com/vitorheidrich/q2-srs.git

Check for successful installation by running qiime srs.


q2-srs features two qiime commands:

  • qiime srs SRS - performs SRS normalization at a user-defined number of reads per sample
  • qiime srs SRScurve - draws alpha diversity rarefaction curves for SRS-normalized data (instead of rarefied data)

We strongly encourage you to explore the SRS Shiny app, that is specifically designed for q2-srs users.

Usage recommendations

In order to normalize your samples to the same number of reads using SRS, we recommend running SRScurve first so you can determine a good normalization cut-off for your data. This normalization cut-off is called Cmin (see the SRS paper for details).

Alternatively (and complementarily) to SRScurve, we strongly advise for the use of the SRS Shiny app for the determination of Cmin.

Once you have chosen an adequate Cmin, run SRS with the Cmin that suits your data.
The output of SRS will be an OTU/ASV table SRS-normalized at Cmin reads per sample that is ready for the next steps of your pipeline.

Usage examples

Please go to the full tutorial to see the plugin in action.

Reporting an issue

Since q2-srs is just coming out please be watchful for bugs and, if possible, report them to us here in the forum or by opening an issue.