QIIME 2 2026.7 is now available!

Hello rachis/qiime2 community and happy summer! :sun_with_face:

We have another fantastic release for you with some great changes, additions, and improvements! :rocket:

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! :folded_hands:t2:


:police_car_light: Important Announcements :police_car_light:

Interface Changes coming in 2026.10 :boom:

  • q2-dada2

    • The deprecated n_reads_learn parameter will be replaced with the n_bases_learn parameter in all denoise-* actions. n_reads_learn defaults to 1,000,000 reads, while n_bases_learn defaults to 100,000,000 bases, so please plan accordingly :1234:
  • q2-taxa

    • The include and exclude parameters of the filter-table and filter-seqs actions will be registered as List[Str] instead of Str, meaning that multiple arguments can be provided with multiple uses of the parameter. The old delimiter-based approach will go away :prohibited:

:bangbang: Breaking Changes :bangbang:

  • q2-annotate

    • 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 :wastebasket:
  • q2-composition

    • da-barplot has been replaced by ancombc2-visualizer, with the latter taking the former's name. da-barplot will now accept both ancombc and ancombc2 outputs :clinking_glasses:

Developer Announcements :brick:

Updates to the Release Changelog Format :memo:

Starting with the 2026.10 release, we will be testing out a new format for our release changelog, dubbed the 'semi-automatic' changelog :robot:

@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 :scroll:

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 :nerd_face:). 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! :brain:


:sparkles: Here are the Highlights of the Release! :sparkles:

Q2View Updates :mag:

@Oddant1 added display of Annotations in the q2view Provenance DAG. Try viewing the Provenance of an Annotated Result to see what it looks like :notebook:

Distribution Updates :package:

  • 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 :magnet:

Framework (i.e., rachis) Updates :seedling:

  • @Oddant1 Added the ability to change values set on CaptureHolder objects using the CaptureHolder.set_value function :person_playing_handball:
  • @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 :dollar_banknote:
  • @Oddant1 Fixed a provenance replay bug preventing the replay of Results with no input Artifacts :bug:
  • @Oddant1 Fixed a provenance replay bug preventing the replay of Actions not present in the current conda environment :snake:
  • @Macabe222 added a new redact_metadata action 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 :shushing_face: 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 :squid:

Interface Updates :tv:

  • q2cli
    • @Macabe222 added support for cached artifacts to the various replay actions :film_strip:
    • @lizgehret updated the output of qiime info to now list the framework version as rachis (replacing qiime2), and to list the current version of Parsl either found within the environment or the detected system version (if no conda environment is detected) :package:

Plugin Updates :electric_plug:

  • q2-annotate

    • @Macabe222 fixed a :bug: in kraken2_to_features that could occur when "infra-clade" root-level classifications were the last to be parsed from a kraken2 output file :file_folder:
    • @misialq fixed a :beetle: in build-kraken-db where fetching a pre-built database would fail due to acquiring an incomplete list of available DB versions :bookmark_tabs:
    • @misialq added properties on the map_eggnog outputs to make them more specific to contigs vs. MAGs :hatching_chick:
    • @misialq updated the extract-annotations action to generate per-contig feature tables :bar_chart:
    • @misialq moved all the binning- and MAG-related actions to the q2-mag plugin :electric_plug:
    • @misialq moved the pangenome filtering actions to the q2-quality-control plugin :control_knobs:
    • @lizgehret did a bunch of maintenance work :gear:
  • q2-assembly

    • @felicia added an action to sort alignment maps :world_map:
    • @felicia fixed a :lady_beetle: in the sort-alignment-maps action that would allow the string _sorted to be appended to the file path on multiple occasions :microbe:
    • @misialq updated the map-reads action to allow mapping reads to FeatureData[Sequence] :folded_hands:t2:
  • q2-boots

    • @Nicholas_Bokulich added FeatureData[LinkedSequence] as a new supported input type for kmer_diversity :root_vegetable:
    • @Oddant1 fixed a :lady_beetle: related to parallel seeding in resample :seedling:
    • @Oddant1 fixed a :bug: in the kmer-diversity pipeline where 128 bit random ints weren't being reliably generated :1234:
  • q2-composition

    • @Macabe222 added support for downloading da-barplot visualizations as svgs :framed_picture:.
    • @colinvwood added support for optionally showing full taxonomic classifications as labels in the da-barplot visualization :label:.
    • @Macabe222 added a transformer from ANCOMBC2OutputDirFmt to Metadata, allowing users to more easily see the raw output of ancombc2 (using metadata tabulate) :man_detective:t2:.
  • q2-cutadapt

    • @cherman2 and @colinvwood added a --p-discard-trimmed parameter to trim-single and trim-paired to allow the filtering of reads that contain an adapter :battery:
    • @cherman2, @gregcaporaso, and @colinvwood added an ImmutableMetadata output (--o-stats) to the trim-single and trim-paired actions that details read & base retention, quality trimming, and adapter trimming on a per-sample basis :scissors:
    • @Macabe222 exposed the --p-trim-paired parameter in trim-paired which allows the user greater control over the conditions under which a read pair is filtered :magnifying_glass_tilted_right:.
  • q2-dada2

    • @colinvwood modified the denoise-paired action to optionally retain unmerged read pairs in a new type, FeatureData[LinkedSequence] :dna:.
  • q2-diversity

    • @timanix fixed a :bug: in adonis where the n_jobs input was not being converted to an integer. @lizgehret added a unit test to support this change :heart_hands:t3:
  • q2-feature-classifier

    • @Nicholas_Bokulich added support for FeatureData[LinkedSequence] as an input to the classify-sklearn action :green_salad:
    • @gregcaporaso added a new report to extract-reads that enables interrogation of why reads were/were not extracted :microscope:
  • q2-feature-table

    • @misialq migrated the multiply-tables action from q2-annotate. This migration provides broader access to this action as well as simplifies the growing number of actions present within q2-annotate :chart_increasing:
    • @Vinzent_Risch added FeatureTable[RelativeFrequency] as an input option to the filter-features action :hammer_and_wrench:
  • q2-kmerizer

    • @Nicholas_Bokulich and @ebolyen added support for FeatureData[LinkedSequnece] as a new input type (internally dubbed sequence salad :green_salad:)
  • q2-mag

    • @misialq moved the binning/MAG-related actions from q2-annotate :joystick:
    • @felicia introduced a new SemiBin2-based binning action, bin-contigs-semibin2 :toolbox:
  • q2-metadata

    • @colinvwood added column filtering controls to the tabulate visualizer :level_slider:
  • q2-quality-control

    • @misialq migrated all of the human pangenome filtering actions from q2-annotate; they are now available in q2-quality-control (construct_human_pangenome_index and filter_reads_human_pangenome) :dna:
  • RESCRIPt

    • @SoilRotifer updated the get-gtdb-data action to include GTDB version 232 :satellite_antenna:
    • @SoilRotifer updated the get-pr2-data action to include PR2 version 5.1.1 :film_frames:
    • @SoilRotifer updated the get-eukaryome-data action:
      • now includes eukaryome 2.0 :microbe:
      • fixed :bug: that prevented downloading version 1.9.2, now referred to as 1.9 :man_bowing:
      • updated code to handle the extraction of sequences that may or may not be compressed in 7zip format :card_index_dividers:
    • @SoilRotifer updated the get-midori2-data action:
      • now includes MIDORI2 dbs: GenBank270_2026-02-15, GenBank269_2025-12-09, GenBank268_2025-08-14 :dna:
      • Also fixed file reading and writing from gzipped files :bookmark_tabs:
  • q2-taxa

    • @Macabe222 added support for FeatureTable[RelativeFrequency] tables to the filter-table action :trackball:
    • @Macabe222 added support for RelativeFrequency and Composition feature tables to the collapse action :hammer:
    • @Macabe222 added support for FeatureData[AlignedSequence] sequences to the filter-seqs action :soap:
    • @gregcaporaso added the taxonomy-to-metadata action that allows FeatureData[Taxonomy] to be converted to ImmutableMetadata, with one column per taxonomic rank. Cumulative level headers and custom delimiters are supported. :slot_machine:
  • q2-types

    • @Macabe222 sped up the validation of Kraken2OutputFormats :person_running::dashing_away:.
    • @Vinzent_Risch moved the Importance type and all associated formats and transformers from q2-sample-classifier to q2-types :telephone:
    • @ZuzanaSebb updated the eggnog collation actions to work with the inputs containing properties (contigs vs. MAGs) :nest_with_eggs:
    • @misialq / @cherman2 fixed a :beetle: where numeric sample IDs were ignored when partitioning SampleData[MAGs] :shushing_face:
  • q2-vizard

    • @lizgehret increased the legend length on all plots to accommodate longer group names ↔️(thanks for the suggestion @colinbrislawn :raising_hands:t3:)
    • @lizgehret added the following paired/quad color palettes into scatterplot and lineplot: category20, category20c, tableau20 :rainbow: (thanks for the suggestion @colinbrislawn :smiling_face_with_sunglasses:)

Docker Container Updates :jar:

  • @lizgehret added a weekly development build of the moshpit distribution to quay.io under the dev tag. 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 :rocket:

Documentation Updates :book:

Share:
Back to Blog