[Preview] QIIME 2 2021.8 development changelog

QIIME 2 2021.8 has been released!
Please see the official changelog for more details.

Original content of post

:exclamation: Important :exclamation:

The following is an early developer preview of the changes expected in 2021.8

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.

Important Developer Information

Dates (please keep an :eye: on this post, these :calendar: might change):

  • PRs must be submitted by: 2021-08-09T07:00:00Z
  • PRs must be merged by: 2021-08-30T07:00:00Z
  • Repo Freeze and Package Building: 2021-09-09T07:00:00Z
  • Release Day: 2021-09-10T07:00:00Z

Developer Project Board: https://github.com/orgs/qiime2/projects/27

:exclamation: BREAKING CHANGES

  • q2-sample-classifier
    • @adamova created the SampleData[TrueTargets] Semantic Type, allowing for the output of target metadata from split_data and classify_samples.

Please update scripts, workflows, etc. as appropriate. Stuck? Reach out here on the forum for help.

Here’s the highlights of the release:

  • QIIME 2 Framework
    • @lizgehret updated the .save() method on the Artifact, Visualization and Metadata classes, that now contains the ext argument, which takes string values as input. Default values (if left blank) for each class are as follows:
      Metadata: blank
      Artifact: .qza
      Visualization: .qzv
      Additionally, Metadata.save() will now return the filepath (including optional extension), just as Artifact and Visualization classes currently do.
    • @Keegan-Evans, @lizgehret, and @ebolyen have added functionality that allows for Semantic Validation in addition to the current format validation. This allows for the validation of data based on the content and expected use of the data. It should help prevent the proliferation of formats (and maybe even allow for future reduction in formats :wink:).
    • @Keegan-Evans found and fixed a little bug in the normalization routine for Unions :dancer:
    • @Oddant1 and @ebolyen added support for async action execution to the Usage API - sweet! :cherries:
    • @ebolyen fixed a :beetle: in method.signature.decode_parameters. Thanks for catching this one @John_Chase! :grin:
    • @ChrisKeefe added confirmation for how from_checksum_format() handles leading-backslash filepaths.
  • library
  • docs
    • @lizgehret updated the OTU Clustering tutorial segment regarding 'Closed Reference Clustering' to accurately reflect the file outputs (one artifact of data type: FeatureTable[Frequency] and two artifacts of data type: FeatureData[Sequence]).
    • @lizgehret updated the q2studio installation guide to resolve an npm install package dependency issue that was reported on the QIIME 2 forum.
    • @Nicholas_Bokulich updated the Data References page to include the RESCRIPt pre-print citation, slightly adjusted the description and references for the weighted classifiers, and cited the references listed for the unweighted classifiers.
    • @lizgehret and @Oddant1 updated the Metadata page to include details on qiime tools cast-metadata for casting metadata column types directly from the q2cli command line. They also added a full length tutorial on how to use this tool under the Utilities page.
    • @andrewsanchez fixed up a few misc typos in the PD :mouse: tutorial! :man:
    • @thermokarst added a new command to allow for command block errors: allow-error. This will be a helpful addition for any docs that should display a command block with an associated error (rather than running a command successfully).
  • workshops
    • @thermokarst updated the details on our workshop request contact information :bookmark_tabs:.
  • q2cli
    • @lizgehret and @Oddant1 implemented a new :hammer_and_wrench: : qiime tools cast-metadata, which allows users to cast metadata columns to new q2:types (either categorical or numeric) directly through the command line. This will allow users to programmatically override the automatically selected q2:types without resorting to tools like sed.
  • q2-feature-table
    • @antgonza updated the logic for the summarize viz to limit the number of bins when generating histogram plots. This helps reduce the runtime of the viz and memory requirements :brain:.
  • q2-diversity
    • @crusher083 made an update to beta correlation: mantel() in _visualizer.py previously opened up an instance of plt.Figure() and doesn't close it, consuming memory. They added a line to close the instance and free up memory after saving. :nerd_face:
    • @ChrisKeefe fixed the for more information :link: within the Adonis docs that was previously broken.
  • q2-diversity-lib
    • @lizgehret updated the Conda recipe with Python under the run requirements, to ensure compatibility when installing directly through conda install.
  • q2-phylogeny
    • @lizgehret fixed a :bug: within the align_to_tree_mafft_fasttree method. Previously, when the n_threads argument was set to 'auto', the OMP_NUM_THREADS environment variable would be set to 1 (rather than the max number of threads available on a user's machine). This has been resolved, and now when n_threads is set to 'auto', the max number of :thread:s are used.
    • @jwdebelius added a method to filter a phylogenetic :evergreen_tree: so a set of tips match an input feature table. :partying_face: The syntax and outputs are pretty much a cognate of filter-table.
  • q2-sample-classifier
    • @adamova added the ability to allow for training against the full dataset! :cheese:
  • q2-types
    • @qiyunzhu added a new Semantic Type: FeatureData[BLAST6]. The support for BLAST search result format will be useful to several potential functions within the :qiime2: framework. Many sequence aligners such as BLAST, DIAMOND, VSEARCH, use this layout.

Hey all, I'm going to push the release back a week - I'm wrapping up some changes to Library right now that will be used for the release, and I want to give us a little extra runway space to land this thing, while also tackling any outstanding PRs in our queue. Thanks for your patience!


@ebolyen, @Keegan-Evans, @lizgehret, and myself are busy putting the finishing touches on our little Library project - we can't wait to share this with y'all! In the meantime, the release will be postponed a bit - we will be using this new Library infrastructure to build and distribute the release, so things have to be finalized there before we can get around to building and shipping! Hopefully we'll get it out late next week - stay tuned. Thanks for your patience!