# QIIME 2 2019.4 is now available!

**URL:** https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513
**Category:** Announcements
**Created:** [May 3, 2019, 6:28pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513 "2019-05-03T18:28:14Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![q2d2](https://forum.qiime2.org/user_avatar/forum.qiime2.org/q2d2/32/613_2.png) [@q2d2](https://forum.qiime2.org/u/q2d2)
#### Post date: [May 3, 2019, 6:28pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/1 "2019-05-03T18:28:14Z")

</div>

The QIIME 2 2019.4 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 July 2019 (QIIME 2 2019.7), but please stay tuned. Other proposed releases this year include:

- QIIME 2 2019.7
- QIIME 2 2019.10

Check out the [QIIME 2 2019.4 docs](https://docs.qiime2.org/2019.4/) for details on installing the latest QIIME 2 release, as well as tutorials and other resources. Get in touch on the QIIME 2 forum 2 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](https://github.com/qiime2/qiime2)
  - @ChrisKeefe fixed a bug caused by invalid primitive arguments 3️⃣🙅‍♂️. Expanded type mismatch error messages to better describe various invalid-input situations. 🗣
  - @ChrisKeefe fixed some pretty confusing language in the `SemanticType` docstring.
  - [`@Sleightly (GH)`](https://github.com/Sleightly/) has added a new SDK utility named `build_graph` to `qiime2.sdk.actiongraph`. This will generate a directed NetworkX graph of QIIME 2 plugin actions and types. The graph is bipartite, with types on one conceptual side, and actions on the other. Edges between them indicate parameters.
  - The implementation of QIIME 2 types has been reworked by @ebolyen 🥋 . Some minor changes include:
    - `Properties(['a', 'b'])` =\> `Properties('a', 'b')`
    - `Range(X, None)` can be optionally written as `Start(X)` (it is converted to a `Range`)
    - `Range(None, X)` can be optionally written as `End(X)` (also converted to `Range`)
    - `Choices({'a', 'b'})` =\> `Choices('a', 'b')` (this means order is now retained as well)

  - Unions of primitive types are now possible, thanks to @ebolyen! This means you can create a plugin with a parameter such as: `Int % Start(0) | Str % Choices("ALL", "SOME", "NONE")`
  - Intersection (`&`) of types is now possible 🛑 however most intersections will result in a "bottom" type - thanks for that, @ebolyen! (This operator is primarily for implementing internal type solving algorithms.)
    - real intesection: `Start(0) & End(10)` =\> `Range(0, 10)`
    - contradiction: `FeatureTable[Frequency] & Phylogeny[Rooted]` =\> `UnionExp([])` (an empty union is the smallest, emptiest, type in QIIME 2)

  - The framework now supports different output types based on the received input type 🍇 . This feature is called `TypeMap` (and it has a sibling `TypeMatch`, and was created by @ebolyen):
    - This allows expressions such as:

```python
T, P, R = TypeMap({
    (TypeA, Bool % Choices(True)): OutputA,
    (TypeB, Bool % Choices(False)): OutputB
})

```

    - For a direct example of TypeMatch, see implementation for [feature-table filter-samples](https://github.com/qiime2/q2-feature-table/blob/163e838ea29c3416fb5c14f1ef1cc2f2fc81b921/q2_feature_table/plugin_setup.py#L239).

  - A utility to parse a type from the result of a `to_ast()` call now exists: `qiime2.sdk.util.type_from_ast`. This and `parse_type` are now significantly faster as loading plugins are no longer required to reconstruct the type. `type_from_ast` is capable of completely reconstructing a `TypeMap`.
  - @thermokarst added a new utility to `qiime2.sdk.util` named `parse_primitive` which takes on the role of `<sometype>.decode(val)`, however it can handle collection types of varying style.
  - Other type utilities exposed in `qiime2.sdk.util` include: `is_semantic_type`, `is_primitive_type`, `is_metadata_type`, `is_visualization_type`, and `interrogate_collection_type`.

- [Library](https://library.qiime2.org)
  - @thermokarst fixed a bug that prevented admins from editing plugins (due to an over-specified database rule).

- [docs](https://docs.qiime2.org/2019.4)
  - @Nicholas_Bokulich fixed a typo in one of the overview tutorial images.
  - @Nicholas_Bokulich added an example using `q2-sample-classifier`'s new `heatmap` pipeline to the `q2-sample-classifier` tutorial. 📑

- [dev-docs](https://dev.qiime2.org/latest/)
  - @ChrisKeefe busted out his editor's red pencil on the dev docs.
  - @cduvallet updated the plugin development tutorial to reflect the latest versions of the packages used in the document! 🗃

- [q2cli](https://docs.qiime2.org/2019.4/interfaces/q2cli/)
  - @epruesse cleaned up the `--version` output when looking at a plugin's details! 🌸
  - @ebolyen put many hours of blood (💉), sweat (💦), and tears (😢) into cleaning up the q2cli experience, changes include:
    - `--cmd-config` has been removed (it was underdocumented and added a lot of complexity). We encourage users of QIIME 2 who need programmatic control to use the Python API instead which is significantly more flexible.
    - `--py-packages` has been removed from `qiime info` (it was already broken). Use `conda list` instead. 🐉
    - `--output-dir` and `--o-<name>` options now ensure the path is _writable_ before executing the command. ✍
    - `--output-dir` no longer creates the directory before running the command. This means no more `rm -rf`'ing because there was a typo in a different parameter. 📂
    - The underlying parser has been significantly improved. The following is now possible:
      - Missing arguments will now be recognized instead of swallowing the next option (very confusing for beginners). 😮
      - `--help` is now "hyper-greedy", if it appears anywhere in the command, the help text will be shown (no matter how many errors exist otherwise).
      - Options that are repeatable may also now receive an arbitrary number of arguments:

```bash
--p-something 1 --p-something 2 --p-something 3

```

can now also be written as:

```bash
--p-something 1 2 3 # the original form is still supported

```

This means that shell-expansion (like `*.qza`) will become more useful:

```bash
qiime feature-table merge --i-tables dada2-outputs/*.qza ...

```

    - The CLI cache is now optimistically 🦋 stored in your conda environment. If q2cli is not running in a conda environment, then it will fall back to `XDG_CONFIG_HOME` as before. This means that switching between multiple QIIME 2 installations will not constantly refresh the cache.
    - `difflib` is now used to recommend options when a typo is made in a command. 🤷‍♀️
    - Error handling has been made significantly more consistent between plugin commands and builtins (such as `tools`, `dev`, and `info`):
    - Errors are now enumerated. Parsing errors such as malformed commands will be re-parsed multiple times to collect as many errors as q2cli can (these are an incomplete list, and will be printed as `(1/5?)` instead of `(1/5)`) 💯
    - In order to support TypeMap, the `--help` text has a new layout system which includes the QIIME 2 type whenever relevant (this is especially helpful for ranged primitives). TypeMaps are indicated with a superscript number which will match between inputs and outputs. (In the future, a table may be a better way to represent this).
    - Help text is now colorized to improve readability 🌈 :

https:/uploads/qiime21/original/2X/c/c83b5c662898d9addfee797017d1e087171042b8.webm

- [q2-diversity](https://docs.qiime2.org/2019.4/plugins/available/diversity/)
  - @thermokarst fixed a bug 🐛 in the `adonis` visualizer that prevented some metadata headers from working as expected.
  - @Nicholas_Bokulich fixed a bug in the `adonis` visualizer that caused an error if metadata values contained single quotes (e.g., apostrophes). 🦋
  - @Nicholas_Bokulich fixed a typo in the `adonis` visualizer help text. ⚗

- [q2-longitudinal](https://docs.qiime2.org/2019.4/plugins/available/longitudinal/)
  - @Nicholas_Bokulich added a new `anova` visualizer to the plugin! 🎉
  - The heatmap generated by `maturity-index` can now be controlled to limit the number of important features displayed. (Thanks @Nicholas_Bokulich!) 🚒

- [q2-deblur](https://docs.qiime2.org/2019.4/plugins/available/deblur/)
  - @thermokarst added a new `left_trim_len` parameter to the denoising methods of this plugin! 🚵‍♂️

- [q2-demux](https://docs.qiime2.org/2019.4/plugins/available/demux/)
  - Fixed the per-sample sequence count table layout (that thing sure was bothering @ChrisKeefe!) 🍥
  - @wasade brought Golay barcode correction to `emp-single` and `emp-paired` - the future is _now_! ⚾

- [q2-cutadapt](https://docs.qiime2.org/2019.4/plugins/available/cutadapt/)
  - @thermokarst added a new `minimum_length` parameter to `trim_single` and `trim_paired`! ✂
  - The ability to `discard_untrimmed` reads has been added to `trim_single` and `trim_paired` by @thermokarst. 🍇
  - @thermokarst fixed a bug related to too many files being opened when demuxing datasets with many samples in it. Check out the new `batch_size` parameter on `demux-paired` and `demux-single` to control how many samples are demultiplexed at a time! 🥦
  - @ChrisKeefe & @thermokarst added support for dual-index demultiplexing! This functionality is enabled by preparing a second column in your Metadata file that contains the barcodes for the reverse reads. Check out [the docs](https://docs.qiime2.org/2019.4/plugins/available/cutadapt/demux-paired/) for more info!

- [q2-feature-classifier](https://docs.qiime2.org/2019.4/plugins/available/feature-classifier/)
  - @BenKaehler & @Nicholas_Bokulich updated the default value for the `reads_per_batch` parameter, in an effort to reduce memory usage! 🧠

- [q2-sample-classifier](https://docs.qiime2.org/2019.4/plugins/available/sample-classifier/)
  - @Nicholas_Bokulich added a `heatmap` pipeline to display the (normalized) abundances of predictive features per sample or per group, using `FeatureData[Importance]` scores output by supervised classifiers and regressors. 🧯
  - @Nicholas_Bokulich updated the citation information to include the report describing this plugin in the Journal of Open Source Software.

- [q2-feature-table](https://docs.qiime2.org/2019.4/plugins/available/feature-table/)
  - [`@gwarmstrong (GH)`](https://github.com/gwarmstrong) added a feature to allow disabling of clustering on both the sample and feature axes when creating a `heatmap`! 🔥
  - `merge-taxa` now supports multi-column `FeatureData[Taxonomy]` artifacts, e.g., to preserve classification confidence scores in the merged output. (thanks @Nicholas_Bokulich) 👹
  - @turanoo overhauled the interactive even-sampling depth visualization --- it is now built with [vega](https://vega.github.io/)! There were several improvements/bugfixes related:
    - Sample count summaries for each metadata group are now displayed in the plot
    - SVG and PNG exports are enabled for the plot
    - The visualization can be customized in the interactive vega editor
    - A bug related to scrolling in the visualization's tabs was fixed

  - As a result of TypeMap, it is now possible to filter out samples (`feature-table filter-samples`) of feature tables with the variant types of: `RelativeFrequency`, `PresenceAbsence`, and `Composition` (`Frequency` is of course still supported). The output type will match the input type provided.

- [q2-quality-control](https://docs.qiime2.org/2019.4/plugins/available/quality-control/)
  - @Nicholas_Bokulich fixed a bug in `evaluate-composition` that caused linear regression R values of zero to be reported when observed and expected feature tables contain only a single observation at any taxonomic level. (the correct answer is no R value should be reported). 🐛

- [q2-dada2](https://docs.qiime2.org/2019.4/plugins/available/dada2/)
  - @benjjneb updated this plugin to use DADA2 1.10 - users can expect to see speed improvements from 2x to 20x! 🏎 🔥 🍠! Check out the [DADA2 docs](https://benjjneb.github.io/dada2/) for more details on this version of DADA2.

- [q2-emperor](https://docs.qiime2.org/2019.4/plugins/available/emperor/)
  - This plugin now uses the latest version of emperor (`1.0.0-beta.19`)
  - Miscellaneous bug fixes: 🐛
    - Fixes a bug where re-centering the camera wouldn't re-center the view.
    - Fixes a bug where two dimensional plots would fail to load.
    - Fixes a bug where sample metadata would fail to load if only sample identifiers were included.

  - Experimental support for exporting 2D [vega plots](https://vega.github.io/vega/) has been added by @thermokarst ! This is currently only available for a subset of the [available plot types](https://docs.qiime2.org/2019.4/plugins/available/emperor/plot/), and can be accessed through the menu:  
 ![image](https://forum-qiime2-org.s3.dualstack.us-west-2.amazonaws.com/original/2X/d/d26bad33adacce4729b6272d7210c6f049f07f39.png)  
Any customization to the 3D plot should be inherited in the vega plot. For example, here is a customized 3D plot:  
 ![image](https://forum-qiime2-org.s3.dualstack.us-west-2.amazonaws.com/original/2X/f/f2748bbb42e39670a82141fbce97771578edb0ef.png)  
And here is the [2D vega version](https://vega.github.io/editor/#/url/vega/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6SgFY6AK1jcAdpAA04KIXQATVYxnVsYUYoiR26eAGtqAJ26sZqnZADEAM2cuFSyPFmPG2nKAgG6AAejLA6wJAANujsyJEAwtyR3OZ29gAMmVkKUHjMkciJyak4DlnZAL76AZB5eAXhHkkpaeWZkBVKVe51DaUAoqiEyJbmYAAKiQCCbgaq6HiYOADaShD+AQYy6KjIdruL84uzm1AU6JGsyGEra6cbpzUAyjuEBQCSACJ2ADIAjE8-ulRCdHgYAELocyeVTIJ7IACOVxk8D2pSmAHEACoY+IYqY4vFY0FgyA-TQmEbjcyMXbmeFI5AotFQbG4+KY+IAWXZuIx2KmM2qYKg4O4qgAnk9mCzINRWHgSY9IABNZBQuwAJkyAE46OkladIFzZCw7ABmfWGzaQT7oCV2P4AditwtJTw4EmQ8EVpVgnu9eAAtH9rTUAErIQgpPDIVRTGR5dg8PLwACqsHQ1FlADluGGDHaJbBpcz+kFhjTdomnotzL6oH8ACzpV13ZWfa7wGmEPKyOz+9hen0hhgKuja9I6oPmkNOyDtgLdEUPd2vD7fUr-QEtguiqEwuGI5GouwE-kc3FY+JYoWLm3kmSU8zU2kjBkn2Vs+KX7m8vECneIoQuKUoynY8qKm6ypqhqpSTgAHG2wFQCaiaII6rYGtBRpFlqSHYfezwBj6A4kcGmp7pAkbRvWcYJkmKaMOmmbZnYaphDhNpFiWmiouWlZvjWdYNpAWFUZ2CA9n2ch+uRQaamOeATpkCEhukCkIQuIrLmCq7Ki8Qwbr8ALalpXE1JC0LikejLMnYN74vit54niVGPs+r50h+TKnqU36-jyP58oBVFipK0qxhBCpUbBJRQJOeqEShxqmhhpR-MhwG2vaWriRZBgekOgZkcVI6UQVUA0TG9GJowybcKmGZZrm+aVTlxalvxFYjEJeC1lCokIU2WUiraXbSTwslQIOw4UUpKlTiGCkGkRumPPpRqGW8yBfCZTyaqI87tVZh4+fZpTBVMjmYue7kUlSVbvsevlfoSgX-vyt5Adl4VgVFpSQbF6rxZAiWjaSaFmqUlrJdleEZS6cNjUVc2lXNClUdVdHxnVDVNaxrUSfavFlj1T3CYNjothDHYTYwvZTejgYKQtiUznO2lgut9xEYV667ZuUDbpqCGhidB42edflQD+17XmyBLxPdT6PW+9IvRdrLvZyQWuV9gphaBkWykD7VxXlU600aUPpVAI3I6SCONg7VGoyVcllRRWNRjVuOMY1zHNWxpR5sTnV8cgAm9dW-UiY6ABsBESfTjP9p7GOKZBi3Tk2IZNlzjw85sm02ttxlbgCR1hZLsLS7K12Nze564irnlPRrdky5AAW659oUncb4GAzF5sg5bSVUbbjrW9xuXwflfNQO7pEZyz4tL9Rvs4wx9VMSxLV2GH7U8V1Ufk31A31nYw2zzUkndgzMnMyOmXZ+zfwrYXpzFwEpfPALPalcnhOgTjXayddNbd2ui5NkOJsRtzVt5KBb12R92CgBb6RsIrDygGbTeFsF5W0dsqae8E76Fnno2JGbtyIv2DBvFK2NYz+z3oHA+IcoDH03qfSO0cKZxyphlP4ikSG4VTs-Ner82a6gUpzNaFl-78yMoLfa5lN6nSligs8V58TN2xMrdqHkkHPS7qgn86D9YDw0UPAGeDR4EPHkQ5O7UyGNkXilZ2YMXGbxXqJWa68fa0RYbvfGQdCbsWuOHUm3VBKxyvqJDx8MJFMykQwmR6Q1JAk0t-TYv91i+MAULMkmpASiBBBLCBtlPxnjxOeOpFjEEvg7vXOwvdcR6xClgweOC7FRGQI4PAYAVCRFQMDOCCVdQUNQmlGeYi54OgXtMyAfj6EhiCX7UJ+9g5ExPiTM+-DL7x1KLfeZ98UnpxmvJTKBRBlBhGagHOy1tS5KXIowpKigHC1Kc6CpGja7VNejo5u14OR1KaV5UxNT-I6w6f3bpNjemyluUMh54zQbgzOQYNxYNlleOdMs1ZaT1ntWYbVAOBND6hzajw-ZfCL7xOOY2EReKLnTUgAE6RKL7kXEeezTU8idLvJSuXVRW5SnagLpUs62j0SEk5NeTExIjEPWaerVpMK0FwowQbH6Y0-omzsCi4ZvL0UT2WTi2G4dHQ0PakSq5XsSWbzJawsJHDdm0ojmTOJTJBHXwyjTLFUAH6TUuRy65dBuUPKebOZ0ryID5LAEo5eRTfgSs1BVf5VSNWy2uorDkOJlWb2MWq5BZi2mwr-Dq6xKUDW4P6YMk1oyzVEMnq42ZpRXZ7MWS7QldDiWMOyi6rZ7CdlHxpZ4ul3qY6+oSYnHxni2VrJuQM4M0b2Z52bPGsAibk0rNTeKg6u5pVaPLZdAkStcRKqLSlEtkLO7Qu1lqqtViEW1tsci1dTaxljwmWDVSFqO3uLxVQ7xfavZrMzUw7eIS8bbIiaUDi0SDkMtnUysSrKpJP1SQ6zOkbV08tGYtLJGlRbbt3R8naXySlPHNFOcBMqz2y2-ASW8iqIUtNlU+ix2rX2Gx6f9T9ja0W-oxVMoNqV0JzOtUsiT9rw2Oqg0OmD5K2GUs4ZAbhk6vWxJnZTf1UBTkpyw2ndlnL5pRt5U8z+LyFFET3aK6jPxSnmmrieyBTHIDNzzZedjKrValqhUCzVPGX1dP44iwTRqv0iccX+zFU8gOQCtd2m14G0bEqU2NYdcHR0Ia4RO+GU7dMCLnQGpJY0Q3YbDeZ1mlmiPs1jfOOzK5KMV2+bRhCWXSSaI84+rzirzwwI5Bx9VXGe6Vs6ZgiL76kXReE6a0T5qJM4q7Z66m6WPa4ZZt15UOWKXhKpQV5D9KfX6dEn8JOmHH6mcg-hu567ZGboLi1vSbWxXC3NAdHUUqs2Mf62CvRmIrx6tJHezjnn2lhem6D5Uda+k0moPgb9LbJnEMS1JjKIGe3-s26vbbr8Nk71y+pj12mYnnzO36oaa3F0mckQT9JiP8CEb5bImzq0hX2fe05r75o-jmgY6e-rSqDF5rZKNst-WodTd1dgqLpRmeosW3FsT6P22Y4StjtLcn+2M6ddB4Jqm3VjupSd6dpX0N-BZRJqrt2B10CV6zp5Aq42vY2jz4pPw+dOnUbWgFObICXqVoW-kkugtawm8+2XNbfofrsErlHS3nGAc15AIE2v4ILuyvJ2ru2jT7bU4djTSHu0U8OYyoRUAKtOyXZlx3PgWePcyepHJ7veYioPcLJsgIRFC768F1kRIXJN1h0acHY3IeTfhTNuPc3FeN+V825PaO22b0tZn6heP-HyXzzaQvJv8uacK5V4rlO9PU+pjXum9OcMKbw075v04mvkeFTnrvZIe8C+On94Xg+e6CiORsY3iGLFqqr3qB4y4z5j42jw6yiJ6xYpSEKr6p7Qz2yb7p6045567347ZE6wYHburjrm4lZHJV7p5Xa251766KSP5WYbr5yv7c6d6fJe494JyC7uaAqR4gFshOS3gYjh4Pr-5QHVpvpz4K5QAIEq5IFOIoErZJaZS26gbajb6Qb4HG7wZHbH4kHn6W7kFGYnzUG4HlQN5I5rr0Hs5fzt4lye6-CiCAjpC-b+7Zrja+Zi78jXRCGQHT5iGz76rx6lB4CyDyh7Ar7-qZKoF2zp7X64QqHZ4ow4G1aDrZYqaupaEl5RJl4oZU5lbV7XahpmYRrBFaBXDEat5kY2F-x2FbgOF-DlL97cHQLywCEwKtz+btyT7S6+F8YwGWSBG5AhFXCo4RFr4pQ4pKEyaTJqEDoaHpF5baFaZFY6Z6FkEGaQCGE8LGHJF0AlGhHWbWFc6tYsFUZe51FOjOG-QB5uG3QFqEgIIdEmLCGR6iG9Hy6GpBFDFhGq7LYY5oG4rKE44Eq64QazGkppEjqk7EHZGnYX55Hp427GY3YM4mHpJ7FlH8qCrcxv4owf4-AOHaicG-4D48HORXo8Z9EGAT5S4iE9HhaUmigDG1BfEjEJYa7-EpbraIwzH64pGkgH4ZFk7LHl6obnZX4FHVZFGOqZTonIAxpYlFw4lrisH2EHQZqNGB76K3EtHeHjavH0nvH1qymsniZ-HRFYGn5AkWnuhJHXJzGQnF5CmWkim5FW6UFImFHLq7FfFPLPZMHHHv4qm1FHoSa9ZNGyiOR6KKoCG6lT7R7QGGl9LGnhGIRRGYQYGiw8momYzglG7zFQmIZZGeoulwnoaxHcTbG77emlFymIQVFaRVEFInHtZkgJwHShnXGQ7A4gFKwEixndHxl+EMmQBwF2DJk-GtpplY6Al5RZl572kk6OnQnFk5GlkGHWk37Il3557Vn7EfyHHYnMGBmnG-BtlJwal6kXpEhyz4j9m0mDlvECYfGDE1kmnq7r5JacnaY660Kgk0ELmEGm7HYwkW5rEXaBoemSl3aynylu5HFvbNkfatlPA6hEkuH-YiGsacjDY3rZTUkR7dz6kw6JmyjjmyHxamnsnmkYHNhzm74AVF5EFm4gWkGV7rGXYJG16341ZVkwUMFbprSLgAC6dwPMm0kA2wuwdg0YmgeAnEi4kA5wlwUStwAZY0jAtgwCQIfyKUQQOgQYWECEqFYsIi6QmoLYTo9RTo7UPaWEQICE5omoOozlmSP2mS5o1lm8ngxQCe1A7AAAFIdHoOkPIOkAAJRUQpA+CaAXBPCIDoDDB2BPCEAoDmDfEpSwDxWJWlDwCMDQgNDtQIAXAsgRB6U4CajyBQA9qaiJoGDcAqC5V4A9p-CNlJqbwaX7TNgSZlVgB2VHROiuaiAJxNg-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-7K15lw15S5l2bdn7HjNRX9Rzn-HNogncH3DCHLbSHPnKHZ7JLGHUjfbGrTZA73egIHlUXmQ61httdvuBjxjC15r+o1Ny3TlmNTLY163BXDn3H23JXXdXtbnP9HnGVonJ3x7rXC99zKrTzV3PXby7zK9Az7BaFcTo7GXiTJtoCTY2N2NnLc7p9oCB9wLDt-OcLZriLRTG3nHjn4Pu3NQ+37nh3nnh7CPLXZ3MnXbl3FL2HWPuHqpQIhHpIPVrYON2oHBRjh9moHlYLE1lN-3HBjlpnt9+bTrSLLPrr3HWzHtkPbDkrN1lXzbQRgbwb3jyH-jkbQTnXgX8n13inkTd3ZIdRDRw3JDG1-Ow1hDpP5Sw11HM3s1wIzojlwzD99tYsLYQNTPOzRvJdLDZvGL3rnDwncPXnYngjEnUtwvaPovvX4v-XAz5x0vyosvdAq1FnGbfLFxq123M3hlwHGaHB+d2nD9wPJTxv1HpvdjUPFvMPPPuffPwDDvir53-nIv17YvVLFfqphJUX5DCXdPAuCEScKv33ttE1zozfWTRlHlpPffKLafQ-lTI-Wfy8Of918PU-p3jvoj1V8-wXi-t72PK-6pfver610LTatk2BZDVv2FPFLiQ1vpwsGemSF9gNXl5rdk+wrAfun2H7m9b+tTcfg-zz788C+SPF5ij3f7u8QuSnb-sGR1Z-9Ww61U-ljQGpQCOC2jCPnZVNoTUrWlNWupTQs7gCIOzrQ3iFUv4c86qN-c5hVyq4AM3GdXDxl41DbP8Z+TvDrkQIx4Jo+uNoVem2ReSUC6AmzOjLvR5bkMVmcLPXhAL1YZplmKvUWJZQxrU0k+FjA3gV34Em9BBENYQUJ1h7YDJ+AjPmoSw7btMgmsnV3t137ZhdkK55TQcNRGqHRLsk3Xegr2+71ExqeDBvjg1FhTgjBPAuwf3wEGudR+2fNwXzUf6eDRa3g09g83PaKCghZA4WG2VQpRcX2WvNal+wFxUcbBlPEhvUSxpb9nK2-G1j9mGjn9U+jg7IRgKbZHdAGuArwYX1Q7NVyhOkYSjhFqDmAXqsARwCkDGSqUv+yoJqr7WSDcATArAQgFREcCWA1hUAA4GoAWCYB2olIHHI5m+DtRvAcQVQDcDADLBIAHVISu1HQDPDXhZwo4JgBEqzDHgAIpcEoA+HuBYAPgC6t8LuDiVJKsoT6hpTNDzD9hRwWULXXSBgAAAVGAH8qus6+qQxviWz3r1EwqujHEX82zZE9SaYfRJuQzCoRVRKboWETsFlAoBF8hoSACiIWBojMgWInEXiOp6mcVmm-BnjqFJFBhyRrYWjtbnRFixNqTHYEPSO-idAIAYI65kI2hGe8bQcIuwEECeB+N5hiwrQPCMREYR5hH1DAJoB0DLAKRh0IytSJD7k9KqrYevg-R3rWCW+ogYEcoJhEKUdRpQKUAaIUpGiNMbI8whyItHoArRKwWatKPo6ZJGOE3PQHq0FHNhhRKvGUUZW9E7pQR1QSAMEBUovCYRCtGkL6jsDsBGowRH9DNG8GS19R-1YGr0AbghBYADzHEYdBM4YiAApBFTEoljGAZY0oCihyAcpaxgYhsbkHyDNjQgMnHEQnH1CrUwAPYjoLmPcAYBzAJgTUZqyNBbDZQsACUKgArGRAORRw7gCcIiB-DpK3AWSmEF-iQBfINkcIERHvGJgRgT4lKN4EiDHjWmDwyIHIwYby0eqEQG5nWINFQBfxcjPSvLR7TASxx9YgquBIHF-i7ADoeWuIIiAQSBw39NCYwAABeUdCEdQAup2AjgrAR5JHToBBA+RpE8iUIzoASg+RQIA0EQIwlIS5GideBiqI941AuRdiCIMESSB5ADhrTQicRNKA0S6Avwi4R0C4l5JRKoIkABUCAA/view):  
 ![visualization](https://forum-qiime2-org.s3.dualstack.us-west-2.amazonaws.com/original/2X/2/2c137ad8af6f9ffd8dd81d2d08e0c13c5af2c074.png)  
This functionality is still experimental --- please try it out and let us know how it goes for you! 🎈

- [q2-types](https://docs.qiime2.org/2019.4/plugins/available/types/)
  - @thermokarst & @gregcaporaso revamped the FASTQ manifest formats! The [new formats](https://docs.qiime2.org/2019.4/tutorials/importing/#fastq-manifest-formats) are TSV based, and produce files that are _compatible_ with the [Metadata specification](https://docs.qiime2.org/2019.4/tutorials/metadata/).

Keep on QIIME-ing! 🌞 :qiime2: 🦖

---

<div class="post-metadata">

### Author: ![ben](https://forum.qiime2.org/user_avatar/forum.qiime2.org/ben/32/1790_2.png) [@ben](https://forum.qiime2.org/u/ben)
#### Post date: [May 3, 2019, 6:42pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/5 "2019-05-03T18:42:20Z")

</div>

Sweet 2-D plot, it looks like those in Phyloseq which we really like. Great job.

---

<div class="post-metadata">

### Author: ![thermokarst](https://forum.qiime2.org/letter_avatar_proxy/v4/letter/t/8e7dd6/32.png) [@thermokarst](https://forum.qiime2.org/u/thermokarst)
#### Post date: [May 3, 2019, 6:48pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/6 "2019-05-03T18:48:12Z")

</div>

Thanks! You can check out the interactive vega spec for that example viz here:

[Emperor/Vega demo](https://vega.github.io/editor/#/url/vega/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6SgFY6AK1jcAdpAA04KIXQATVYxnVsYUYoiR26eAGtqAJ26sZqnZADEAM2cuFSyPFmPG2nKAgG6AAejLA6wJAANujsyJEAwtyR3OZ29gAMmVkKUHjMkciJyak4DlnZAL76AZB5eAXhHkkpaeWZkBVKVe51DaUAoqiEyJbmYAAKiQCCbgaq6HiYOADaShD+AQYy6KjIdruL84uzm1AU6JGsyGEra6cbpzUAyjuEBQCSACJ2ADIAjE8-ulRCdHgYAELocyeVTIJ7IACOVxk8D2pSmAHEACoY+IYqY4vFY0FgyA-TQmEbjcyMXbmeFI5AotFQbG4+KY+IAWXZuIx2KmM2qYKg4O4qgAnk9mCzINRWHgSY9IABNZBQuwAJkyAE46OkladIFzZCw7ABmfWGzaQT7oCV2P4AditwtJTw4EmQ8EVpVgnu9eAAtH9rTUAErIQgpPDIVRTGR5dg8PLwACqsHQ1FlADluGGDHaJbBpcz+kFhjTdomnotzL6oH8ACzpV13ZWfa7wGmEPKyOz+9hen0hhgKuja9I6oPmkNOyDtgLdEUPd2vD7fUr-QEtguiqEwuGI5GouwE-kc3FY+JYoWLm3kmSU8zU2kjBkn2Vs+KX7m8vECneIoQuKUoynY8qKm6ypqhqpSTgAHG2wFQCaiaII6rYGtBRpFlqSHYfezwBj6A4kcGmp7pAkbRvWcYJkmKaMOmmbZnYaphDhNpFiWmiouWlZvjWdYNpAWFUZ2CA9n2ch+uRQaamOeATpkCEhukCkIQuIrLmCq7Ki8Qwbr8ALalpXE1JC0LikejLMnYN74vit54niVGPs+r50h+TKnqU36-jyP58oBVFipK0qxhBCpUbBJRQJOeqEShxqmhhpR-MhwG2vaWriRZBgekOgZkcVI6UQVUA0TG9GJowybcKmGZZrm+aVTlxalvxFYjEJeC1lCokIU2WUiraXbSTwslQIOw4UUpKlTiGCkGkRumPPpRqGW8yBfCZTyaqI87tVZh4+fZpTBVMjmYue7kUlSVbvsevlfoSgX-vyt5Adl4VgVFpSQbF6rxZAiWjaSaFmqUlrJdleEZS6cNjUVc2lXNClUdVdHxnVDVNaxrUSfavFlj1T3CYNjothDHYTYwvZTejgYKQtiUznO2lgut9xEYV667ZuUDbpqCGhidB42edflQD+17XmyBLxPdT6PW+9IvRdrLvZyQWuV9gphaBkWykD7VxXlU600aUPpVAI3I6SCONg7VGoyVcllRRWNRjVuOMY1zHNWxpR5sTnV8cgAm9dW-UiY6ABsBESfTjP9p7GOKZBi3Tk2IZNlzjw85sm02ttxlbgCR1hZLsLS7K12Nze564irnlPRrdky5AAW659oUncb4GAzF5sg5bSVUbbjrW9xuXwflfNQO7pEZyz4tL9Rvs4wx9VMSxLV2GH7U8V1Ufk31A31nYw2zzUkndgzMnMyOmXZ+zfwrYXpzFwEpfPALPalcnhOgTjXayddNbd2ui5NkOJsRtzVt5KBb12R92CgBb6RsIrDygGbTeFsF5W0dsqae8E76Fnno2JGbtyIv2DBvFK2NYz+z3oHA+IcoDH03qfSO0cKZxyphlP4ikSG4VTs-Ner82a6gUpzNaFl-78yMoLfa5lN6nSligs8V58TN2xMrdqHkkHPS7qgn86D9YDw0UPAGeDR4EPHkQ5O7UyGNkXilZ2YMXGbxXqJWa68fa0RYbvfGQdCbsWuOHUm3VBKxyvqJDx8MJFMykQwmR6Q1JAk0t-TYv91i+MAULMkmpASiBBBLCBtlPxnjxOeOpFjEEvg7vXOwvdcR6xClgweOC7FRGQI4PAYAVCRFQMDOCCVdQUNQmlGeYi54OgXtMyAfj6EhiCX7UJ+9g5ExPiTM+-DL7x1KLfeZ98UnpxmvJTKBRBlBhGagHOy1tS5KXIowpKigHC1Kc6CpGja7VNejo5u14OR1KaV5UxNT-I6w6f3bpNjemyluUMh54zQbgzOQYNxYNlleOdMs1ZaT1ntWYbVAOBND6hzajw-ZfCL7xOOY2EReKLnTUgAE6RKL7kXEeezTU8idLvJSuXVRW5SnagLpUs62j0SEk5NeTExIjEPWaerVpMK0FwowQbH6Y0-omzsCi4ZvL0UT2WTi2G4dHQ0PakSq5XsSWbzJawsJHDdm0ojmTOJTJBHXwyjTLFUAH6TUuRy65dBuUPKebOZ0ryID5LAEo5eRTfgSs1BVf5VSNWy2uorDkOJlWb2MWq5BZi2mwr-Dq6xKUDW4P6YMk1oyzVEMnq42ZpRXZ7MWS7QldDiWMOyi6rZ7CdlHxpZ4ul3qY6+oSYnHxni2VrJuQM4M0b2Z52bPGsAibk0rNTeKg6u5pVaPLZdAkStcRKqLSlEtkLO7Qu1lqqtViEW1tsci1dTaxljwmWDVSFqO3uLxVQ7xfavZrMzUw7eIS8bbIiaUDi0SDkMtnUysSrKpJP1SQ6zOkbV08tGYtLJGlRbbt3R8naXySlPHNFOcBMqz2y2-ASW8iqIUtNlU+ix2rX2Gx6f9T9ja0W-oxVMoNqV0JzOtUsiT9rw2Oqg0OmD5K2GUs4ZAbhk6vWxJnZTf1UBTkpyw2ndlnL5pRt5U8z+LyFFET3aK6jPxSnmmrieyBTHIDNzzZedjKrValqhUCzVPGX1dP44iwTRqv0iccX+zFU8gOQCtd2m14G0bEqU2NYdcHR0Ia4RO+GU7dMCLnQGpJY0Q3YbDeZ1mlmiPs1jfOOzK5KMV2+bRhCWXSSaI84+rzirzwwI5Bx9VXGe6Vs6ZgiL76kXReE6a0T5qJM4q7Z66m6WPa4ZZt15UOWKXhKpQV5D9KfX6dEn8JOmHH6mcg-hu567ZGboLi1vSbWxXC3NAdHUUqs2Mf62CvRmIrx6tJHezjnn2lhem6D5Uda+k0moPgb9LbJnEMS1JjKIGe3-s26vbbr8Nk71y+pj12mYnnzO36oaa3F0mckQT9JiP8CEb5bImzq0hX2fe05r75o-jmgY6e-rSqDF5rZKNst-WodTd1dgqLpRmeosW3FsT6P22Y4StjtLcn+2M6ddB4Jqm3VjupSd6dpX0N-BZRJqrt2B10CV6zp5Aq42vY2jz4pPw+dOnUbWgFObICXqVoW-kkugtawm8+2XNbfofrsErlHS3nGAc15AIE2v4ILuyvJ2ru2jT7bU4djTSHu0U8OYyoRUAKtOyXZlx3PgWePcyepHJ7veYioPcLJsgIRFC768F1kRIXJN1h0acHY3IeTfhTNuPc3FeN+V825PaO22b0tZn6heP-HyXzzaQvJv8uacK5V4rlO9PU+pjXum9OcMKbw075v04mvkeFTnrvZIe8C+On94Xg+e6CiORsY3iGLFqqr3qB4y4z5j42jw6yiJ6xYpSEKr6p7Qz2yb7p6045567347ZE6wYHburjrm4lZHJV7p5Xa251766KSP5WYbr5yv7c6d6fJe494JyC7uaAqR4gFshOS3gYjh4Pr-5QHVpvpz4K5QAIEq5IFOIoErZJaZS26gbajb6Qb4HG7wZHbH4kHn6W7kFGYnzUG4HlQN5I5rr0Hs5fzt4lye6-CiCAjpC-b+7Zrja+Zi78jXRCGQHT5iGz76rx6lB4CyDyh7Ar7-qZKoF2zp7X64QqHZ4ow4G1aDrZYqaupaEl5RJl4oZU5lbV7XahpmYRrBFaBXDEat5kY2F-x2FbgOF-DlL97cHQLywCEwKtz+btyT7S6+F8YwGWSBG5AhFXCo4RFr4pQ4pKEyaTJqEDoaHpF5baFaZFY6Z6FkEGaQCGE8LGHJF0AlGhHWbWFc6tYsFUZe51FOjOG-QB5uG3QFqEgIIdEmLCGR6iG9Hy6GpBFDFhGq7LYY5oG4rKE44Eq64QazGkppEjqk7EHZGnYX55Hp427GY3YM4mHpJ7FlH8qCrcxv4owf4-AOHaicG-4D48HORXo8Z9EGAT5S4iE9HhaUmigDG1BfEjEJYa7-EpbraIwzH64pGkgH4ZFk7LHl6obnZX4FHVZFGOqZTonIAxpYlFw4lrisH2EHQZqNGB76K3EtHeHjavH0nvH1qymsniZ-HRFYGn5AkWnuhJHXJzGQnF5CmWkim5FW6UFImFHLq7FfFPLPZMHHHv4qm1FHoSa9ZNGyiOR6KKoCG6lT7R7QGGl9LGnhGIRRGYQYGiw8momYzglG7zFQmIZZGeoulwnoaxHcTbG77emlFymIQVFaRVEFInHtZkgJwHShnXGQ7A4gFKwEixndHxl+EMmQBwF2DJk-GtpplY6Al5RZl572kk6OnQnFk5GlkGHWk37Il3557Vn7EfyHHYnMGBmnG-BtlJwal6kXpEhyz4j9m0mDlvECYfGDE1kmnq7r5JacnaY660Kgk0ELmEGm7HYwkW5rEXaBoemSl3aynylu5HFvbNkfatlPA6hEkuH-YiGsacjDY3rZTUkR7dz6kw6JmyjjmyHxamnsnmkYHNhzm74AVF5EFm4gWkGV7rGXYJG16341ZVkwUMFbprSLgAC6dwPMm0kA2wuwdg0YmgeAnEi4kA5wlwUStwAZY0jAtgwCQIfyKUQQOgQYWECEqFYsIi6QmoLYTo9RTo7UPaWEQICE5omoOozlmSP2mS5o1lm8ngxQCe1A7AAAFIdHoOkPIOkAAJRUQpA+CaAXBPCIDoDDB2BPCEAoDmDfEpSwDxWJWlDwCMDQgNDtQIAXAsgRB6U4CajyBQA9qaiJoGDcAqC5V4A9p-CNlJqbwaX7TNgSZlVgB2VHROiuaiAJxNg-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-7K15lw15S5l2bdn7HjNRX9Rzn-HNogncH3DCHLbSHPnKHZ7JLGHUjfbGrTZA73egIHlUXmQ61httdvuBjxjC15r+o1Ny3TlmNTLY163BXDn3H23JXXdXtbnP9HnGVonJ3x7rXC99zKrTzV3PXby7zK9Az7BaFcTo7GXiTJtoCTY2N2NnLc7p9oCB9wLDt-OcLZriLRTG3nHjn4Pu3NQ+37nh3nnh7CPLXZ3MnXbl3FL2HWPuHqpQIhHpIPVrYON2oHBRjh9moHlYLE1lN-3HBjlpnt9+bTrSLLPrr3HWzHtkPbDkrN1lXzbQRgbwb3jyH-jkbQTnXgX8n13inkTd3ZIdRDRw3JDG1-Ow1hDpP5Sw11HM3s1wIzojlwzD99tYsLYQNTPOzRvJdLDZvGL3rnDwncPXnYngjEnUtwvaPovvX4v-XAz5x0vyosvdAq1FnGbfLFxq123M3hlwHGaHB+d2nD9wPJTxv1HpvdjUPFvMPPPuffPwDDvir53-nIv17YvVLFfqphJUX5DCXdPAuCEScKv33ttE1zozfWTRlHlpPffKLafQ-lTI-Wfy8Of918PU-p3jvoj1V8-wXi-t72PK-6pfver610LTatk2BZDVv2FPFLiQ1vpwsGemSF9gNXl5rdk+wrAfun2H7m9b+tTcfg-zz788C+SPF5ij3f7u8QuSnb-sGR1Z-9Ww61U-ljQGpQCOC2jCPnZVNoTUrWlNWupTQs7gCIOzrQ3iFUv4c86qN-c5hVyq4AM3GdXDxl41DbP8Z+TvDrkQIx4Jo+uNoVem2ReSUC6AmzOjLvR5bkMVmcLPXhAL1YZplmKvUWJZQxrU0k+FjA3gV34Em9BBENYQUJ1h7YDJ+AjPmoSw7btMgmsnV3t137ZhdkK55TQcNRGqHRLsk3Xegr2+71ExqeDBvjg1FhTgjBPAuwf3wEGudR+2fNwXzUf6eDRa3g09g83PaKCghZA4WG2VQpRcX2WvNal+wFxUcbBlPEhvUSxpb9nK2-G1j9mGjn9U+jg7IRgKbZHdAGuArwYX1Q7NVyhOkYSjhFqDmAXqsARwCkDGSqUv+yoJqr7WSDcATArAQgFREcCWA1hUAA4GoAWCYB2olIHHI5m+DtRvAcQVQDcDADLBIAHVISu1HQDPDXhZwo4JgBEqzDHgAIpcEoA+HuBYAPgC6t8LuDiVJKsoT6hpTNDzD9hRwWULXXSBgAAAVGAH8qus6+qQxviWz3r1EwqujHEX82zZE9SaYfRJuQzCoRVRKboWETsFlAoBF8hoSACiIWBojMgWInEXiOp6mcVmm-BnjqFJFBhyRrYWjtbnRFixNqTHYEPSO-idAIAYI65kI2hGe8bQcIuwEECeB+N5hiwrQPCMREYR5hH1DAJoB0DLAKRh0IytSJD7k9KqrYevg-R3rWCW+ogYEcoJhEKUdRpQKUAaIUpGiNMbI8whyItHoArRKwWatKPo6ZJGOE3PQHq0FHNhhRKvGUUZW9E7pQR1QSAMEBUovCYRCtGkL6jsDsBGowRH9DNG8GS19R-1YGr0AbghBYADzHEYdBM4YiAApBFTEoljGAZY0oCihyAcpaxgYhsbkHyDNjQgMnHEQnH1CrUwAPYjoLmPcAYBzAJgTUZqyNBbDZQsACUKgArGRAORRw7gCcIiB-DpK3AWSmEF-iQBfINkcIERHvGJgRgT4lKN4EiDHjWmDwyIHIwYby0eqEQG5nWINFQBfxcjPSvLR7TASxx9YgquBIHF-i7ADoeWuIIiAQSBw39NCYwAABeUdCEdQAup2AjgrAR5JHToBBA+RpE8iUIzoASg+RQIA0EQIwlIS5GideBiqI941AuRdiCIMESSB5ADhrTQicRNKA0S6Avwi4R0C4l5JRKoIkABUCAA/view)

Enjoy!

---

<div class="post-metadata">

### Author: ![jwdebelius](https://forum.qiime2.org/user_avatar/forum.qiime2.org/jwdebelius/32/9655_2.png) [@jwdebelius](https://forum.qiime2.org/u/jwdebelius)
#### Post date: [May 3, 2019, 7:25pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/7 "2019-05-03T19:25:49Z")

</div>

Thank you! 😄🎉

---

<div class="post-metadata">

### Author: ![timanix](https://forum.qiime2.org/user_avatar/forum.qiime2.org/timanix/32/17879_2.png) [@timanix](https://forum.qiime2.org/u/timanix)
#### Post date: [May 5, 2019, 5:44am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/8 "2019-05-05T05:44:10Z")

</div>

Thank you for a new release! Great work

---

<div class="post-metadata">

### Author: ![sabasu](https://forum.qiime2.org/letter_avatar_proxy/v4/letter/s/aeb1de/32.png) [@sabasu](https://forum.qiime2.org/u/sabasu)
#### Post date: [May 5, 2019, 6:22am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/9 "2019-05-05T06:22:29Z")

</div>

Just wanted to thank the team for their hard work. Qiime2-2019.4 and the tool as a whole is a huge deal and I am privileged to use it. Definitely looking forward to the cutadapt bug fixes, new filter parameters, trim left on Deblur.

Really exciting stuff! Thank you!

---

<div class="post-metadata">

### Author: ![Liyah\_Smith](https://forum.qiime2.org/user_avatar/forum.qiime2.org/liyah_smith/32/6395_2.png) [@Liyah\_Smith](https://forum.qiime2.org/u/Liyah_Smith)
#### Post date: [May 6, 2019, 1:42pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/10 "2019-05-06T13:42:37Z")

</div>

Hello, I am excited for the new release! I am only able to use QIIME2 through the Virtual Box, so I was wondering when the disk image file will be available so that I am able to upgrade?

---

<div class="post-metadata">

### Author: ![Nicholas\_Bokulich](https://forum.qiime2.org/user_avatar/forum.qiime2.org/nicholas_bokulich/32/19937_2.png) [@Nicholas\_Bokulich](https://forum.qiime2.org/u/Nicholas_Bokulich)
#### Post date: [May 6, 2019, 2:03pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/11 "2019-05-06T14:03:26Z")

</div>

> [@Liyah\_Smith](#):
>
> I was wondering when the disk image file will be available so that I am able to upgrade?

The disk images for virtual box are usually released a few days after the main release, so that should be available some time this week. Thanks for your patience @Liyah_Smith!

---

<div class="post-metadata">

### Author: ![thermokarst](https://forum.qiime2.org/letter_avatar_proxy/v4/letter/t/8e7dd6/32.png) [@thermokarst](https://forum.qiime2.org/u/thermokarst)
#### Post date: [May 6, 2019, 5:57pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/12 "2019-05-06T17:57:25Z")

</div>

We just deployed new slightly tweaked QIIME 2 2019.4 environment files --- these pin the version of `numpy` to `1.15.4`. Maybe @mortonjt can say a few words here about _why_ we made this change, and why it might matter to you. Thanks!

---

<div class="post-metadata">

### Author: ![mortonjt](https://forum.qiime2.org/user_avatar/forum.qiime2.org/mortonjt/32/3488_2.png) [@mortonjt](https://forum.qiime2.org/u/mortonjt)
#### Post date: [May 6, 2019, 6:24pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/13 "2019-05-06T18:24:01Z")

</div>

Thanks @thermokarst for deploying an older version.

We've seen that the SVD operation in the newest release of numpy and scipy are broken: [np.linalg.svd gives weird output · Issue #13401 · numpy/numpy · GitHub](https://github.com/numpy/numpy/issues/13401)

What this means is that all beta diversity calculations involving svd (i.e. pcoa), in addition to the balances will output wrong results using qiime2-2019.4

The newest qiime2-2019.4 environment files should avoid this issue by pinning numpy to an older version. So make sure your qiime2 environments are up-to-date if you are using qiime2-2019.4

---

<div class="post-metadata">

### Author: ![Eman](https://forum.qiime2.org/user_avatar/forum.qiime2.org/eman/32/4511_2.png) [@Eman](https://forum.qiime2.org/u/Eman)
#### Post date: [May 6, 2019, 6:47pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/15 "2019-05-06T18:47:54Z")

</div>

Hello,

How could I know if the results (diversity calculations, gneiss) are correct or not? I already installed the new release 2-2019.4 successfully and am using it since yesterday.

Thank you

---

<div class="post-metadata">

### Author: ![thermokarst](https://forum.qiime2.org/letter_avatar_proxy/v4/letter/t/8e7dd6/32.png) [@thermokarst](https://forum.qiime2.org/u/thermokarst)
#### Post date: [May 6, 2019, 7:17pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/16 "2019-05-06T19:17:46Z")

</div>

> [@Eman](#):
>
> How could I know if the results (diversity calculations, gneiss) are correct or not?

As @mortonjt mentioned, the issue to do with a bug in a specific version of numpy --- the best way to ensure that everything is okay is to re-install 2019.4, _being sure to download the newest environment file_.

---

<div class="post-metadata">

### Author: ![Eman](https://forum.qiime2.org/user_avatar/forum.qiime2.org/eman/32/4511_2.png) [@Eman](https://forum.qiime2.org/u/Eman)
#### Post date: [May 6, 2019, 7:31pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/17 "2019-05-06T19:31:02Z")

</div>

Okay, so after installing the newest environment file, all what I need is to re-do diversity analysis and gneiss. I mean other plugins are still good and no need to re-run them.

Thank you

---

<div class="post-metadata">

### Author: ![hugh](https://forum.qiime2.org/user_avatar/forum.qiime2.org/hugh/32/4600_2.png) [@hugh](https://forum.qiime2.org/u/hugh)
#### Post date: [May 7, 2019, 12:12am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/18 "2019-05-07T00:12:53Z")

</div>

Great timing! I installed 2019.4 only yesterday. I checked the yml file and the numpy version listed was 1.16.3, so I removed the environment and reinstalled. FYI, I got a conda error when trying to remove the environment:

_pre-unlink script failed for package conda-forge::widgetsnbextension-3.4.2-py36\_1000_

I solved this based on suggestions [here](https://github.com/conda-forge/widgetsnbextension-feedstock/issues/21) and [here](https://github.com/conda/conda/issues/8351)

Sorry to post conda issues here, but in case anyone else gets this error.

Thanks for continued development!

---

<div class="post-metadata">

### Author: ![didietkeren](https://forum.qiime2.org/user_avatar/forum.qiime2.org/didietkeren/32/4573_2.png) [@didietkeren](https://forum.qiime2.org/u/didietkeren)
#### Post date: [May 7, 2019, 1:09am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/19 "2019-05-07T01:09:06Z")

</div>

@mortonjt: can we just install the older version of numpy instead reinstall the new updated QIIME2-2019.4 environment? And how?

Thanks.

---

<div class="post-metadata">

### Author: ![ebolyen](https://forum.qiime2.org/user_avatar/forum.qiime2.org/ebolyen/32/11_2.png) [@ebolyen](https://forum.qiime2.org/u/ebolyen)
#### Post date: [May 7, 2019, 1:19am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/20 "2019-05-07T01:19:03Z")

</div>

> [@Eman](#):
>
> Okay, so after installing the newest environment file, all what I need is to re-do diversity analysis and gneiss. I mean other plugins are still good and no need to re-run them.

Correct! Only analysis downstream of your feature table could have been impacted by this. Since those steps are (usually) very fast, its best to just re-run them so you don't have to worry about it.

> [@didietkeren](#):
>
> can we just install the older version of numpy instead reinstall the new updated QIIME2-2019.4 environment? And how?

Yes, the only difference between [the two environment files](https://github.com/qiime2/environment-files/commit/645bd7585bd2076981ffc18a842756ae439417c8) is the numpy version.

You can correct that by running:

```bash
conda install -c conda-forge numpy=1.15.4

```

in your QIIME 2 environment. If you are at all nervous about that or conda, the safest thing to do is still to reinstall.

* * *

As a general note to anyone: if you or someone you know may have been impacted by this bug, you can always check provenance at the bottom. Just click on `python-packages` and expand the list until you see numpy. You want to see numpy 1.15.4 with QIIME 2 2019.4. If you see 1.16.3, that could be an issue, so you should verify that the steps recorded do not use some of the problematic OpenBLAS bindings (this is hard to do, so best just re-run).

---

<div class="post-metadata">

### Author: ![didietkeren](https://forum.qiime2.org/user_avatar/forum.qiime2.org/didietkeren/32/4573_2.png) [@didietkeren](https://forum.qiime2.org/u/didietkeren)
#### Post date: [May 7, 2019, 1:35am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/21 "2019-05-07T01:35:20Z")

</div>

After searching numpy files on my desktop pc (installed 2019.4 envs on 6 May '19), i got this..

 ![Screenshot_2019-05-07_08-16-28](https://forum-qiime2-org.s3.dualstack.us-west-2.amazonaws.com/original/2X/a/ac64e710d4c611e24804a92494e703f56cfaa222.png)  
There is both of the versions (1.16.3 and 1.15.4).  
Is it ok with this condition on my desktop pc? or should I uninstall the 1.16.3 version?

And on my laptop (installed 2019.4 envs on 5 May '19), there is only numpy-1.16.3 version. I will install numpy-1.15.4 on my laptop. thanks @ebolyen.

Thanks all.

---

<div class="post-metadata">

### Author: ![ebolyen](https://forum.qiime2.org/user_avatar/forum.qiime2.org/ebolyen/32/11_2.png) [@ebolyen](https://forum.qiime2.org/u/ebolyen)
#### Post date: [May 7, 2019, 1:54am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/22 "2019-05-07T01:54:48Z")

</div>

> [@didietkeren](#):
>
> There is both of the versions (1.16.3 and 1.15.4).  
> Is it ok with this condition on my desktop pc? or should I uninstall the 1.16.3 version?

Your search is showing your `miniconda3/pkgs` which is an internal cache for conda, it keeps all versions, but doesn't reflect which version is actually used. Use `conda list` to identify that. Otherwise numpy 1.16.3 isn't itself causing any harm by existing on the hard drive so just verify the environment is correct and you will be fine.

---

<div class="post-metadata">

### Author: ![didietkeren](https://forum.qiime2.org/user_avatar/forum.qiime2.org/didietkeren/32/4573_2.png) [@didietkeren](https://forum.qiime2.org/u/didietkeren)
#### Post date: [May 7, 2019, 2:05am UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/23 "2019-05-07T02:05:41Z")

</div>

@ebolyen: OK, I got it. It only shows 1.15.4 version in conda list. thanks alot.

---

<div class="post-metadata">

### Author: ![ebolyen](https://forum.qiime2.org/user_avatar/forum.qiime2.org/ebolyen/32/11_2.png) [@ebolyen](https://forum.qiime2.org/u/ebolyen)
#### Post date: [May 8, 2019, 10:13pm UTC](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513/24 "2019-05-08T22:13:28Z")

</div>

Update: the situation appears to be a bit worse than originally thought. See [this announcement for details](https://forum.qiime2.org/t/qiime-2-2019-4-0-has-faulty-openblas-results-on-certain-cpus/9604). We will be releasing a new environment shortly.

[Next page](https://forum.qiime2.org/t/qiime-2-2019-4-is-now-available/9513.md?page=2)
