The QIIME 2 2020.2 release is now available! Thanks to everyone involved for their hard work!
As a reminder, our next planned QIIME 2 release is scheduled for late May 2020 (QIIME 2 2020.5), but please stay tuned for updates.
Check out the QIIME 2 2020.2 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 within the next week - watch this topic thread for an update!
BREAKING CHANGES 
- q2-alignment
mafft:0is no longer an acceptable value forn_threads. Please specifyautoinstead.
- q2-phylogeny
fasttree:0is no longer an acceptable value forn_threads. Please specifyautoinstead.iqtree:0is no longer an acceptable value forn_cores. Please specifyautoinstead.iqtree_ultrafast_bootstrap:0is no longer an acceptable value forn_cores. Please specifyautoinstead.align_to_tree_mafft_fasttree:0is no longer an acceptable value forn_threads. Please specifyautoinstead.
- q2-gneiss
balance_taxonomy: this visualizer has been removed.ols_regression: this visualizer has been removed.lme_regression: this visualizer has been removed.
Highlights
- QIIME 2 Framework
- @David-Rod added a new check to better handle misconfigured timezones in a QIIME 2 environment. If QIIME 2 and tzlocal are unable to determine the machine's current timezone (or, if it determines that there are multiple conflicting definitions), QIIME 2 will fall back to using UTC as the timezone when stamping out provenance.

- @thermokarst added a new type-checking utility
is_metadata_column_type.
- @ebolyen & @thermokarst revised the way that plugins are registered on an instance of
PluginManager- it is now possible to register plugins on-demand, which can be particularly helpful for testing and development.
- @thermokarst & @ebolyen added a new Usage API, allowing plugin developers to register interface-agnostic usage examples as part of their plugins. We are still working on interface support for this, so while the API exists, it is of limited utility at the moment - keep your eyes peeled for a full launch later this year!

- @ebolyen fixed a minor issue with
parse_primitivewhich caused incorrect coercion on some TypeMaps.
- @David-Rod added a new check to better handle misconfigured timezones in a QIIME 2 environment. If QIIME 2 and tzlocal are unable to determine the machine's current timezone (or, if it determines that there are multiple conflicting definitions), QIIME 2 will fall back to using UTC as the timezone when stamping out provenance.
- docs
- @fedarko fixed a typo in the Overview Tutorial!

- The gneiss tutorial has been updated to reflect the breaking changes noted above.
- @thermokarst added a tutorial demonstrating common utility functions in QIIME 2.

- @fedarko fixed a typo in the Overview Tutorial!
- q2view
- @ebolyen remove some logic that was limiting certain requests from happening, these checks were intended as part of a broader plan of work that has yet to be tackled

- @ebolyen remove some logic that was limiting certain requests from happening, these checks were intended as part of a broader plan of work that has yet to be tackled
- q2cwl
- @David-Rod corrected a bug that prevented q2cwl from handling primitive union types. q2cwl can once again render all QIIME 2 actions as CWL tools.
(Note: this QIIME 2 interface is not part of the standard distribution, and must be installed separately at this time.)
- @David-Rod corrected a bug that prevented q2cwl from handling primitive union types. q2cwl can once again render all QIIME 2 actions as CWL tools.
- q2-emperor
- @mortonjt added a
--p-invertflag to thebiplotvisualizer which allows you to swap arrows and points (useful for exploring microbe-metabolite data). - Updated the dependencies to the latest release of Emperor (1.0.0
) . - Fixed a bug that would fail to produce the SVG legend for a plot.
- Fixed a bug that caused the table of categories to only update when the window was resized.
- Fixed a bug that would create duplicated axes when changing visible dimensions.
- @mortonjt added a
- q2-sample-classifier
- @jwchen fixed a graphical glitch which would cause the legend of the confusion matrices to be repeatedly plotted when executed multiple times in the Artifact API.
- @ChrisKeefe cleaned up the
heatmapvisualizer to better handle a variety of matrix sizes!
- @Oddant1 optimized and modularized unit tests.
- @Oddant1 added a type check to change the data type of the
confusion_matrixprediction values to match the data type of the truth values.
- q2-demux
@EmFord (GH)added an additional suggestion (modifying the new golay correction parameter) to the error that occurs ifemp-single/emp-pairedare unable to map any reads.
- q2-feature-classifier
- @David-Rod created a much nicer error message for when
classify-sklearnruns out of memory (a common occurrence). - @Oddant1 added a new
extract_readsparameter:read_orientation! This allows the user to specify the orientation of the primers relative to the sequences.

- @Nicholas_Bokulich added
maxhits,maxrejects,output_no_hits, andweak_idparameters toclassify-consensus-vsearchandclassify_hybrid_vsearch_sklearn
- @David-Rod created a much nicer error message for when
- q2-phylogeny
- @SoilRotifer added the pipelines align-to-tree-mafft-iqtree and align-to-tree-mafft-raxml . These are similar to align-to-tree-mafft-fasttree, but uses IQ-TREE / RAxML for phylogenetic inference.
- The
--parttreeoption was only addedalign-to-tree-mafft-fasttreeand thealign-to-tree-mafft-raxmlpipelines. This option addresses the case for which alignments of over 1 million reads are requested.
- The
BREAKING
@thermokarst changed the allowed values for the several method method's n_threadsandn_coresparameters fromInt % Range(0, None)toInt % Range(1, None) | Str % Choices(['auto']). This disallows the use of the value0for specifying automatic number of threads/cores, instead, users should use the valueautoinstead.
- @SoilRotifer added the pipelines align-to-tree-mafft-iqtree and align-to-tree-mafft-raxml . These are similar to align-to-tree-mafft-fasttree, but uses IQ-TREE / RAxML for phylogenetic inference.
- q2-alignment
BREAKING
@thermokarst changed the allowed values for the mafftmethod'sn_threadsparameter fromInt % Range(0, None)toInt % Range(1, None) | Str % Choices(['auto']). This disallows the use of the value0for specifying automatic number of threads, instead, users should use the valueautoinstead.
- q2-dada2
- @Oddant1 fixed up the description text in the
denoise_pairedmethod to reflect the new minimum overlap of 12 nts, verus the older 20 nt requirement. This change isn't new, we just forgot to update the help text!
- @Oddant1 fixed up the description text in the
- q2-deblur
- @thermokarst fixed a regression
that caused q2-deblur to explode on certain sample ID schemas. 
- @thermokarst fixed a regression
- q2-types
- @David-Rod fixed a bug that prevented the
CasavaOneEightLanelessPerSampleDirFmtformat from being used.
- @Oddant1 Improved error message when invalid characters are found in DNAFASTAFormat
- @David-Rod fixed a bug that prevented the
- q2-longitudinal
- @Nicholas_Bokulich fixed a bug in the
pairwise-differencesaction that prevented the user from successfully generating a t-value when there is no between-group variance.
- @Nicholas_Bokulich fixed a bug in the
- q2-composition
- @thermokarst fixed a minor bug that caused the
ancomvisualization's mouseover to break.
- @thermokarst fixed a minor bug that caused the
- q2-gneiss
BREAKING
@thermokarst removed three deprecated visualizers: balance_taxonomy,ols_regression, andlme_regression.
- q2-quality-control
@gwarmstrong GHadded a newexclude_seqsparameter for use withvsearch:left_justify! This allows the user to reject matches if the pairwise alignment starts with gaps.
- qiime2.org
- @David-Rod added a link to our Community Code of Conduct!

- @David-Rod added a link to our Community Code of Conduct!
- Misc.
- @David-Rod updated the licenses and copyright headers for the QIIME 2 project repositories to reflect the new year!
- @Oddant1 brought the latest version of
matplotlibinto the standard distribution!
Happy QIIME-ing! ![]()