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 theContents/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
andwb_command
must be installed and on yourPATH
forwbsurfer2
to work. Alternatively, you can specify the path to both programs using theFFMPEG_BINARY_PATH
andWBCOMMAND_BINARY_PATH
environment variables, if for some reason you are unable to add them to yourPATH
.
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d127048da43518cd11540e11de73b3b5082c5573b3f8cda633bbc5f50130427 |
|
MD5 | aa1b117bdbd242000bf612a5cd153f97 |
|
BLAKE2b-256 | 0305504c8c461b3cbe72a9df6f65903d3f59bfad611789469c11081e67c47bb2 |