Qurro

Latest version: v0.9.0

Safety actively analyzes 714736 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.9.0

Been a while!

Features added
- Adjusted the `Fit bar widths to a constant plot width?` option to work better.
Now, the "constant plot width" is computed as a third of the window size upon
clicking this checkbox; for some displays, I think this is a larger value than
the previous setting here.
([32](https://github.com/biocore/qurro/issues/32)

- Added support for jitter plots (aka strip plots), thanks to our use of a new Vega-Lite
version.
([135](https://github.com/biocore/qurro/issues/135))

- As a side effect of updating the Vega, Vega-Lite, etc. versions, the colors of
outlier points in boxplots are now colored the same color as their corresponding
box.
([vega/vega-lite6818](https://github.com/vega/vega-lite/issues/6818))

- Now, running `qurro` from the command line by itself (without specifying any
parameters) will show the full help text, rather than yelling at you to specify
`-r/--ranks` or something.
- Similarly, `qurro -h` will also show you the full help text now.

Backward-incompatible changes
- Updated Altair pin to `>= 4.0`.

- Newer versions of Altair assign special meaning to colon characters (`:`).
This causes issues with field names (e.g. sample metadata fields) that contain
`:`s.
- To avoid these issues, I now change `.` into `_` (rather than into `:`, as
was previously done), and change `:` into `;`.

- As a side effect of the jitter implementation, Qurro's python code will now raise
an error if your input sample metadata happens to include a column named `qurro_jitter`.
I am 99% sure this will not impact anyone, but I think I should at least make note of it...

Bug fixes
- Use `autocomplete="off"` on HTML checkboxes to prevent Firefox from keeping
checkboxes checked even on page reload
([relevant Stack Overflow link](https://stackoverflow.com/a/471140/10730311))

Performance enhancements
- As a side effect of updating the Vega, Vega-Lite, etc. versions, the categorical color
legend used in the sample plot will now truncate entries (showing something
like `... 5 entries`) when there are many (I think the default is > 30)
entries in the legend.

- Removed an ancient comment block in the template HTML. This saves a tiny amount of space
in generated visualizations.

Miscellaneous
- Adjusted dependency "pins" to now support newer versions of Altair and SciPy.
**This should make Qurro now compatible with all Python versions `>= 3.6`,
and with all QIIME 2 versions `>= 2020.11`.**
([216](https://github.com/biocore/qurro/issues/216),
[327](https://github.com/biocore/qurro/issues/327),
[328](https://github.com/biocore/qurro/issues/328),
[330](https://github.com/biocore/qurro/issues/330))

- Along with the above changes, updated the versions of Vega, Vega-Lite, and
Vega-Embed in use.

- Added more JavaScript tests regarding the new jittering feature and the
"constant plot width" updates.

- Updated some of the Python code (mostly tests) to address warnings from pandas.
([332](https://github.com/biocore/qurro/issues/332))

- Various updates to the CI pipeline, including:
- Testing many more QIIME 2 versions (most of the releasese
from `2020.11` through `2024.10`, as of writing)
- Testing many more Python versions
(`3.6`, `3.7`, `3.8`, `3.9`, `3.10`, `3.11`, `3.12`, `3.13`)
- Splitting up the "standalone" CI into two YAML files (one for Python `3.8`
and later, and another for older Python versions), to account for how older
Python / NumPy / scikit-bio / etc. versions are apparently easier to install
nowadays via conda.

0.8.0

Features added
- Added an option to Qurro's visualization interface to exclude metadata
columns from the "sample plot data" output TSV
([306](https://github.com/biocore/qurro/issues/306),
[313](https://github.com/biocore/qurro/pull/313)).
- This should make it easier to merge the sample log-ratios exported from
Qurro with a sample metadata file -- since now these metadata columns won't
be duplicated, which would cause problems. (This problem comes up in
[Gemelli](https://github.com/biocore/gemelli)'s tutorials.)
Backward-incompatible changes
- Switched the required pandas version from `>= 0.24.0, <1` to `>= 1`.
**This makes Qurro now compatible with QIIME 2 versions `>= 2020.11`!**
- However, this change removes support for older QIIME 2 versions. (It may be
possible to get this version of Qurro installed into an older QIIME 2
environment, but we do not explicitly support this.) If you need to use
Qurro in older QIIME 2 environments, you can install an older version of
Qurro (e.g. `pip install "qurro==0.7.1"`).
- Notably, Songbird has not yet made the shift to pandas `>= 1`, so Songbird
and Qurro will need to be installed into separate environments; the "Red
Sea" example notebook details this process.
- Updated a few other dependency versions to fix various problems (e.g.
explicitly requiring SciPy and pinning it to `scipy < 1.9.0` to fix
[this scikit-bio issue](https://github.com/biocore/scikit-bio/issues/1818),
removing Black from the development dependencies for reasons discussed in
[`CONTRIBUTING.md`](https://github.com/biocore/qurro/blob/master/CONTRIBUTING.md)).
Bug fixes
Performance enhancements
Miscellaneous
- Updated various parts of Qurro's code to remove various warnings (for
example, about certain things being deprecated).
- Updated Qurro's example notebooks:
- Updated the "Red Sea" notebook to explain how to use
Songbird and Qurro in different conda environments.
- Updated the "ALDEx2" notebook to explain how we recommend installing ALDEx2
nowadays.
- Updated the documentation to refer to the published version of the Mackerel
data's paper ([Minich et al. 2020](https://journals.asm.org/doi/full/10.1128/mSphere.00401-20)).
- Fixed various broken links in the documentation
([318](https://github.com/biocore/qurro/pull/318),
[320](https://github.com/biocore/qurro/pull/320)).
- Ported Qurro's continuous integration from Travis CI to GitHub Actions
([316](https://github.com/biocore/qurro/issues/316)).
- Improved Qurro's continuous integration in multiple ways:
- Test on multiple QIIME 2 versions.
- Test the standalone Qurro functionality on multiple Python versions.
- Test the standalone Qurro functionality in a non-QIIME-2 environment
(similar to EMPress' "standalone" CI).
- Updated the development documentation
([`CONTRIBUTING.md`](https://github.com/biocore/qurro/blob/master/CONTRIBUTING.md))
regarding the minimum QIIME 2 version, dependency version issues, etc.

0.7.1

Features added
Backward-incompatible changes
Bug fixes
Performance enhancements
Miscellaneous
- Small documentation updates, including updating the color composition tutorial
about the minimum python version needed
([295](https://github.com/biocore/qurro/issues/295)).
- Added citation information to Qurro's QIIME 2 plugin -- you can now
run `qiime qurro --citations`, and citation information for Qurro-generated
QZVs is now shown with other citation information at places like
`view.qiime2.org`.

0.7.0

Features added
- Added the ability to **easily search using multiple text queries at once**:
this is done using the `contains text separated by | (pipe)` searching
option. You can pass in, e.g. `abc | def | ghi` to select any features where
the selected field contains at least one of `abc`, `def`, or `ghi`.
([224](https://github.com/biocore/qurro/issues/224))
- This works more intuitively than the `separated text fragment(s)` option,
and should be useful for a few cases that that option can't handle (e.g.
polyphyletic taxa, as discussed in issue 224).
- Added a **`Draw borders on scatterplot points?` checkbox**, which is useful for making
light-colored points in the sample plot easier to see on the white background.
([240](https://github.com/biocore/qurro/issues/240))
- Added the ability to **enter in negative numbers in autoselection** to flip
the selection (selecting the numerator from the lowest-ranked features and
the denominator from the highest-ranked features).
([264](https://github.com/biocore/qurro/issues/264))
- Added the **`Classic QIIME Colors` categorical color scheme** used in some other
visualization tools, including [Emperor](https://biocore.github.io/emperor/)
and [Empress](https://github.com/biocore/empress), to the sample plot's
categorical color scheme options.
([300](https://github.com/biocore/qurro/issues/300))
- (`tableau10` is still the default categorical color scheme in Qurro, though.)
- Added a **["selection" tutorial](https://nbviewer.jupyter.org/github/biocore/qurro/blob/master/example_notebooks/selection/selection.ipynb)**
describing the various ways of selecting features in Qurro in detail.
([123](https://github.com/biocore/qurro/issues/123))
- (This was previously the appendix in the moving pictures tutorial, but now
it's been split off and expanded into its own thing.)
Backward-incompatible changes
- For the time being, we are only supporting Qurro for Python versions of **at
least 3.6 and less than 3.8**. The code hasn't really changed, but this seems
like it'll be the simplest option for maintenance in the short term.
Bug fixes
- Previously, the autoselection number field had an implicit "step size" of 1.
I don't think this should have prevented users from entering in
floating-point numbers here, but some people's browsers may have complained
on seeing a floating-point number. This problem should be resolved now.
(See [here](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#step) for details about this.)
Performance enhancements
Miscellaneous
- Qurro is now installable on conda through the conda-forge channel!
([153](https://github.com/biocore/qurro/issues/153))
- Various minor documentation updates, including adding citation info for
Qurro's recently-published paper to the README.
([169](https://github.com/biocore/qurro/issues/169))

0.6.0

Features added
- Added **tooltips** throughout the Qurro interface explaining what certain
controls do. Just hover your mouse over one of the "?" icons to view the
tooltips! ([225](https://github.com/biocore/qurro/issues/225),
[123](https://github.com/biocore/qurro/issues/123))
- Although this is a pretty common user-interface thing, our particular use
of this was inspired by [Bandage](https://rrwick.github.io/Bandage/)'s
similar tooltips.
- Added two **comprehensive tutorials** explaining how to use Qurro with
certain types of data: ([267](https://github.com/biocore/qurro/issues/267))
- [With transcriptomics data](https://nbviewer.jupyter.org/github/biocore/qurro/blob/master/example_notebooks/ALDEx2_TCGA_LUSC/transcriptomic_example.ipynb), courtesy of [gibsramen](http://github.com/gibsramen/)
- [With arbitrary compositional data](https://nbviewer.jupyter.org/github/biocore/qurro/blob/master/example_notebooks/color_compositions/color_example.ipynb), courtesy of [cameronmartino](http://github.com/cameronmartino/)
- Updated the [**moving pictures tutorial**](https://nbviewer.jupyter.org/github/biocore/qurro/blob/master/example_notebooks/moving_pictures/moving_pictures.ipynb), after a long drought since the last update!
- The newest version of the tutorial has more details, more useful examples,
demonstrates using the latest version of Qurro, and has been converted from
a markdown document to a Jupyter Notebook. Try running it yourself!
- Added a `Export currently selected features` button that does what it says on the
tin: it lets you export a TSV file listing the features currently selected in
a log-ratio. ([87](https://github.com/biocore/qurro/issues/87))
Backward-incompatible changes
- Qurro now (explicitly) requires that a Python version of at least 3.5.3 is
installed. (This is an increase from the previous 3.5 minimum.)
([74](https://github.com/biocore/qurro/issues/74))
- As a temporary measure, the version of Pandas required to install Qurro from
PyPI has been pinned to below version 1.
([258](https://github.com/biocore/qurro/issues/258))
- This isn't really "backwards incompatible" since trying to run Qurro with
Pandas 1.0.0 installed would break.
Bug fixes
Performance enhancements
Miscellaneous
- Various minor documentation updates.
- Updated Qurro's installation instructions: now you need to install `cython`
first, alongside NumPy. This addresses a problem some folks started to have
when installing Qurro into relatively "fresh" environments.

0.5.0

Features added
- Added **Qarcoal**, a new command for Qurro's QIIME 2 plugin that computes
log-ratios from the command line by searching through features' taxonomies.
This can be useful in a variety of situations -- for example, if you don't
care about feature ranking information and just want to look at log-ratios,
or if your BIOM table contains super large numbers that would cause
JavaScript to start malfunctioning (see the "bug fixes" section below).
- Thanks to [gibsramen](http://github.com/gibsramen/) for adding this in
to Qurro!
- Added **autoselection**, a new method for selecting multiple features in a
log-ratio. This method just picks features from the top and bottom of the
currently-selected ranking, using a specified equal amount of features from
each side (either in percentages of features or in numbers of features).
([189](https://github.com/biocore/qurro/issues/189))
- This feature should be useful when quickly assessing how much a given
ranking field "separates" samples along certain metadata categories. It's
a great starting point when looking at a Qurro visualization.
- Instead of showing selected features in text boxes, these features are now
displayed in fancy [DataTable](https://datatables.net/)s!
([197](https://github.com/biocore/qurro/issues/197),
[232](https://github.com/biocore/qurro/issues/232))
- Thanks to [antgonza](https://github.com/antgonza) for adding this in to
Qurro!
- This involved adding some dependencies to Qurro's visualization code:
jQuery, DataTables, Bootstrap's JS code, and Popper.js.
- When selecting a log-ratio where feature(s) are present in both the numerator
and denominator of the log-ratio, a warning will now be shown explaining the
situtation (and recommending that you chose a different log-ratio that
doesn't involve this "overlap").
([249](https://github.com/biocore/qurro/issues/249))
- We will try to make selectively removing features from one side or
another of log-ratios easier in the future.
- Added an additional text searching option:
`is provided, and does not contain the text`. This will select features
where:
1. The specified feature field (e.g. Feature ID) is provided, and
2. The specified feature field does not contain the specified text.

Note the first clause. If a given field is not provided (e.g. no taxonomy
information is provided for `Feature A`), then that feature won't show up in
any results that involve searching on feature taxonomy. This behavior is the
same as with other text-/number-searching methods, but we've explicitly
specified it here so that it's clear (since you could argue that a
non-existent taxonomy entry "does not contain" some text).
([221](https://github.com/biocore/qurro/issues/221))
- The sample plot's x- and y-axes are now no longer forced to include zero. So
if, say, all of your samples have an x-axis value of at least 20, then they
won't be squished on the side of the sample plot any more.
([218](https://github.com/biocore/qurro/issues/218))
- All features in the rank plot now have a "Sample Presence Count" field shown
in their tooltips. A given feature's "Sample Presence Count" value is equal
to the number of samples in the Qurro visualization that contain that
feature. This should give some context as to why log-ratios between certain
features result in more or less samples being dropped from the sample plot.
([217](https://github.com/biocore/qurro/issues/217))
Backward-incompatible changes
- **Removed the `-gnps`/`--assume-gnps-feature-metadata` argument from the
standalone Qurro interface.** If you'd like to use GNPS data in Qurro, you'll
just need to supply a "normal" feature metadata file where the first column
corresponds to each feature's ID. (This should be available through GNPS
now.) A benefit of this is that you can use this data in either the
standalone or QIIME 2 Qurro interfaces.
([49](https://github.com/biocore/qurro/issues/49))
- As a side effect of implementing the Sample Presence Count feature, if any of
your feature ranks or feature metadata inputs contain a column named
`qurro_spc` then an error will be raised when trying to generate a Qurro
visualization.
- Qurro now requires that a Pandas version of at least 0.24.0 is installed.
- Qurro now (explicitly) requires that a Python version of at least 3.5 is
installed. (This was already a requirement, but it should be enforced when
installing Qurro now.)
Bug fixes
- If your input feature table or feature rankings data contain numbers outside
of the range of `[-(2**53 - 1), (2**53 - 1)]`, Qurro's Python code will now
fail with an error explaining the situation. This is because numbers outside
of this range cannot be precisely represented in JavaScript (at least by
default). ([242](https://github.com/biocore/qurro/issues/242))
- The reason for this is that [JavaScript is inherently limited in the sizes of numbers it can represent by default](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number).
There are a few ways around this,
but I do not have the bandwidth to modify and test Qurro to completely
support rare corner cases like this (at least right now).
- **Note that this is only a partial solution to this problem**; it's still
possible to pass in arbitrarily large numbers within your
sample/feature metadata to Qurro, and the behavior in these situations is
still currently untested.
- On the bright side of things :), thanks to the efforts of
[gibsramen](https://github.com/gibsramen), Qarcoal is now available, so
you should be able to compute log-ratios of essentially arbitrarily large
numbers through that interface.
- Fixed a minor bug in `qurro._df_utils.biom_table_to_sparse_df()` where the
specified `min_row_ct` and `min_col_ct` were not being used to validate the
output DataFrame.
- The validation method was still being called, just with the default
`min_row_ct` and `min_col_ct` values directly rather than using the
specified parameters.
- ...Long story short, this bug should not have impacted you unless you've
been using `qurro._df_utils.biom_table_to_sparse_df ()` with custom
validation settings directly. If you've just been using Qurro as a
standalone tool, you should be unaffected.
Performance enhancements
Miscellaneous
- Various aesthetic changes to the Qurro visualization interface (e.g.
changing the location/styling of certain buttons).
- Renamed the y-axis of the sample plot to say `Current Natural Log-Ratio`
instead of just `Current Log-Ratio`. (This makes it clearer that these
log-ratios are computed using the natural log, i.e. `ln`.) This change has
also been applied to TSV files exported from the sample plot
(`Current_Log_Ratio` --> `Current_Natural_Log_Ratio`), as well as to the
tooltips of samples in the sample plot.
- Renamed the y-axis of the rank plot to say either `Differential: ` or
`Feature Loading: ` instead of `Magnitude: `.
([223](https://github.com/biocore/qurro/issues/223))
- Renamed the label for changing the rank plot ranking from `Ranking` to either
`Differential` or `Feature Loading`.
- Renamed the `Fit bar widths to the plot's default width?` option (again) to
`Fit bar widths to a constant plot width?`. This seems like a clearer way of
describing this option...
- For searching by the values of a given feature ranking, the header shown
above all of the ranking column names said `Feature Rankings`.
This was slightly misleading, since searching is being done on the
magnitudes of each ranking column for each feature (i.e. based on the
y-axis values shown in the rank plot). To make things clearer, this header
has been changed from `Feature Rankings` to either `Differentials` or
`Feature Loadings`.
- Improved the command-line documentation of the sample and feature metadata
parameters.
- Added the poster from a recent presentation we did on Qurro to this
repository, and linked the poster's PDF from the README.
- Various documentation updates in the README.
- Changed the project structure around slightly to ensure that
`dependency_licenses/` for libraries distributed with Qurro
(Vega, Vega-Lite, Vega-Embed, RequireJS, Bootstrap) are now installed in
both "source" and "built" distributions of Qurro (previously, these were only
installed in "source" distributions).
- Added `nbconvert` to Qurro's `dev` requirements, and added a command to rerun
all of the example notebooks in Qurro automatically (`make notebooks`). This
command is also run on Travis-CI now in order to ensure that future updates
to Qurro don't crash any of these notebooks.
- Updated the "Mackerel" demo / test data to match the latest output of [this analysis](https://github.com/knightlab-analyses/qurro-mackerel-analysis/). Notable changes include using the `reference-hit` Deblur BIOM output instead of the `all` Deblur BIOM output (which is generally recommended for 16S analyses), and using SILVA instead of Greengenes for taxonomic classification.
- Updated the "Moving Pictures," "Sleep Apnea," and "Mackerel" demo
descriptions to just say "ASVs" instead of "ASVs / sOTUs" (for clarity's
sake).

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.