Skip to main content

Utilities for 3D Slicer

Reason this release was yanked:

Missed requests package dependency

Project description

Python package Upload Python Package PyPI version

slicerio

Python utilities for 3D Slicer interoperability.

The package contains utility functions for reading and writing segmentation files and convenience functions for using 3D Slicer via its web API. More functions will be added in the future.

Installation

Using pip:

pip install slicerio

Examples

Read segmentation and show some information about segments

import slicerio
import json

segmentation_info = slicerio.read_segmentation_info("Segmentation.seg.nrrd")

number_of_segments = len(segmentation_info["segments"])
print(f"Number of segments: {number_of_segments}")

segment_names = slicerio.segment_names(segmentation_info)
print(f"Segment names: {', '.join(segment_names)}")

segment0 = slicerio.segment_from_name(segmentation_info, segment_names[0])
print("First segment info:\n" + json.dumps(segment0, sort_keys=False, indent=4))

Extract selected segments with chosen label values

import slicerio
import nrrd

input_filename = "path/to/Segmentation.seg.nrrd"
output_filename = "path/to/SegmentationExtracted.seg.nrrd"
segment_names_to_labels = [("ribs", 10), ("right lung", 12), ("left lung", 6)]

voxels, header = nrrd.read(input_filename)
extracted_voxels, extracted_header = slicerio.extract_segments(voxels, header, segmentation_info, segment_names_to_labels)
nrrd.write(output_filename, extracted_voxels, extracted_header)

View files in 3D Slicer

It is useful to load several files in a single Slicer instance, because then there is no need to wait for multiple application startups and multiple data sets can be compared in one environment. This can be achieved by activating 3D Slicer's Web Server module, which provides a web API to control the application.

For example, an image file can be loaded with the command below. The command starts a new Slicer application instance with the web API enabled.

import slicerio
import os
slicerio.view_file("path/to/SomeImage.nrrd", slicer_executable=f"{os.environ["LOCALAPPDATA"]}/NA-MIC/Slicer 5.2.0/Slicer.exe")

A segmentation file can be loaded in the same Slicer instance:

import slicerio
slicerio.view_file("path/to/Segmentation.seg.nrrd", "SegmentationFile")

Supported file types:

  • image files (nrrd, nii.gz, ...): VolumeFile
  • segmentation file (.seg.nrrd, nrrd, nii.gz, ...): SegmentationFile
  • model file (.stl, .ply, .vtk, .vtp, .vtu, ...): ModelFile
  • markup file (.mrj.json): MarkupsFile
  • transform file (.tfm, .h5, .txt): TransformFile
  • spreadsheet file (.csv, .tsv): TableFile
  • text file (.txt, .json, ...): TextFile
  • sequence file (.mrb, .seq.nrrd): SequenceFile
  • Slicer scene file (.mrml, .mrb): SceneFile

Project details


Download files

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

Source Distribution

slicerio-0.1.4.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slicerio-0.1.4-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file slicerio-0.1.4.tar.gz.

File metadata

  • Download URL: slicerio-0.1.4.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.3.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.4

File hashes

Hashes for slicerio-0.1.4.tar.gz
Algorithm Hash digest
SHA256 7ae8beaca06abb10809a28dd640d7d9466dbe026592a6ae313a5d0d41b96aee6
MD5 539368903b8f95440af53f28b46d8ac0
BLAKE2b-256 72ef3ec499fcf05ef737b90c8c6371a864bdc2b4e59331ebce118e74626a4e6a

See more details on using hashes here.

File details

Details for the file slicerio-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: slicerio-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.3.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.4

File hashes

Hashes for slicerio-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 53a785b359b98d32603525fbe9e0699dc1c8e02f8adda8076013b5f136b14c84
MD5 d0de879b602435d64f5492bea48c9201
BLAKE2b-256 61ea55152009738f6d3562aeafc252b8d89ec560a5844eeaf0d6cc97d98f846b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page