Python
Neuroslice provides a Python API for integration into your scripts and processing pipelines.
Core Functions
The main functions available are:
predict()- Generate mask from array datapredict_mask()- Generate mask from NIfTI filepredict_multi_axis()- Process multiple orientationsmask2cuboid()- Convert mask to bounding cuboidunite_masks()- Generate the union of multiple masks
Basic Usage
Generate Mask from File
from neuroslice import predict_mask
import nibabel as nib
# Generate mask
mask = predict_mask("input.nii.gz", axis=1, verbose=True)
# Save output
nifti = nib.load("input.nii.gz")
output = nib.Nifti1Image(mask.astype("uint8"), nifti.affine, nifti.header)
nib.save(output, "output_mask.nii.gz")
Process from Array
from neuroslice import predict
import nibabel as nib
# Load data
nifti = nib.load("input.nii.gz")
data = nifti.get_fdata()
# Generate mask
mask = predict(data, axis=1, verbose=True)
Advanced Usage
Multiple Orientations
Process along multiple axes and combine results:
from neuroslice import predict_multi_axis
import nibabel as nib
# Load data
nifti = nib.load("input.nii.gz")
data = nifti.get_fdata()
# Process multiple axes
mask = predict_multi_axis(data, axis=[0, 1, 2], verbose=True)
# Save result
output = nib.Nifti1Image(mask.astype("uint8"), nifti.affine, nifti.header)
nib.save(output, "combined_mask.nii.gz")
Or using predict_mask:
from neuroslice import predict_mask
# Process multiple axes directly
mask = predict_mask("input.nii.gz", axis=[0, 1, 2], verbose=True)
Convert to Cuboid
Convert a mask to its bounding cuboid:
from neuroslice import mask2cuboid
# Convert existing mask
cuboid_mask = mask2cuboid(mask)
Combine Multiple Masks
Unite masks from different processing runs:
from neuroslice import unite_masks
# Generate masks from different orientations
mask1 = predict(data, axis=0, verbose=False)
mask2 = predict(data, axis=1, verbose=False)
mask3 = predict(data, axis=2, verbose=False)
# Combine using union
combined = unite_masks(mask1, mask2, mask3)
Complete Workflow Example
Processing Pipeline
import nibabel as nib
from neuroslice import predict_mask, mask2cuboid
from pathlib import Path
def process_brain_scan(input_path, output_dir, use_cuboid=False):
"""
Process a brain scan and save the tumor mask.
Args:
input_path: Path to input NIfTI file
output_dir: Directory to save output
use_cuboid: Whether to use cuboid mode
"""
# Create output directory
output_dir = Path(output_dir)
output_dir.mkdir(parents=True, exist_ok=True)
# Generate mask
print(f"Processing {input_path}...")
mask = predict_mask(input_path, axis=1, verbose=True)
# Convert to cuboid if requested
if use_cuboid:
mask = mask2cuboid(mask)
# Save output
input_name = Path(input_path).stem.replace('.nii', '')
output_path = output_dir / f"{input_name}_mask.nii.gz"
nifti = nib.load(input_path)
output = nib.Nifti1Image(mask.astype("uint8"), nifti.affine, nifti.header)
nib.save(output, output_path)
print(f"Mask saved to: {output_path}")
return mask
# Use the function
mask = process_brain_scan("brain.nii.gz", "results", use_cuboid=True)
See Also
Command-Line Interface - Command-line interface usage
List of commands - Complete API documentation