QIIME 2 2026.7 is now available!
Hello rachis/qiime2 community and happy summer! 
We have another fantastic release for you with some great changes, additions, and improvements! ![]()
And as with each release, always a huge thank you to our core development team and all of our wonderful community developers for their hard work and contributions! ![]()
Important Announcements 
Interface Changes coming in 2026.10 
- The deprecated
n_reads_learnparameter will be replaced with then_bases_learnparameter in alldenoise-*actions.n_reads_learndefaults to 1,000,000 reads, whilen_bases_learndefaults to 100,000,000 bases, so please plan accordingly
- The deprecated
- The
includeandexcludeparameters of thefilter-tableandfilter-seqsactions will be registered asList[Str]instead ofStr, meaning that multiple arguments can be provided with multiple uses of the parameter. The old delimiter-based approach will go away
- The
Breaking Changes 
- Got a bit of a cleanup to align its contents with the plugin name: all the binning/MAG-related actions were moved to the new q2-mag plugin and the pangenome filtering actions were moved to q2-quality-control

- Got a bit of a cleanup to align its contents with the plugin name: all the binning/MAG-related actions were moved to the new q2-mag plugin and the pangenome filtering actions were moved to q2-quality-control
da-barplothas been replaced byancombc2-visualizer, with the latter taking the former's name.da-barplotwill now accept bothancombcandancombc2outputs
Developer Announcements 
Updates to the Release Changelog Format 
Starting with the 2026.10 release, we will be testing out a new format for our release changelog, dubbed the 'semi-automatic' changelog ![]()
@lizgehret added a new automation into the release process that will collate all of the merge commits (which will now contain the PR's title and description) for each plugin in our distributions from the prior release to the current one. This collection of commits is then organized by plugin, with the final output looking something like this. The semi-automatic portion of this process means that we will still review the output and make changes/additions that are outside of regular per-plugin development, and tweak descriptions as needed for clarity before we add it to the final changelog ![]()
But what this means for our core development team is no more need for manually adding to/editing the changelog with each pull request that gets merged (cc @SoilRotifer and @colinbrislawn for visibility
). The only other change needed on this end to our developers (both core and community) is to use PR prefixes outlined here. These will be enforced in our continuous integration lint/testing to help us all remember! ![]()
Here are the Highlights of the Release! 
@Oddant1 added display of Annotations in the q2view Provenance DAG. Try viewing the Provenance of an Annotated Result to see what it looks like ![]()
- MOSHPIT
- In order to address the increasing complexity of q2-annotate, @misialq removed all of the binning and MAG QC actions and moved them into a new plugin (which is also now in MOSHPIT 2026.7): q2-mag

- In order to address the increasing complexity of q2-annotate, @misialq removed all of the binning and MAG QC actions and moved them into a new plugin (which is also now in MOSHPIT 2026.7): q2-mag
Framework (i.e., rachis) Updates ![]()
- @Oddant1 Added the ability to change values set on
CaptureHolderobjects using theCaptureHolder.set_valuefunction
- @Oddant1 Made it so that if a cache is explicitly set and no temp cache exists, a temp cache will not be created since it won't be used

- @Oddant1 Fixed a provenance replay bug preventing the replay of
Resultswith no inputArtifacts
- @Oddant1 Fixed a provenance replay bug preventing the replay of
Actionsnot present in the current conda environment
- @Macabe222 added a new
redact_metadataaction which will support the removal of metadata from a given Artifact's provenance. This addresses situations where sensitive information that shouldn't be shared within a resulting Artifact can be removed
this will also keep Artifact size low in the case of a large metadata file being stored on the Artifact thus making all downstream Artifacts large 
Interface Updates ![]()
- q2cli
- @Macabe222 added support for cached artifacts to the various replay actions

- @lizgehret updated the output of
qiime infoto now list the framework version asrachis(replacing qiime2), and to list the current version ofParsleither found within the environment or the detected system version (if no conda environment is detected)
- @Macabe222 added support for cached artifacts to the various replay actions
Plugin Updates ![]()
- @Macabe222 fixed a
in kraken2_to_featuresthat could occur when "infra-clade" root-level classifications were the last to be parsed from a kraken2 output file
- @misialq fixed a
in build-kraken-dbwhere fetching a pre-built database would fail due to acquiring an incomplete list of available DB versions
- @misialq added properties on the map_eggnog outputs to make them more specific to contigs vs. MAGs

- @misialq updated the
extract-annotationsaction to generate per-contig feature tables
- @misialq moved all the binning- and MAG-related actions to the q2-mag plugin

- @misialq moved the pangenome filtering actions to the q2-quality-control plugin

- @lizgehret did a bunch of maintenance work

- @Macabe222 fixed a
- @Nicholas_Bokulich added
FeatureData[LinkedSequence]as a new supported input type forkmer_diversity
- @Oddant1 fixed a
related to parallel seeding in resample
- @Oddant1 fixed a
in the kmer-diversitypipeline where 128 bit random ints weren't being reliably generated
- @Nicholas_Bokulich added
- @Macabe222 added support for downloading
da-barplotvisualizations as svgs
. - @colinvwood added support for optionally showing full taxonomic classifications as labels in the
da-barplotvisualization
. - @Macabe222 added a transformer from
ANCOMBC2OutputDirFmttoMetadata, allowing users to more easily see the raw output ofancombc2(usingmetadata tabulate)
.
- @Macabe222 added support for downloading
- @cherman2 and @colinvwood added a
--p-discard-trimmedparameter totrim-singleandtrim-pairedto allow the filtering of reads that contain an adapter
- @cherman2, @gregcaporaso, and @colinvwood added an
ImmutableMetadataoutput (--o-stats) to thetrim-singleandtrim-pairedactions that details read & base retention, quality trimming, and adapter trimming on a per-sample basis
- @Macabe222 exposed the
--p-trim-pairedparameter intrim-pairedwhich allows the user greater control over the conditions under which a read pair is filtered
.
- @cherman2 and @colinvwood added a
- @colinvwood modified the
denoise-pairedaction to optionally retain unmerged read pairs in a new type,FeatureData[LinkedSequence]
.
- @colinvwood modified the
- @timanix fixed a
in adoniswhere then_jobsinput was not being converted to an integer. @lizgehret added a unit test to support this change
- @timanix fixed a
- @Nicholas_Bokulich added support for
FeatureData[LinkedSequence]as an input to theclassify-sklearnaction
- @gregcaporaso added a new report to
extract-readsthat enables interrogation of why reads were/were not extracted
- @Nicholas_Bokulich added support for
- @misialq migrated the
multiply-tablesaction from q2-annotate. This migration provides broader access to this action as well as simplifies the growing number of actions present within q2-annotate
- @Vinzent_Risch added
FeatureTable[RelativeFrequency]as an input option to the filter-features action
- @misialq migrated the
- @Nicholas_Bokulich and @ebolyen added support for
FeatureData[LinkedSequnece]as a new input type (internally dubbed sequence salad
)
- @Nicholas_Bokulich and @ebolyen added support for
- @colinvwood added column filtering controls to the
tabulatevisualizer
- @colinvwood added column filtering controls to the
- @misialq migrated all of the human pangenome filtering actions from q2-annotate; they are now available in q2-quality-control (
construct_human_pangenome_indexandfilter_reads_human_pangenome)
- @misialq migrated all of the human pangenome filtering actions from q2-annotate; they are now available in q2-quality-control (
- @SoilRotifer updated the
get-gtdb-dataaction to include GTDB version232
- @SoilRotifer updated the
get-pr2-dataaction to include PR2 version5.1.1
- @SoilRotifer updated the
get-eukaryome-dataaction:- now includes eukaryome
2.0
- fixed
that prevented downloading version 1.9.2, now referred to as1.9
- updated code to handle the extraction of sequences that may or may not be compressed in
7zipformat
- now includes eukaryome
- @SoilRotifer updated the
get-midori2-dataaction:- now includes MIDORI2 dbs:
GenBank270_2026-02-15,GenBank269_2025-12-09,GenBank268_2025-08-14
- Also fixed file reading and writing from gzipped files

- now includes MIDORI2 dbs:
- @SoilRotifer updated the
- @Macabe222 added support for
FeatureTable[RelativeFrequency]tables to thefilter-tableaction
- @Macabe222 added support for
RelativeFrequencyandCompositionfeature tables to thecollapseaction
- @Macabe222 added support for
FeatureData[AlignedSequence]sequences to thefilter-seqsaction
- @gregcaporaso added the
taxonomy-to-metadataaction that allowsFeatureData[Taxonomy]to be converted toImmutableMetadata, with one column per taxonomic rank. Cumulative level headers and custom delimiters are supported.
- @Macabe222 added support for
- @Macabe222 sped up the validation of
Kraken2OutputFormats
. - @Vinzent_Risch moved the
Importancetype and all associated formats and transformers from q2-sample-classifier to q2-types
- @ZuzanaSebb updated the eggnog collation actions to work with the inputs containing properties (contigs vs. MAGs)

- @misialq / @cherman2 fixed a
where numeric sample IDs were ignored when partitioning SampleData[MAGs] 
- @Macabe222 sped up the validation of
- @lizgehret increased the legend length on all plots to accommodate longer group names ↔️(thanks for the suggestion @colinbrislawn
) - @lizgehret added the following paired/quad color palettes into scatterplot and lineplot:
category20,category20c,tableau20
(thanks for the suggestion @colinbrislawn
)
- @lizgehret increased the legend length on all plots to accommodate longer group names ↔️(thanks for the suggestion @colinbrislawn
Docker Container Updates ![]()
- @lizgehret added a weekly development build of the
moshpitdistribution to quay.io under thedevtag. This was primarily to enable easier developer support within our core development team, but feel free to use it if you are doing any metagenomics plugin development or want to stay up to date on the latest and greatest (pre-release) changes within that distribution
Documentation Updates ![]()