Skip to content

ipywidgets>=8.0 and pythreejs>=2.4 appear to error during analysis notebook interactive plot #137

Closed
@bpowell122

Description

@bpowell122

Describe the bug
Running the cryodrgn_filtering_template.ipynb cell widget, fig, ind_table = analysis.ipy_plot_interactive(df); VBox((widget,fig,ind_table)) causes an error message and prevents rendering of the interactive plot. This appears to be due to specific ipywidgets (and potentially pythreejs) versions. It may be useful to temporarily add "ipywidgets<8.0" "pythreejs<2.4.0" constraints to the cryoDRGN installation instructions.

To Reproduce
My conda environment contains the following relevant versions:
ipywidgets 8.0.2 pyhd8ed1ab_1 conda-forge
pythreejs 2.4.1 pyhc268e32_0 conda-forge
Running the cryodrgn_filtering_template.ipynb notebook through the analysis.ipy_plot_interactive(df) cell causes (1) the x/y/color_by/colormap widget to load, (2) two identical error messages to appear, and (3) the figure and ind_table to not be rendered.

Expected behavior
Normally this command produces a plot to render and be interactively configurable for x axis / y axis / color_by column / colormap, and reports mouse-lasso-selected indices in a table below.

Additional context
Running the command conda install "pythreejs<2.4.0" "ipywidgets<8.0" -c conda-forge, re-launching the notebook, and re-running the cell in question causes the expected behavior to occur. The conda command caused the following environment changes:
ipywidgets conda-forge::ipywidgets-8.0.2-pyhd8ed~ --> pkgs/main::ipywidgets-7.6.5-pyhd3eb1b0_1
pythreejs conda-forge/noarch::pythreejs-2.4.1-p~ --> conda-forge/linux-64::pythreejs-2.1.0-py37_0
widgetsnbextension conda-forge/noarch::widgetsnbextensio~ --> pkgs/main/linux-64::widgetsnbextension-3.5.2-py37h06a4308_0
I've only tested this in jupyter notebook, not jupyter lab. This bug might be related to this one here. I'm attaching screenshots of the error message below rather than copying the error because the error message itself was rendered differently from typical python tracebacks in my experience and I'm not sure if others may find that useful.
screencap1
screencap2
screencap3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions