QIIME 2 2025.7 is now available!
Hello QIIME 2 Community! 
Our first feature release for 2025 is now available! Thanks (as always) to everyone for their hard work!
As a friendly reminder, we are now doing bi-annual 'full' releases in April and October (which contain new features, bug fixes, and external dependency updates) as well as bi-annual 'feature' releases in July and January (which will contain new features and bug fixes but no external dependency changes). Make sure to keep an eye on our news feed for more up-to-date information on all things QIIME 2!
Important Announcements 
Python Versioning for Upcoming Full Releases 
- Target for 2025.10: Python 3.12
- Target for 2026.4: Python 3.13
Here are the highlights of the release! 
- @Oddant1 refactored and restyled the provenance DAG page to make it more full screen
- @Oddant1 added a button to the provenance DAG page that resets the DAG to its original state
- @Oddant1 made it so nodes hit by a provenance search have a blue highlight
- Excited about using QIIME 2 through Galaxy, but want to run it on your own computer? @Oddant1 added new documentation to Using QIIME 2 that illustrates how to use QIIME 2 through Galaxy in our Docker container. Enjoy!
- @lizgehret, @ebolyen, and @gregcaporaso updated the QIIME 2 plugin template from Cookiecutter to Copier
→
The main feature motivating this change is that plugins templated with Copier can be updated, which will allow us to automatically submit updates to plugins (e.g., new environment files, when new versions of QIIME 2 are released) and therefore help plugin developers keep their plugins up-to-date with QIIME 2. The Create your plugin from template document in Developing with QIIME 2 has been updated to reflect this change. You can also refer to The structure of QIIME 2 plugin packages to learn about the specific files that are templated into new plugin repositories.
- perezthedev and @colinvwood added validation for
SingleFileDirectoryFormat
, ensuring that only one file is present - @Oddant1 made it so framework versions going forward will properly handle seeing a cache that's too new for them by raising a helpful error. Older framework versions will identify cache versions too new for them as not a cache and raise an error, but the error won't contain an informative message
- @Oddant1 made a more informative error when a job is submitted to a remote compute node without the cache being set to a globally accessible location
Plugin Updates
- fethalen added support for the
--large
flag when runningmafft
, which uses files, instead of RAM, to store temporary data. This limits RAM usage when aligning very large files. The--large
flag has been added to both themafft
andmafft-add
commands
- fethalen added support for the
- @Vinzent_Risch added support for passing joined reads and contigs to the
classify-kaiju
action - @misialq added an ability to extract EC numbers into a feature table in the
extract-annotations
action - @Vinzent_Risch added two new metrics (completeness and contamination) to the BUSCO results and visualization
- @misialq added a new
construct-pangenome-index
action to allow index construction before read filtering
- @Vinzent_Risch added support for passing joined reads and contigs to the
- @misialq added a new
simulate-reads-mason
action to generate simulated reads using the Mason simulator
- @misialq added a new
- @colinbrislawn exposed the
maxMismatch
andtrimOverhang
parameters in thedenoise-paired
action, allowing more flexibility when merging reads with large overlapping regions
- @colinbrislawn exposed the
- @Macabe222 added an option to drop empty samples after subsampling in the
subsample-single
andsubsample-paired
actions
- @Macabe222 added an option to drop empty samples after subsampling in the
- @Macabe222 added a clearer error message when feature tables with a single sample are mistakenly given to pipelines that perform beta diversity analyses
- @Macabe222 added a clearer error message when feature tables with a single sample are mistakenly given to pipelines that perform beta diversity analyses
- @Macabe222 added a
"both"
option to the--p-read-orientation
parameter to theclassify-sklearn
action that selects the classification of highest confidence between the forward orientation and reverse complement orientation of each query sequence
- @Macabe222 added a
- @Macabe222 made the
split
action more efficient by taking advantage of newbiom.Table.partition
functionality - @lizgehret added
FeatureTable[RelativeFrequency | PresenceAbsence | Composition]
as allowed inputs inheatmap
- @lizgehret updated some verbiage in the
summarize
visualization to more accurately specify Unique Features vs. Total Observations - @gregcaporaso added a usage example to
filter-features
that illustrates how to filter features from a feature-table that are present in aFeatureData[Sequence]
artifact. This same approach can be used to filter sequences that instead are not present in that artifact. Callqiime feature-table filter-features --help
to see this example.
- @Macabe222 made the
- @SoilRotifer added the action
get-midori2-data
. This action enables users to fetch reference mitochondrial DNA sequence data from the MIDORI Reference 2 database. Multiple reference gene sequences can be simultaneously fetched
- @SoilRotifer added the action
- @cherman2 made Dist1Ds convertable to metadata
- @lizgehret fixed a
in
MultiDirValidationMixin
that was causing pesky dotfiles (such as.DS_Store
) to raise a ValidationError
- @cherman2 made Dist1Ds convertable to metadata
- @jordenrabasco made various improvements to the
decontam-score-viz
visualizer, including a default sequence table when representative sequences are not provided, paginated sequence tables, sortable sequence table columns, and a more performant sequence table sorting algorithm - @jordenrabasco removed the
decontam-remove
action, as this was redundant with other workflows for removing features from feature tables. You should now useqiime feature-table filter-features
andqiime feature-table filter-seqs
.
- @jordenrabasco made various improvements to the
- @Vinzent_Risch and @lizgehret added automatic plot resizing (based on browser window size) for
scatterplot_2d
andlineplot
- @Vinzent_Risch and @lizgehret added support for zooming in/out for
scatterplot_2d
andlineplot
- @Vinzent_Risch added a new slider for resizing line marks' stroke width in
lineplot
⇝ - @lizgehret added a new on/off toggle for marks in
lineplot
- @lizgehret updated the default color palette for all visualizers to
category10
- @Vinzent_Risch and @lizgehret added automatic plot resizing (based on browser window size) for
Share: