Skip to main content

CLI tool for making CIFTI-related movies

Project description

wbsurfer2

CLI tool for making CIFTI-related movies

https://github.com/user-attachments/assets/e40315fb-f528-4cc7-ae91-8827bfef242c

This is a refactor and refresh of the original wbsurfer tool. This version aims to support >= Connectome Workbench 2.0.

Setup

There are two ways to use wbsurfer2. The first and recommended way is to download compiled binaries from the releases page. Simply download the version meant for your OS and extract it.

If you are more comfortable with Python, you can also install wbsurfer2 from pip.

# install wbsurfer2 from PyPI
pip install wbsurfer2

# or if you want to install it for development
git clone git@github.com:vanandrew/wbsurfer2.git
cd wbsurfer2
pip install -e .

You will also need ffmpeg and wb_command installed on your system and on your PATH.

wb_command is part of the Connectome Workbench suite, which can be downloaded here. The bin directory contains the wb_command binary and should be added to your PATH.

[!TIP] On macOS, the wb_command binary is located in the Contents/usr/bin directory of the Connectome Workbench installation. This is usually /Applications/wb_view.app/Contents/usr/bin.

# If you installed workbench in /opt/workbench
export PATH=$PATH:/opt/workbench/bin

# on macOS
export PATH=$PATH:/Applications/wb_view.app/Contents/usr/bin

ffmpeg can be downloaded in many ways, but I recommend using a package manager like apt or brew:

# Ubuntu/Debian
sudo apt install ffmpeg

# macOS
brew install ffmpeg

Usage

[!IMPORTANT]
ffmpeg and wb_command must be installed and on your PATH for wbsurfer2 to work. Alternatively, you can specify the path to both programs using the FFMPEG_BINARY_PATH and WBCOMMAND_BINARY_PATH environment variables, if for some reason you are unable to add them to your PATH.

export FFMPEG_BINARY_PATH=/path/to/ffmpeg

export WBCOMMAND_BINARY_PATH=/path/to/wb_command

Once it's installed, you can run the wb_surfer2 command. The following is the help message:

usage: wb_surfer2 [-h] -s SCENE_PATH -n SCENE_NAME -o OUTPUT [--width WIDTH]
                  [--height HEIGHT] [-r FRAMERATE] [--closed | --reverse] [-l LOOPS]
                  [--num-cpus NUM_CPUS] [--vertex-mode | --border-file]
                  row_indices [row_indices ...]

Generate a movie from a list of row indices.

positional arguments:
  row_indices           The list of row indices to generate the movie from.

options:
  -h, --help            show this help message and exit
  -s SCENE_PATH, --scene-path SCENE_PATH
                        The scene file to use.
  -n SCENE_NAME, --scene-name SCENE_NAME
                        The name of the scene in the scene file.
  -o OUTPUT, --output OUTPUT
                        The output file path. Should end in .mp4.
  --width WIDTH         The width of the output movie. By default, 1920 pixels.
  --height HEIGHT       The height of the output movie. By default, 1080 pixels.
  -r FRAMERATE, --framerate FRAMERATE
                        The framerate of the output movie. By default, 10 FPS.
  --closed              If enabled, a closed loop will be generated. This appends the
                        first row index to the end of the row index traversal list.
                        Mutually exclusive with --reverse.
  --reverse             If enabled, a reverse of the traversal list will be appended to
                        the row index traversal list. Mutually exclusive with --closed.
  -l LOOPS, --loops LOOPS
                        How many times to loop the movie. By default, 1 loop.
  --num-cpus NUM_CPUS   The number of CPUs to use for processing.
  --vertex-mode         If enabled, row_indices are treated as vertex indices. The first
                        argument should be the surface that the vertices are on.
                        Mutually exclusive with --border-file (e.g. CORTEX_LEFT 0 1 2
                        3...)
  --border-file         If enabled, the border file will be used to generate the movie.
                        The row_indices argument should be the border file. Mutually
                        exclusive with --vertex-mode.

[!TIP] Row indices passed into wb_surfer2 are 0-indexed. This means that the first row is row 0, the second row is row 1, and so on. This is -1 from the row indices given in the UI of Connectome Workbench.

wb_surfer2 requires a scene file to generate the movie. This scene file can be created in Connectome Workbench's wb_view tool.

Unlike in version 1 of wb_surfer, wb_surfer2 can handle multiple scenes being defined in a file (though only one active scene can be used at a time). The active scene is set by using the --scene-name argument.

When making your scene, at least one vertex must be placed on the surface for wb_surfer2 to control. In the case of multiple vertices, the first vertex that was placed will be manipulated.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

wbsurfer2-0.1.2-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file wbsurfer2-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: wbsurfer2-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for wbsurfer2-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9d127048da43518cd11540e11de73b3b5082c5573b3f8cda633bbc5f50130427
MD5 aa1b117bdbd242000bf612a5cd153f97
BLAKE2b-256 0305504c8c461b3cbe72a9df6f65903d3f59bfad611789469c11081e67c47bb2

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