QIIME 2 2025.4 is now available!

Hello QIIME 2 community! :waving_hand:t3:

We have a BIG release for you, almost in time for the end of April 2025! You can think of this is as our way of zero indexing the scheduled release date. :wink: There's a lot of new functionality and other improvements packed into this release, but we also have lots of big changes to our websites and documentation. This is all detailed below for your reading pleasure!

You can also now find a news page (and a corresponding RSS feed) where we plan to start sharing new content more regularly beginning this release cycle. We'll make an Announcement on the QIIME 2 Forum when this goes live with additional details on how you can stay up-to-date.


:police_car_light: Important Announcements :police_car_light:

q2-vsearch Software Bug in Prior Releases :beetle:

Affected Releases
The 2023.9, 2024.2, and 2024.5 shotgun/metagenome environments.

Description
A bug was discovered in the vsearch dependency of q2-vsearch. The bug manifests as possibly incorrect numbers of chimeric and non-chimeric sequence classifications from the vsearch uchime-denovo action. The magnitude of error is small--see here for more detailed information.

:bangbang: Breaking Changes :bangbang:

  • RESCRIPt

    • The --p-version parameter in the get-unite-data action now uses release dates, rather than version number, to specify which version of the UNITE database to fetch. For example, the latest version of the UNITE database can be specified via --p-version '2025-02-19', rather than --p-version '10.0'. This enables the ability to fetch multiple releases that are listed under the same version number.
  • q2-annotate (formerly q2-moshpit)

    • @Vinzent_Risch Renamed inputs/outputs in the following actions: classify_kraken2, collate_kraken2_reports, collate_kraken2_outputs, estimate_bracken, kraken2_to_mag_features, fetch_eggnog_db, fetch_diamond_db, search_orthologs_diamond, search_orthologs_hmmer, map_eggnog, collate_busco_result, evaluate_busco, predict_genes_prodigal, fetch_busco_db, and estimate_abundance. These changes ensure consistency between different actions :counterclockwise_arrows_button:
    • @misialq updated the ReferenceDB[BuscoDB] semantic type to ReferenceDB[BUSCO] and removed an unnecessary level of directory nesting within the underlying directory format. BUSCO databases fetched with previous versions of q2-annotate (formerly q2-moshpit) will not work with the evaluate-busco action from this release on. They can be either re-fetched using the updated fetch-busco-db action or re-imported into a new artifact using the new semantic type.

2025.4 Release Highlights :sparkler:

qiime2.org Updates :house:

@ebolyen completely redesigned the QIIME 2 homepage - it was due for an update! Among the new features are a navigation bar that persists across the homepage, the (all new!) QIIME 2 Library, the Forum, and QIIME 2 View. We hope this will help you better discover and navigate all of the content and resources that we're building for the community. :cityscape:


QIIME 2 Library Updates :books:

The QIIME 2 Library has also been entirely remade and redesigned by @ebolyen! The QIIME 2 Library will now house installation instructions for the Distributions (see the Quickstart page) and plugins, books and tutorials, videos, workshop listings, and data resources (such as taxonomy classifiers).

The following plugins have been added to the library, in addition to plugins from the teams in the Caporaso and Bokulich labs:

Plugin developers: learn how to add your plugins to the new library here.

QIIME 2 Data Resources are now accessible through the QIIME 2 Library. Additions in this cycle include:

  • @lizgehret added the 2024.09 Greengenes2 classifiers (thanks to @wasade and team for the new release!) :microbe:

QIIME 2 View Updates :magnifying_glass_tilted_left:

  • @Oddant1 added a new Metadata tab (example) to QIIME 2 View that lists all of the Metadata contained within your provenance and provides information about why this metadata may be important.

  • @Oddant1 added the ability to search provenance for specific keys and (key, value) pairs on the provenance tab (example) of QIIME 2 View. This can help find Actions, Results, or other content in complex provenance graphs.

  • @Oddant1 adapted QIIME 2 View to make it easier to host from other locations (e.g., from a server behind your firewall, or out of a Docker container). qiime tools view now uses this on your machine, allowing you to interact with your visualizations offline exactly as you could through QIIME 2 View. See the q2cli section for more details.


Documentation Updates :open_book:

Microbiome marker gene analysis with QIIME 2:

MOSHPIT tutorials:

  • @misialq introduced many updates to the MOSHPIT (formerly QIIME 2 metagenome distribution) documentation, which is now available at https://moshpit.qiime2.org. If you haven't started using the MOSHPIT Distribution for metagenomic analysis yet, we would love for you to try it out and provide any feedback that you might have!

At this stage, we now have distribution-specific documentation that you can use to learn how to use the current distributions, including Microbiome marker gene analysis with QIIME 2 and MOSHPIT tutorials. Additionally, we have plugin-specific documentation for plugins that are not included in a distribution, including genome-sampler and q2-fmt. We have dataset focused tutorials that may ultimately cross distributions (e.g., to illustrate how to integrate metagenome and marker gene data), including the gut-to-soil microbiome axis tutorial. And finally, we have framework-level documentation for power users (Using QIIME 2) and developers (Developing with QIIME 2). You can find all of this linked from the Books section of the QIIME 2 Library.

TL;DR: There are a lot of docs out there - if you're looking for something and can't find it, reach out to us on the Forum! :nerd_face:


Distribution Updates :package:

  • the MOSHPIT distribution got a significant upgrade:
    • q2-moshpit plugin was renamed to q2-annotate to make a clear distinction between the plugin and the distribution itself
    • some actions and action inputs/outputs were renamed to ensure consistency across the distribution (please see "Plugin Updates" section below for details)
    • many new actions were added and the inputs to the existing actions were, in many cases, expanded by allowing additional input types
    • a new tutorial page was published

Framework Updates :deciduous_tree:

  • @lizgehret added support for semantic versioning of our Archive Formats (i.e., the format used to write .qza and .qzv files). :bookmark_tabs: Beginning with this release, our Archive Formats will now be versioned in {major}.{minor} format (e.g., 7.0) where previous there was no minor version (e.g., 6). This will allow us to make minor changes that are ensured to be backwards compatible within their major version (i.e. versions 7.0 -> 7.n will all be backwards compatible within 7.*, while versions 8.0+ won't be).

  • @lizgehret added the new v7.0 Archive Format :framed_picture:. Additions in this new format include:

    • Artifacts and Visualizations can now include annotations! :memo: We imagine these being used to store information like licenses for how data can be used, or other notes (e.g., information such as a reference database version, which wouldn't be stored in data provenance if its obtained before using QIIME 2).
      • Annotations of type Note can now be added to any QIIME 2 Result (of version v7.0+).
      • Notes can contain up to 10MB of utf-8 parsable text, and just require a unique name per Result that they are attached to.
      • The following annotation-specific actions have been added to the Python 3 API:
        • Result.add_annotation(Note())
        • Result.remove_annotation(name)
        • Result.iter_annotations()
        • Result.get_annotation(name)
      • The following annotation-specific commands have been added under tools to the cli:
        • qiime tools annotation-create
        • qiime tools annotation-remove
        • qiime tools annotation-list
        • qiime tools annotation-fetch
          • Note: The q2cli commands associated with annotations are still considered to be in a beta release, so please reach out if you encounter any unexpected errors or you have any suggestions/feature requests! These may change slightly between versions.
    • An all-new conda-env.yaml file that contains all dependencies within the environment where the Artifact or Visualization was created from. :snake:
    • Calculated checksums have been updated from md5 to sha512 :check_box_with_check:
    • Total file size calculation for all files within the data directory can be found under the top-level (and provenance-level) metadata.yaml :abacus:

Plugin Updates :electric_plug:

@lizgehret completed the following maintenance/modernization work for all plugins within QIIME 2 Distributions:

  • Transitioned all plugins' Python setup files from setup.py to pyproject.toml :gear: This update simplifies and modernizes a plugin's setup, making it easier to read and maintain.
  • Replaced all uses of the deprecated pkg_resources package actions with the supported importlib-* equivalent actions.

These updates align with the broader Python packaging ecosystem's push for modernization, ensuring compatibility with evolving tools and workflows :hammer_and_wrench:

  • q2-annotate (formerly q2-moshpit)

    • @cherman2 fixed a :beetle: where kraken2-to-features action would fail if an infra-clade was the terminal taxon :no_entry:
    • @colinvwood updated how we handle the Kraken 2 report directory formats :file_folder:
    • @lizgehret did a lot of great maintenance work :hammer_and_wrench:
    • DorielaGrabocka updated the search-orthologs-diamond action to use prodigal for gene prediction :gem_stone:
    • DorielaGrabocka added a new GenomeData[Loci] output to the search-orthologs-* actions which contains the GFF files with coordinates of genes identified by eggNOG mapper :round_pushpin:
    • @Vinzent_Risch introduced the following updates:
      • Added the possibility to use BUSCO metrics during MAG dereplication by the dereplicate-mags action :bar_chart:
      • Expanded the BUSCO directory format to allow additional lineage files included in the newer database versions :file_folder:
      • Updated the predict-genes-prodigal action to allow gene prediction on SampleData[Contigs] :dna:
      • Added a new filter-kraken2-results action to enable filtering of Kraken 2 reports and outputs :round_pushpin:
      • Expanded the get-feature-lengths action to allow length calculation from additional inputs (i.e.: FeatureData[Sequence], SampleData[MAGs], SampleData[Contigs]) :straight_ruler:
      • Renamed a bunch of inputs/outputs to ensure consistency between different actions :counterclockwise_arrows_button:
      • Fixed a :beetle: where the evaluate-busco action would mysteriously fail if no lineage dataset was provided.
      • Added completeness and contamination metrics to the BUSCO results :chart_increasing:
    • @SoilRotifer added the ability to fetch the GTDB Kraken2 database :globe_with_meridians:
    • @misialq introduced the following changes:
      • Disabled the estimate-bracken action on macOS due to the underlying Bracken version not being available through conda :red_apple:
      • Added the nt_core Kraken 2 database to the list of downloadable databases available through the build-kraken-db action :globe_with_meridians:
      • Added SampleData[Contigs] to the list of allowed inputs to the estimate-abundance action :dna:
      • Renamed a couple of actions :pencil::
        • estimate-mag-abundance :right_arrow: estimate-abundance
        • eggnog-annotate :right_arrow: map-eggnog
        • eggnog-diamond-search :right_arrow: search-orthologs-diamond
        • eggnog-hmmer-search :right_arrow: search-orthologs-hmmer
      • Fixed a :bug: in the kraken2-to-mag-features which caused the action to fail if the Kraken 2 reports for an unclassified MAG had an "unexpected" number of additional lines.
      • Added functionality allowing fetching BUSCO databases for specific lineages, rather than entire domains :bullseye:
  • q2-assembly

    • @misialq introduced the following changes:
      • Updated supported spades version to 4.0 :up_arrow:
      • Introduced a new filter-contigs action to allow filtering samples based on the contig content :round_pushpin:
      • Removed the meta option from the assemble-megahit action presets :bug:
    • @lizgehret did a lot of great maintenance work :hammer_and_wrench:
    • @Vinzent_Risch renamed a bunch of inputs/outputs to ensure consistency between different actions :counterclockwise_arrows_button:
  • q2-composition

    • @salias made an improvement to da-barplot such that consistent coloring is used for enriched and depleted features, regardless of whether any enriched features are presented :bar_chart: The colors used here are blue (for enriched features) and orange (for depleted features). Previously, if no features were enriched, depleted features would be presented in blue. This is inconvenient when comparing these plots side-by-side.
    • @colinvwood added the ancombc2 action which wraps the ANCOM-BC2 R software, a newer iteration of the ANCOM-BC software. An ancombc2-visualizer that plots the log-fold change data returned by ancombc2 and allows interactive filtering was also added. Learn how to use it here, in the new gut-to-soil microbiome axis tutorial!
  • q2-cutadapt

    • @colinvwood added parameters that allow unconditional removal of bases from the beginning and ends of reads to the trim-single and trim-paired actions :scissors:
  • q2-feature-table

    • @Vinzent_Risch added the ability to pass a random seed to rarefy, supporting improved reproducibility. :chestnut:
    • @Vinzent_Risch added a new action, normalize, which supports normalization of FeatureTable[Frequency] artifacts with common RNA-seq methods (using RNAnorm under the hood). :abacus:
  • q2-quality-control

    • @jordenrabasco improved the input validation, error messages, and help text for the decontam-identify-batches method :card_file_box:
    • @jordenrabasco added a deprecation flag for decontam-remove :black_flag:
  • q2-quality-filter

    • @colinvwood updated theq-score action to now process and return paired end reads :dna:
    • @colinvwood modified the q-score action to allow parallel execution, making the action feasible for use with larger datasets, such as metagenomic ones
  • q2-types

    • @misialq fixed a :beetle: where the MANIFEST file in SampleData[MAGs] artifacts generated by the collate-sample-data-mags action would contain only entries from the last artifact which was being collated (i.e. the manifests were being overwritten). Instead, the entries will now be appended to the MANIFEST found in the first artifact :scroll:
    • @cherman2 added a distance-matrix to pd.Series transformer :newspaper: This should make exploration of qiime2 distance-matrices in python easier :microscope:
    • DorielaGrabocka added the collate_loci action. This action collates loci from multiple loci directories into a single LociDirectoryFormat and returns a single GenomeData[Loci] artifact :paperclips:
  • q2-vizard

    • @lizgehret made the following improvements:
      • Minor cosmetic improvements to all plots :lipstick:
      • Added an includeZero checkbox for scatterplot, lineplot, and boxplot :white_check_mark:
      • Added a scroll bar for resizing circular marks in scatterplot, lineplot, and boxplot :o:
      • Added a color palette drop-down for scatterplot, lineplot, and boxplot :rainbow_flag:
      • Modified the y_measure to be an optional input in lineplot :chart_with_upwards_trend:
  • q2-vsearch

    • @colinbrislawn added support for newer versions of the uchime_denovo algorithm to the vsearch uchime-denovo action, namely uchime2_denovo and uchime3_denovo. According to the vsearch manual these options are ideal for denoised amplicons, as pointed out by @SoilRotifer.
    • @colinvwood fixed a bug in the dereplicate-sequences action that prevented any successful usage of the --p-min-unique-size parameter
    • @michoug added the qmin, qminout, qmax and qmaxout parameters to merge-pairs, enabling users to override these values when merging paired end reads with vsearch.
  • RESCRIPt

    • @SoilRotifer added the options --p-keep-primer-location and --p-no-keep-primer-location to the trim-alignment action. These flags will toggle the option to retain the alignment positions of the primer binding location. Note: the primers themselves will always be removed, but the alignment positions where the primers align can be optionally retained or removed from the alignment.

    • @SoilRotifer added the action get-pr2-data. This action allows users to fetch recent versions of the PR2 database for use in taxonomy assignment.

    • @SoilRotifer updated the action get-gtdb-data. Can now download the most recent GTDB reference files, via --p-version '226.0', for use in taxonomy assignment. Also, added the parameter --p-url-type in which the user can toggle downloading data from the GTDB Primary or Mirror site.

    • @SoilRotifer the --p-version parameter of get-unite-data now uses release dates, rather than version number, to specify which version of the UNITE database to fetch. For example, the latest version of the UNITE database can be specified via --p-version '2025-02-19', rather than --p-version '10.0'. This allows the ability to fetch multiple releases that are listed under the same version number. :bangbang: This is a breaking change!:bangbang:

    • @Nicholas_Bokulich added the action orient-reads. This action is similar to the existing orient-seqs action, except that it can handle the following types: SampleData[PairedEndSequencesWithQuality], and SampleData[JoinedSequencesWithQuality]. This is will help in cases where sequenced amplicons are in a mixed orientation. That is, forward and reverse reads are present in both the R1 and R2 read files. This action also requires that a reference file, i.e. FeatureData[Sequence], be provided to help with re-orienting the reads. :compass:


Docker Container Updates :jar:

We now provide a Docker container that includes a Jupyter Lab server and some other niceties, which we use for teaching workshops. Learn how to use it to teach your own events here.


Coming up next! :right_arrow:

Interface Changes in QIIME 2 2025.10 :boom:

Plugin-Specific Changes :electric_plug:

  • q2-quality-control

    • @jordenrabasco will integrate some changes into the Decontam functionality. These changes include:
      • decontam-remove action will be removed in favor of existing qiime actions qiime feature-table filter-features and qiime feature-table filter-seqs.
      • decontam-score-viz will now generate a report with feature-id, Determination, P-score, Abundance, and prevalence, regardless if the representative-sequences object is passed into the action or not (blastable sequence link will still require the representative-sequences object).
  • q2-composition

    • The plugin's name will change to q2-ancombc, to reflect that all actions in the plugin are related to ancombc2, ancombc, and ancom.
    • The ancombc2-visualizer action will be removed, in favor of da-barplot.
    • da-barplot will be updated to produce the visualization now produced by ancombc2-visualizer, and it will be updated to accept results of ancombc and ancombc2 as inputs.
    • Some other action(s) and parameter name(s) may be changed.

Distribution-Specific Changes :package:

  • MOSHPIT Distribution
    • Plugins within the MOSHPIT Distribution (formerly the Metagenome Distribution) will have some interface changes throughout.
      • NOTE: While moshpit is still in beta release, you can expect some breaking changes between releases so we can quickly adapt to user needs. Be sure to check out the moshpit pre-print if you haven't already!

Python Versioning Changes :snake:

  • Target for 2025.10: Python 3.10 or 3.11, with a final decision posted on our mid-cycle dependency update announcement
  • Target for 2026.4: Python 3.12

Thank you! :folded_hands:t2:

As always, thanks to our amazing community of developers, forum moderators, and users! We couldn't do it without you! If you're a QIIME 2 user and want to get more involved in the community, check out some content that @gregcaporaso put together on the topic in Using QIIME 2.

Have fun, and see you on the QIIME 2 Forum! :technologist::microbe:

Share:
Back to Blog