Visualization Backends#

pyAFQ can generate figures to visualize the results of tractometry. How these figures are generated depends on the choice of visualization backend. Currently, there are three choices:

  1. plotly: use Plotly to generate interactive figures that are exported as html files and rotating GIFs. The rotating GIFs can take a long time to generate (~2 min/gif) using this backend. No additional installations are required to use this backend.

  2. plotly_no_gif: use Plotly to generate interavtive figures that are exported as html files, but do not generate GIFs. No additional installations are required to use this backend.

  3. fury: use Fury to generate rotating GIFs. Unlike our current setup in Plotly, Fury can generate GIFs quickly. To use this backend, install pyAFQ with the optional fury requirements:

    pip install pyAFQ[fury]

    And install libGL. If running fury on a headless environment, additionally install and use Xvfb. Xvfb is used automatically in the api.GroupAFQ object if the virtual_frame_buffer argument is set to True.

By default, plotly_no_gif is used. Fury requires additional installations and does not make interactive figures, and Plotly takes a significant amount of time to generate rotating GIFs.

Fury Dockerfile for Cloudknot#

If using the fury visualization backend while running pyAFQ on cloudknot, you must provide a base image with the fury requiements installed. Below is an example dockerfile that can be used to build that base image:

# Use official python base image
FROM python:3.9
# Install libgl
RUN apt-get update
RUN apt-get install -y libgl1-mesa-glx
RUN apt-get install -y xvfb