QIIME 2 2025.4 is now available!
Hello QIIME 2 community! 
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. 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.
Important Announcements 
q2-vsearch
Software Bug in Prior Releases 
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.
Breaking Changes 
- The
--p-version
parameter in theget-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.
- The
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
, andestimate_abundance
. These changes ensure consistency between different actions - @misialq updated the
ReferenceDB[BuscoDB]
semantic type toReferenceDB[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 theevaluate-busco
action from this release on. They can be either re-fetched using the updatedfetch-busco-db
action or re-imported into a new artifact using the new semantic type.
- @Vinzent_Risch Renamed inputs/outputs in the following actions:
2025.4 Release Highlights 
qiime2.org Updates
@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.
QIIME 2 Library Updates
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!)
QIIME 2 View Updates
@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
Microbiome marker gene analysis with QIIME 2:
- @gregcaporaso led the transition from the "old docs" to the new QIIME 2 Amplicon Distribution documentation, now located at: https://amplicon-docs.qiime2.org/. Changes made in this transition include:
- Re-organization under the Diataxis framework
- Lots of content from the old docs was updated
- The Plugin Index was completely rewritten, which can now be automatically generated for other plugins and distributions (example here)
- An all new end-to-end analysis tutorial was added, the Gut-to-Soil Microbiome Axis Tutorial
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!
- 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
@lizgehret added support for semantic versioning of our Archive Formats (i.e., the format used to write
.qza
and.qzv
files).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
. Additions in this new format include:
- Artifacts and Visualizations can now include annotations!
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.
- Annotations of type
- An all-new
conda-env.yaml
file that contains all dependencies within the environment where the Artifact or Visualization was created from. - Calculated checksums have been updated from md5 to sha512
- Total file size calculation for all files within the
data
directory can be found under the top-level (and provenance-level)metadata.yaml
- Artifacts and Visualizations can now include annotations!
Plugin Updates
@lizgehret completed the following maintenance/modernization work for all plugins within QIIME 2 Distributions:
- Transitioned all plugins' Python setup files from
setup.py
topyproject.toml
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 supportedimportlib-*
equivalent actions.
These updates align with the broader Python packaging ecosystem's push for modernization, ensuring compatibility with evolving tools and workflows
q2-annotate (formerly q2-moshpit)
- @cherman2 fixed a
where
kraken2-to-features
action would fail if an infra-clade was the terminal taxon - @colinvwood updated how we handle the Kraken 2 report directory formats
- @lizgehret did a lot of great maintenance work
- DorielaGrabocka updated the
search-orthologs-diamond
action to useprodigal
for gene prediction - DorielaGrabocka added a new
GenomeData[Loci]
output to thesearch-orthologs-*
actions which contains the GFF files with coordinates of genes identified by eggNOG mapper - @Vinzent_Risch introduced the following updates:
- Added the possibility to use BUSCO metrics during MAG dereplication by the
dereplicate-mags
action - Expanded the BUSCO directory format to allow additional lineage files included in the newer database versions
- Updated the
predict-genes-prodigal
action to allow gene prediction onSampleData[Contigs]
- Added a new
filter-kraken2-results
action to enable filtering of Kraken 2 reports and outputs - Expanded the
get-feature-lengths
action to allow length calculation from additional inputs (i.e.:FeatureData[Sequence]
,SampleData[MAGs]
,SampleData[Contigs]
) - Renamed a bunch of inputs/outputs to ensure consistency between different actions
- Fixed a
where the
evaluate-busco
action would mysteriously fail if no lineage dataset was provided. - Added
completeness
andcontamination
metrics to the BUSCO results
- Added the possibility to use BUSCO metrics during MAG dereplication by the
- @SoilRotifer added the ability to fetch the GTDB Kraken2 database
- @misialq introduced the following changes:
- Disabled the
estimate-bracken
action on macOS due to the underlying Bracken version not being available through conda - Added the
nt_core
Kraken 2 database to the list of downloadable databases available through thebuild-kraken-db
action - Added
SampleData[Contigs]
to the list of allowed inputs to theestimate-abundance
action - Renamed a couple of actions
:
estimate-mag-abundance
estimate-abundance
eggnog-annotate
map-eggnog
eggnog-diamond-search
search-orthologs-diamond
eggnog-hmmer-search
search-orthologs-hmmer
- Fixed a
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
- Disabled the
- @cherman2 fixed a
- @misialq introduced the following changes:
- Updated supported
spades
version to 4.0 - Introduced a new
filter-contigs
action to allow filtering samples based on the contig content - Removed the
meta
option from theassemble-megahit
action presets
- Updated supported
- @lizgehret did a lot of great maintenance work
- @Vinzent_Risch renamed a bunch of inputs/outputs to ensure consistency between different actions
- @misialq introduced the following changes:
- @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 presentedThe 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. Anancombc2-visualizer
that plots the log-fold change data returned byancombc2
and allows interactive filtering was also added. Learn how to use it here, in the new gut-to-soil microbiome axis tutorial!
- @salias made an improvement to
- @colinvwood added parameters that allow unconditional removal of bases from the beginning and ends of reads to the
trim-single
andtrim-paired
actions
- @colinvwood added parameters that allow unconditional removal of bases from the beginning and ends of reads to the
- @Vinzent_Risch added the ability to pass a random seed to
rarefy
, supporting improved reproducibility. - @Vinzent_Risch added a new action,
normalize
, which supports normalization ofFeatureTable[Frequency]
artifacts with common RNA-seq methods (usingRNAnorm
under the hood).
- @Vinzent_Risch added the ability to pass a random seed to
- @jordenrabasco improved the input validation, error messages, and help text for the
decontam-identify-batches
method - @jordenrabasco added a deprecation flag for
decontam-remove
- @jordenrabasco improved the input validation, error messages, and help text for the
- @colinvwood updated the
q-score
action to now process and return paired end reads - @colinvwood modified the
q-score
action to allow parallel execution, making the action feasible for use with larger datasets, such as metagenomic ones
- @colinvwood updated the
- @misialq fixed a
where the MANIFEST file in
SampleData[MAGs]
artifacts generated by thecollate-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 - @cherman2 added a distance-matrix to pd.Series transformer
This should make exploration of qiime2 distance-matrices in python easier
- 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
- @misialq fixed a
- @lizgehret made the following improvements:
- Minor cosmetic improvements to all plots
- Added an
includeZero
checkbox for scatterplot, lineplot, and boxplot - Added a scroll bar for resizing circular marks in scatterplot, lineplot, and boxplot
- Added a color palette drop-down for scatterplot, lineplot, and boxplot
- Modified the
y_measure
to be an optional input in lineplot
- Minor cosmetic improvements to all plots
- @lizgehret made the following improvements:
- @colinbrislawn added support for newer versions of the
uchime_denovo
algorithm to thevsearch uchime-denovo
action, namelyuchime2_denovo
anduchime3_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
andqmaxout
parameters tomerge-pairs
, enabling users to override these values when merging paired end reads with vsearch.
- @colinbrislawn added support for newer versions of the
@SoilRotifer added the options
--p-keep-primer-location
and--p-no-keep-primer-location
to thetrim-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 GTDBPrimary
orMirror
site.@SoilRotifer the
--p-version
parameter ofget-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.This is a breaking change!
@Nicholas_Bokulich added the action
orient-reads
. This action is similar to the existingorient-seqs
action, except that it can handle the following types:SampleData[PairedEndSequencesWithQuality]
, andSampleData[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.
Docker Container Updates
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! 
Interface Changes in QIIME 2 2025.10 
Plugin-Specific Changes 
- @jordenrabasco will integrate some changes into the Decontam functionality. These changes include:
decontam-remove
action will be removed in favor of existing qiime actionsqiime feature-table filter-features
andqiime feature-table filter-seqs
.decontam-score-viz
will now generate a report with feature-id, Determination, P-score, Abundance, and prevalence, regardless if therepresentative-sequences
object is passed into the action or not (blastable sequence link will still require therepresentative-sequences
object).
- @jordenrabasco will integrate some changes into the Decontam functionality. These changes include:
- The plugin's name will change to
q2-ancombc
, to reflect that all actions in the plugin are related toancombc2
,ancombc
, andancom
. - The
ancombc2-visualizer
action will be removed, in favor ofda-barplot
. da-barplot
will be updated to produce the visualization now produced byancombc2-visualizer
, and it will be updated to accept results ofancombc
andancombc2
as inputs.- Some other action(s) and parameter name(s) may be changed.
- The plugin's name will change to
Distribution-Specific Changes 
- 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!
- NOTE: While
- Plugins within the MOSHPIT Distribution (formerly the Metagenome Distribution) will have some interface changes throughout.
Python Versioning Changes 
- 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! 
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!