mni2mz3

Crates.iomni2mz3
lib.rsmni2mz3
version1.0.0
sourcesrc
created_at2023-11-07 05:42:44.243868
updated_at2023-11-15 23:01:17.951757
descriptionBrain imaging surface mesh file format converter
homepage
repositoryhttps://github.com/FNNDSC/mni2mz3
max_upload_size
id1027607
size53,173
Jennings Zhang (jennydaman)

documentation

README

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
Commit count: 30

cargo fmt