[Preview] QIIME 2 2024.5 development changelog

QIIME 2 2024.5 has been released!
Please see the official changelog for more details.

Original content of post

:exclamation: Important :exclamation:

The following is an early developer preview of the changes expected in 2024.5

This post is a live-document which will be updated throughout our development cycle. Any links will in this topic will be broken until the release is officially published. When we are ready for release, we’ll copy this changelog and create a new post in the Announcements category.

Developer Project Board:

QIIME 2 2024.5 Project on Github

The QIIME 2 2024.5 release is now available! Thanks to everyone involved for their hard work! :raised_hands:t3: :tada:

Following, we are transitioning to a twice-per-year release schedule, where releases are scheduled for the first Wednesday of April and October. Our next planned QIIME 2 release is therefore scheduled for Oct 2024 (QIIME 2 2024.10), but please stay tuned for updates. :spiral_calendar:

Between releases, you can access and install the most recent development version of QIIME 2 through our weekly builds :factory: You can find information on how to install these in the Set up your development environment document in Developing with QIIME 2 :jigsaw:

Check out the QIIME 2 2024.5 docs for details on installing the latest QIIME 2 release, as well as tutorials and other resources. Get in touch on the QIIME 2 Forum if you run into any issues! :wave:

:bangbang: Important: Interface Changes in QIIME 2 2024.5 :bangbang:

In the 2024.5 release, the following interface changes have gone into effect:

  • The supported Python version as of this release is Python 3.9. For the most part this doesn't impact users, but classifiers that worked with previous versions of QIIME 2 will not work with QIIME 2 2024.5. You can download new pre-trained classifiers on the new QIIME 2 Resources page. This is a result of the scikit-learn dependency version changing. :snake:
  • The decontam-remove Action in q2-quality-control now requires an additional parameter and generates an additional output. This integrates filtering of contaminant sequences from an input FeatureData[Sequence] artifact, in addition to filtering their entries from the input FeatureTable. @gregcaporaso decided to allow this interface change without advance warning as it's relatively new functionality so not yet widely used, it's a feature addition (opposed to a feature subtraction), and the best alternative would have involved multiple interface changes in the next release.
  • The classify-sklearn action in q2-feature-classifier no longer supports passing n cores/processes less than the total number possible to the --p-n-jobs parameter. This was a bug introduced by the last release and thus no warning of the change was made at the time.

Here are the highlights of the release:

QIIME 2 View Updates :mag:

@Oddant1 completely rewrote QIIME 2 View to enable us to more quickly integrate changes and improvements! :boom:

Some new features include:

  • A dynamic visualization gallery. Have you developed a cool new visualization for your QIIME 2 plugin that you think others should see? Add it to the gallery!
  • Improved viewing of Collections in data provenance (though this is still a work in progress.)
  • Switching between tabs will no longer reset the state of the other tabs. If you set up your visualization to look just how you want it then click away to another tab when you come back your visualization will still look how you had it.
  • The citations on the Details page now have several options for different citation styles.

Distribution Updates :package:

  • Docker images are now being made available for all of our supported distributions! :rocket:
    • The docker images for tiny and amplicon distros have already been built and are available for use! Docker image for the metagenome distro is in the process of being built - we will follow up here once it is available. :robot:

Framework Updates :qiime2:

  • @Sann5 fixed a :beetle: which caused composite semantic types in TypeMap to not allow for child types to have properties :child:
  • @Oddant1 added Collection[Visualization] as a valid output type - which was necessary for a new QIIME 2 community plugin: q2-boots :hiking_boot:

Interface Updates :tv:



  • @Oddant1 updated artifact cache keys to accept kebab case :oden:


  • @AmandaBirmingham integrated CWL support in q2dataflow and added collections support for both WDL and CWL :dizzy:


  • @Oddant1 refactored our galaxy tools implementation with improved error handling :stars:

Plugin Updates :electric_plug:


  • @colinbrislawn and @lizgehret fixed a :bug: in ANCOM-BC that caused failures for sample IDs with exponent formatting (i.e 12e6). Thank you to forum user @luvalli for bringing this one to our attention! :qiime2:


  • @jphagen added improved error handling to describe too few samples retained in alpha-group-significance :carrot:
  • @jphagen added an action for filtering FeatureData[AlphaDiversity] :woman_superhero:
  • @cherman2 fixed a :ant: in beta-correlation where the metadata and distance matrix axes were incorrectly labeled :tickets:


  • @cherman2 @jphagen @lizgehret hardcoded scikit-bio alpha diversity metrics to produce NaN over 0 if metric assumptions are not met. This is a temporarily work-around while we communicate with scikit-bio about how this situation is handled :microbe:


  • @isaiah-ghost fixed a :lady_beetle: in summarize where sample IDs were being replaced with a numerical index within the per-sample counts tab :1234:
  • @Oddant1 refactored summarize to ensure consistent table formatting, and improved code for future development :jigsaw:


  • @jphagen added more verbose error handling for metadata merge methods :postal_horn:


  • @gregcaporaso @jordenrabasco added functionality to decontam-remove which allows users to remove contaminant identified sequences from the representative sequences object created from q2-dada2 :petri_dish:
  • @jordenrabasco added a variety of new features to decontam-score-viz, including an updated look, a sortable decontam score table with associated sequences, and downloadable fasta files of the contaminant and non-contaminant features :microbe:


  • @cherman2 refactored GroupDist to Dist1D and added new subtypes for Dist1D: NestedOrdered and NestedUnordered :nest_with_eggs:


  • @jphagen added FeatureTable[PresenceAbsence] as an input for taxa filter-table :love_letter:


  • @jphagen migrated types/formats/transformers from q2-demux to q2-types for more general access :compass:
  • @Oddant1 fixed a bug where types were no longer recognized after making dev in an environment :beetle:
  • @ebolyen fixed some circular import :bug: :beetle: in bowtie and contig :bow_and_arrow:
  • @misialq added a new type FeatureData[Contig] :jigsaw:
  • @misialq added sample_dict method to MultiFASTADirectoryFormat :books:
  • @misialq added two Eggnog annotation transformers. Eggnog annotations can now be transformed to metadata and pd.Dataframe :fried_egg:
  • @Sann5 adjusted regex for genome data semantic types: GenomeData[Loci] , GenomeData[Genes] , and GenomeData[Proteins] :dna:
  • @misialq added new semantic types FeatureData[SingleBowtie2Index] and FeatureData[AlignmentMap] :world_map:
  • @Vinzent_Risch added a new type FeatureData[SequenceCharacteristics] and
    a new semantic validator for FeatureData[SequenceCharacteristics % Properties("length")] :sparkler:
  • @colinvwood added a transformer from BIOMV210Format to DNAFASTAFormat which allows biom tables whose observations (features) are annotated with their sequences to be imported as FeatureData[Sequence] :dna:


  • @jphagen and @cherman2 added FeatureTable[PresenceAbsence] as an accepted input for taxa filter-table :ping_pong:

Documentation Updates :books:

  • @gregcaporaso updated the documentation for Developing with QIIME 2. If you would like to learn more, please see the announcement for these changes here. :desktop_computer:
  • @Oddant1 refactored the data resources page. As of 2024.5, pre-trained taxonomic classifiers are now available at https://resources.qiime2.org. This decouples these links from the documentation, and enables easier updating of these links between releases (e.g., we don't have to rebuild the docs to share new classifiers). :link:
  • @gregcaporaso added clearer documentation regarding community contributions to QIIME 2 :people_holding_hands:
  • @colinvwood updated the cancer-microbiome-tutorial to illustrate how to use QIIME 2 with R. :watch::dove:

QIIME 2 Library

  • @lizgehret added updates to the home and about pages to reflect our current plans for library, and to clarify the guarantees that we make for community plugins and their usability :female_detective: