[Preview] QIIME 2 2025.4 development changelog

:exclamation: Important :exclamation:

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


:police_car_light: Important Announcements :police_car_light:

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 :boom:

@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 actions qiime feature-table filter-features and qiime feature-table filter-seqs.
  • decontam-score-viz will now generate a report with feature-id, Determination, P-score, Abundance, and prevalence, regardless if the representative-sequences object is passed into the action or not (blastable sequence link will still require the representative-sequences object).

Python Versioning :snake:

  • Target for 2025.10: Python
  • Target for 2026.4: Python

:bangbang: Breaking Changes :bangbang:

  • q2-rescript
    • the --p-version parameter of get-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.
  • 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 :counterclockwise_arrows_button:

Here are the highlights of the release! :sparkler:


qiime2.org updates :house:


QIIME 2 View Updates :mag:


QIIME 2 Library Updates :books:


QIIME 2 Forum Updates :page_facing_up:


Distribution Updates :package:

  • 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

Framework Updates :deciduous_tree:


Interface Updates :tv:


Plugin Updates :electric_plug:

Note: @lizgehret transitioned all plugins' Python setup files from setup.py to pyproject.toml :gear: 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 :hammer_and_wrench:

  • q2-annotate (formerly known as q2-moshpit)

    • @cherman2 fixed a :beetle: 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 :file_folder:
    • @lizgehret did a lot of great maintenance work :hammer_and_wrench:
    • DorielaGrabocka updated the search-orthologs-diamond action to use prodigal for gene prediction :gem_stone:
    • DorielaGrabocka added a new GenomeData[Loci] output to the search-orthologs-* actions which contains the GFF files with coordinates of genes identified by eggNOG mapper :round_pushpin:
    • @Vinzent_Risch introduced the following updates:
      • Added the possibility to use BUSCO metrics during MAG dereplication by the dereplicate-mags action :bar_chart:
      • Expanded the BUSCO directory format to allow additional lineage files included in the newer database versions :file_folder:
      • Updated the predict-genes-prodigal action to allow gene prediction on SampleData[Contigs] :dna:
      • Added a new filter-kraken2-results action to enable filtering of Kraken 2 reports and outputs :round_pushpin:
      • Expanded the get-feature-lengths action to allow length calculation from additional inputs (i.e.: FeatureData[Sequence], SampleData[MAGs], SampleData[Contigs]) :straight_ruler:
      • Renamed a bunch of inputs/outputs to ensure consistency between different actions :counterclockwise_arrows_button:
      • Fixed a :beetle: where the evaluate-busco action would mysteriously fail if no lineage dataset was provided.
      • Added completeness and contamination metrics to the BUSCO results :chart_increasing:
    • @SoilRotifer added the ability to fetch the GTDB Kraken2 database :globe_with_meridians:
    • @misialq introduced the following changes:
      • Disabled the estimate-bracken action on macOS due to the underlying Bracken version not being available through conda :red_apple:
      • Added the nt_core Kraken 2 database to the list of downloadable databases available through the build-kraken-db action :globe_with_meridians:
      • Added SampleData[Contigs] to the list of allowed inputs to the estimate-abundance action :dna:
      • Renamed a couple of actions :pencil::
        • estimate-mag-abundance :right_arrow: estimate-abundance
        • eggnog-annotate :right_arrow: map-eggnog
        • eggnog-diamond-search :right_arrow: search-orthologs-diamond
        • eggnog-hmmer-search :right_arrow: search-orthologs-hmmer
      • Fixed a :bug: 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.
  • q2-assembly

    • @misialq introduced the following changes:
      • Updated supported spades version to 4.0 :up_arrow:
      • Introduced a new filter-contigs action to allow filtering samples based on the contig content :round_pushpin:
      • Removed the meta option from the assemble-megahit action presets :bug:
    • @lizgehret did a lot of great maintenance work :hammer_and_wrench:
    • @Vinzent_Risch renamed a bunch of inputs/outputs to ensure consistency between different actions :counterclockwise_arrows_button:
  • q2-composition

    • @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 presented :bar_chart: The 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.
  • q2-cutadapt

    • @colinvwood added parameters that allow unconditional removal of bases from the beginning and ends of reads to the trim-single and trim-paired actions :scissors:
  • q2-feature-table

    • @Vinzent_Risch added the ability to pass a random seed to rarefy, supporting improved reproducibility. :chestnut:
    • @Vinzent_Risch added a new action, normalize, which supports normalization of FeatureTable[Frequency] artifacts with common RNA-seq methods (using RNAnorm under the hood). :abacus:
  • q2-quality-control

    • @jordenrabasco improved the input validation, error messages, and help text for the decontam-identify-batches method :card_file_box:
  • q2-quality-filter

    • @colinvwood updated theq-score action to now process and return paired end reads :dna:
    • @colinvwood modified the q-score action to allow parallel execution, making the action feasible for use with larger datasets, such as metagenomic ones
  • q2-rescript

    • @SoilRotifer added the options --p-keep-primer-location and --p-no-keep-primer-location to the trim-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 GTDB Primary or Mirror site.

    • @SoilRotifer the --p-version parameter of get-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. :bangbang: This is a breaking change!:bangbang:

    • @Nicholas_Bokulich added the action orient-reads. This action is similar to the existing orient-seqs action, except that it can handle the following types: SampleData[PairedEndSequencesWithQuality], and SampleData[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. :compass:

  • q2-types

    • @misialq fixed a :beetle: where the MANIFEST file in SampleData[MAGs] artifacts generated by the collate-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 :scroll:
    • @cherman2 added a distance-matrix to pd.Series transformer :newspaper: This should make exploration of qiime2 distance-matrices in python easier :microscope:
    • 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 :paperclips:
  • q2-vizard

    • @lizgehret made the following improvements:
      • Minor cosmetic improvements to all plots :lipstick:
      • Added an includeZero checkbox for scatterplot, lineplot, and boxplot :white_check_mark:
      • Added a scroll bar for resizing circular marks in scatterplot, lineplot, and boxplot :o:
      • Added a color palette drop-down for scatterplot, lineplot, and boxplot :rainbow_flag:
      • Modified the y_measure to be an optional input in lineplot :chart_with_upwards_trend:
  • q2-vsearch

    • @colinbrislawn added support for newer versions of the uchime_denovo algorithm to the vsearch uchime-denovo action, namely uchime2_denovo and uchime3_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 and qmaxout parameters to merge-pairs, enabling users to override these values when merging paired end reads with vsearch.

Community Plugin Updates :electric_plug:


Documentation Updates :open_book:


Docker Container Updates :jar: