#mesh #surface #obj #file-format #neuroscience #mz3 #mni

bin+lib mni2mz3

Brain imaging surface mesh file format converter

10 releases (1 stable)

1.0.0 Nov 15, 2023
1.0.0-rc.5 Nov 7, 2023
0.1.1 Nov 7, 2023
0.1.0-rc.4 Nov 7, 2023

#145 in Biology

Download history 57/week @ 2024-07-28 18/week @ 2024-09-22

70 downloads per month

MIT license

23KB
392 lines

mni2mz3

crates.io MIT License test codecov

Converts a file from MNI polygonal surface mesh format (.obj*) or vertex-wise data (e.g. curvature, cortical thickness, *.txt) to Surf-Ice MZ3 (.mz3). Useful for visualizing surfaces using Surf-Ice or NiiVue.

[!WARNING] *Not to be confused with Wavefront .obj, which is a different spec but with the same file extension.

Installation

There are many ways to install and use mni2mz3. Linux, Mac, and Windows are supported.

Using ChRIS

The easiest way to run mni2mz3 is on ChRIS, no installation needed. Simply upload your data to a feed in https://app.chrisproject.org, then run pl-mni2common.

Using Apptainer

pl-mni2common is a ChRIS plugin wrapper for mni2mz3, which means you can use its container image to run mni2mz3.

apptainer run docker://ghcr.io/fnndsc/pl-mni2common:latest mni2mz3 input.obj output.mz3

Call the wrapper script mni2mz3 instead to do bulk processing on an input directory.

apptainer run docker://ghcr.io/fnndsc/pl-mni2common:latest mni2mz3 inputdir/ outputdir/

Using cargo-binstall

cargo binstall mni2mz3

Using pip

pip install mni2mz3

Manual Download

Select and download the right binary for your architecture and OS from GitHub Releases: https://github.com/FNNDSC/mni2mz3/releases/latest

Compile From Source

Install Rust, then run

cargo install mni2mz3

Usage

# convert mesh
mni2mz3 surface_81920.obj surface.mz3

# convert data
mni2mz3 thickness.txt thickness.mz3

To do bulk conversions, use the ChRIS plugin wrapper.

Details

  • Output file will be gzip compressed.
  • For surfaces, only triangle meshes are supported.
  • For data, only 32-bit single-precision "float" is supported.

Testing

It is recommended to install cargo-nextest.

cargo nextest run

Dependencies

~0.6–1.1MB
~23K SLoC