QIIME 2 2021.11 is now available!

The QIIME 2 2021.11 release is now available! Thanks to everyone involved for their hard work!

As a reminder, our next planned QIIME 2 release is scheduled for February, 2022 (QIIME 2 2022.2), but please stay tuned for updates.

Check out the QIIME 2 2021.11 docs for details on installing the latest QIIME 2 release, as well as tutorials and other resources. Get in touch on the QIIME 2 Forum if you run into any issues!

Virtual machine builds will be available sometime next week - watch this topic thread for an update!

Here’s the highlights of the release:

  • QIIME 2 Framework
    • We are really excited to formally announce the release of the new QIIME 2 Usage API! This is a set of tools targeting developers :keyboard: and documentation writers :books:, that will allow them to write interface-agnostic "usage examples" - snippets of code that different QIIME 2 interfaces can turn into meaningful interface-specific examples! Speaking of examples, here is a simple one, this demonstrates how to merge two feature tables using q2-feature-table:

      q2cli:

        qiime feature-table merge \
          --i-tables feature-table1.qza feature-table2.qza \
          --o-merged-table merged-table.qza
      

      Python 3 API:

      import qiime2.plugins.feature_table.actions as feature_table_actions
      
      merged_table, = feature_table_actions.merge(
          tables=[feature_table1, feature_table2],
      )
      

      The Usage API code that generated both of the interface-specific examples above is here:

      # ft1_factory and ft2_factory are functions defined elsewhere that
      # create data for this example.
      
      def feature_table_merge_example(use):
          feature_table1 = use.init_artifact('feature_table1', ft1_factory)
          feature_table2 = use.init_artifact('feature_table2', ft2_factory)
      
          merged_table, = use.action(
              use.UsageAction('feature_table', 'merge'),
              use.UsageInputs(tables=[feature_table1, feature_table2]),
              use.UsageOutputNames(merged_table='merged_table'),
          )
      

      So with one code snippet, plugin developers and tutorial authors can now write examples that users will be able to review and use in the interface :tv: of their choosing!
      We ported the Moving Pictures Tutorial to this new system, here is a quick preview of what users can expect to see:

      If you're interested in learning more, we have brand new developer documents. Also, here is the Moving Pictures Tutorial source, as well as an example of how to write and register Usage examples within an existing QIIME 2 Plugin.

  • docs
    • A brand new Usage API enabled version of the Moving Pictures tutorial is now available as a beta preview - in future release we plan to update the remaining tutorials as well! :dog:
  • q2cli
    • @ebolyen adjusted the terrible dark blue text to a nicer light blue color to reduce the incidence of eye bleeds amongst users of the default dark terminal color scheme. :no_entry_sign: :eye::drop_of_blood:
    • @Keegan-Evans and @lizgehret added assert-result-type, assert-result-data, and some waffles :waffle: to the dev tools. At-least two of those things anyways.
    • q2cli now has full support for Usage API - you can see Usage examples for any actions that have any (which admittedly isn't many, but more soon!) by running --help on your favorite command. An example:
      qiime feature-table merge --help
      ...
      Examples:
        # ### example: basic
        qiime feature-table merge \
          --i-tables feature-table1.qza feature-table2.qza \
          --o-merged-table merged-table.qza
      
        # ### example: three tables
        qiime feature-table merge \
          --i-tables feature-table1.qza feature-table2.qza feature-table3.qza \
          --p-overlap-method sum \
          --o-merged-table merged-table.qza
      
    • You can also save example data (--example-data) to run these commands with!
      qiime feature-table merge --example-data example_data
      Saved FeatureTable[Frequency] to: example_data/basic/feature-table1.qza
      Saved FeatureTable[Frequency] to: example_data/basic/feature-table2.qza
      Saved FeatureTable[Frequency] to: example_data/three-tables/feature-table1.qza
      Saved FeatureTable[Frequency] to: example_data/three-tables/feature-table2.qza
      Saved FeatureTable[Frequency] to: example_data/three-tables/feature-table3.qza
      
      Now you have data that can be used to "test out" the examples that are shown in the help text!
  • q2-demux
    • @wasade added a test for barcode trimming :scissors: with the reverse :previous_track_button: complement and moved the trimming logic to occur prior to the reverse complement.
  • q2-diversity

Happy QIIMEing! :turkey: :pie: :sweet_potato:

16 Likes

2 off-topic replies have been split into a new topic: align-to-tree-mafft-fasttree questions

Please keep replies on-topic in the future.

Hi folks! The moment you've been waiting for has arrived! :partying_face: QIIME 2 virtual machines are now available! :computer: :fireworks:

5 Likes

An off-topic reply has been split into a new topic: how to add example data to a plugin?

Please keep replies on-topic in the future.