Can Slicer be used for splitting and reconstructing fragmented bone?

I downloaded Slicer years ago but decided to postpone learning it for a while. The time has come.

My objective is to start with a pristine cranium, perhaps in the Slicer format (NRRD?), or in one of these:

Cranium in Common 3D Formats

then, based on 2 existent X-rays (A/P and Lateral), carve an injury as seen below.

Does Slicer provide such capability? A tutorial would be most appreciated.

Thanks,

-Raymond
JFK Numbers

With Slicer, you would normally start from a 3D CT scan of the injured cranium instead of just X-ray scans.

If that’s not feasible then you can certainly load a 3D model and edit using Segment Editor module (see for example this craniotomy example).

You can try to align a 3D X-ray-like volume rendering of the cranium with the X-ray projection to make the cut positions more accurate.

1 Like

That is a good start, but it would be terrific if it were computer-assisted. May I request that feature?

See here 24 frames from a PBS Nova program that displays the work that I am trying to replicate:

Boston University Cranium Model as Shown in PBS Nova

The full video is here:

PBS Nova Cold Case JFK 2013 Documentary

TIA
-Raymond
JFK Numbers

You can do all that is shown in the video quite easily in Slicer. You can split bone fragments using scissors tool in Segment Editor then export them to model nodes so that you can move each of them separately.

In the video they used a Phantom 6-DOF positioning arm to move around bone segments. Now you can buy a virtual reality headset for $300 that comes with two 6-DOF controllers to grab the bone segments and rearrange them and see all that in immersive 3D view. Similarly how you move around tools in this SlicerVirtualReality demo video: https://youtu.be/F_UBoE4FaoY

1 Like

Thanks so much, Andras. That YouTube video is impressive. Slicer has certainly made a lot of progress since I first tried it years ago.

I have more newbie questions. I have been using the provided data files, a filled cranium is there. However, at this point I am only interested in the cranium bone. I have models in the usual CAD formats, the documentation says that Slicer can read OBJ and STL models.

What is the procedure to display my models? In 3D apps, I simply select “Import”. I tried “Add Data” but nothing is displayed.

TIA

-Raymond
JFK Numbers

You can segment the bone from CT images quite easily. See this example: Overview | 3D Slicer segmentation recipes

You can load STL and OBJ files, for example by drag-and-dropping them to the application window. If you want to cut them then you can load it directly as segmentation by selecting “Segmentation” in the “Description” column before clicking “OK”.

I am getting close, Andras, followed the provided example. However, I am facing two modes that seem mutually exclusive and incompatible.

(a) STL and OBJ files are nicely displayed, only in the 3D window. After I created a segment the scissor icon never becomes enabled.

(b) Data downloaded and built-in. There is a cranium perfect for my purposes. The 3 orthogonal views are displayed but the most I can achieve in the 3D/perspective window is a flat surface that may be rotated. Other than drawing a line, the scissors don’t seem to cut anything.

TIA

-Raymond
JFK Numbers

I will leave that for advanced practice. For now, I would like to encircle a region and press Delete. Hopefully the bone fragment will disappear? Or will I have to export and then remove?

Also, in which of the 4 windows will I be using the scissors tool?

TIA

-Ramon
JFK Numbers

You need to choose a master image. If you don’t have any image then you can generate one by exporting the segmentation node to a labelmap image (in Data module, right-click on the segmentation node and choose “Export visible segments to binary labelmap”). When you are in Segment Editor module, choose the created label volume as "Master volume.

1 Like

Please follow the craniotomy example that I’ve linked above.

1 Like

Prior to that, it seems that I need to “Convert Model to Segmentation Node”. I believe I found a bug. I have craniums from 2 vendors:

Very High Resolution: Behr Bros, Netherlands:
Behr Bros. High Quality Cranium

Medium Resolution: CG Studio
Human Skull - Anatomy 3D

From the first vendor I have high, med and low resolutions in OBJ and STL file formats. Using any of the 6 files, Slicer catches an exception:

-Ramon
JFK Numbers

All the cranium models from CG Studio are here:

Cranium Models from CG Studio

I will upload the ones from Behr Bros. later.

-Ramon
JFK Numbers

“bad allocation” means that the operating system was not able to allocate the requested amount of memory. Increase virtual memory size in your system settings, it’ll use disk space instead of physical RAM to fulfill memory needs (of course, this is much slower than having more physical memory in your system, so if you find the software too slow then you may consider upgrading your computer with more RAM).

1 Like

I closed all my apps and am using the smallest of the 6 models from Behr Bros. See images:

Some of the models that succeed (from CG Studio) are bigger.

I will run tests tomorrow from the corporate computers at the office.

-Ramon
JFK Numbers

16GB physical RAM should be OK, just adjust your settings to have 30GB virtual memory to make sure you don’t temporarily run out of memory in any case.

Size of the OBJ file does not matter, because only the only internal labelmap in the segmentation node consumes significant amount of memory. The larger the model’s physical extent and finer the resolution of the segmentation’s internal labelmap, the more memory you’ll need.

This should work for you:

  • Load obj file as model (you can only load STL files directly as segmentation)
  • Import model to segmentation node in Segmentations module
  • Export segmentation to binary labelmap in Data module (by right-clicking on segmentation node)
  • Go to Segment Editor module, select the binary labelmap as master volume
  • Apply Hollow effect if you use a simplistic model (such as this), where the cranium is modeled as a solid blob instead of a shell
  • Create a craniotomy as described in the page linked above (create a new segment, select Scissors effect, set masking editable area to “inside all segments”, scissors operation to “Fill inside”, draw in 3D view, etc.)
1 Like

Thanks for bearing with me, Andras. Please see below the 7 steps that I have taken, based on your first instructions above:

I will try similar variations, since the last step (Click on “Import” button) does not lead to expected outcome in the dialogs.

-Ramon
JFK Numbers

You did well. Did you continue? What did you do? What did you expect to happen? What happened instead?

1 Like

Being a clueless newbie, just wanted to double check.

BTW: I discovered a very useful module: as soon as I load my model, I select “Models”. I can see characteristics of the file, mesh type, the visibility and opacity may be adjusted. etc.

Will continue following your instructions.

Thanks,

-Ramon
JFK Numbers

After clicking on the “Import” button, I went to the “Data” module and selected the “Skull” model/node.

Thanks,

-Ramon
JFK Numbers

I found the problem. Was missing a step:

-Ramon
JFK Numbers

1 Like