Important 
The following is an early developer preview of the changes expected in 2025.4
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 2025.4 Project on Github
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.
Interface Changes coming in QIIME 2 2025.10 
@jordenrabasco will integrate some changes into q2-quality-control's Decontam functionality. These 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).
Python Versioning 
- Target for 2025.10: Python
- Target for 2026.4: Python
Breaking Changes 
- q2-rescript
- 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.
- the
- q2-annotate
- @Vinzent_Risch Renamed inputs/outputs in 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 to ensure consistency between different actions
Here are the highlights of the release! 
qiime2.org updates
- 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
Interface Updates
Plugin Updates
Note: @lizgehret transitioned all plugins' Python setup files from setup.py
to pyproject.toml
This update simplifies and modernizes a plugin's setup, making it easier to read and maintain. Furthermore, it aligns with the broader Python packaging ecosystem's push for modernization, ensuring compatibility with evolving tools and workflows
-
q2-annotate (formerly known as 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.
- 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.
- @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 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
-
-
@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.
-
-
- @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
Community Plugin Updates
Documentation Updates
- QIIME 2 Resources
- @lizgehret added the 2024.09 Greengenes2 classifiers (thanks to @wasade and team for the new release!)
- @lizgehret added the 2024.09 Greengenes2 classifiers (thanks to @wasade and team for the new release!)
Docker Container Updates