Skip to main content

A package to plot and capture FastSurfer and FreeSurfer-style surface overlays.

Project description

WhipperSnapPy

WhipperSnapPY is a small Python OpenGL program to render FreeSurfer and FastSurfer surface models and color overlays and generate screen shots.

Contents:

  • Capture 4x4 surface plots (front & back, left and right)
  • OpenGL window for interactive visualization

Note, that currently no off-screen rendering is supported. Even in snap mode an invisible window will be created to render the openGL output and capture the contents to an image. In order to run this on a headless server, inside Docker, or via ssh we recommend to install xvfb and run

apt update && apt install -y python3 python3-pip xvfb
pip3 install pyopengl glfw pillow numpy pyrr PyQt5==5.15.6
pip3 install .
xvfb-run whippersnap ...

Installation:

The WhipperSnapPy package can be installed from this repository using:

python3 -m pip install .

Usage:

Local:

After installing the Python package, the whippersnap program can be run using the installed command line tool such as in the following example:

whippersnap -lh $OVERLAY_DIR/$LH_OVERLAY_FILE \
            -rh $OVERLAY_DIR/$RH_OVERLAY_FILE \
            -sd $SURF_SUBJECT_DIR \
            -o $OUTPUT_DIR/whippersnappy_image.png \

Note that adding the --interactive flag will start an interactive GUI that includes a visualization of one hemisphere side and a simple application through which color threshold values can be configured.

Docker:

the whippersnap program can be run within a docker container to capture a snapshot by building the provided Docker image and running a container as follows:

docker build --rm=true -t whippersnappy -f ./Dockerfile .
docker run --rm --init --name my_whippersnappy -v $SURF_SUBJECT_DIR:/surf_subject_dir \
                                               -v $OVERLAY_DIR:/overlay_dir \
                                               -v $OUTPUT_DIR:/output_dir \
                                               --user $(id -u):$(id -g) whippersnappy:latest \
                                               --lh_overlay /overlay_dir/$LH_OVERLAY_FILE \
                                               --rh_overlay /overlay_dir/$RH_OVERLAY_FILE \
                                               --sdir /surf_subject_dir \
                                               --output_path /output_dir/whippersnappy_image.png

In this example: $SURF_SUBJECT_DIR contains the surface files, $OVERLAY_DIR contains the overlays to be loaded on to the surfaces, $OUTPUT_DIR is the local output directory in which the snapshot will be saved, and ${LH/RH}_OVERLAY_FILE point to the specific overlay files to load.

Note: The --init flag is needed for the xvfb-run tool to be used correctly.

Links:

We also invite you to check out our lab webpage at https://deep-mi.org

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whippersnappy-1.1.0.tar.gz (114.1 kB view details)

Uploaded Source

Built Distribution

whippersnappy-1.1.0-py3-none-any.whl (113.3 kB view details)

Uploaded Python 3

File details

Details for the file whippersnappy-1.1.0.tar.gz.

File metadata

  • Download URL: whippersnappy-1.1.0.tar.gz
  • Upload date:
  • Size: 114.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for whippersnappy-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7618ef3428484dcb740a6e02f0905cf0c9698c55deae2cb7578983bd944332ef
MD5 5ebd442d1e77af309f39b802f8794262
BLAKE2b-256 3fe84ad2e0aebb518e5c185b74f8857b4dceb1b33c6de5d37e2e9a40875f88ac

See more details on using hashes here.

File details

Details for the file whippersnappy-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for whippersnappy-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab2e88be3a11577b7fde687fddafe134c8ab0d6b40617a1a613a2ed0d6edeb93
MD5 3cb6f1e2e4bc0e71089f9304a06f10d4
BLAKE2b-256 7733564bbfbf426f64fcd450b5ee0721631568cb3c8e8484a2a8bdc584fec69d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page