I recently tried to download a dataset from MorphoSource (https://www.morphosource.org/concern/media/000084459?locale=en) to segment in 3D Slicer. The dataset is very large and I am trying to export a surface mesh of the data. However, when I try to threshold the image stack in Slicer the program invariably crashes. Specifically, I can threshold the model, but when I try to view the 3D volume or save it the program becomes unresponsive and crashes. My workflow is simply “load model → open segmentation module → threshhold → try to do something with threshholded image → crash”.
Notably, this dataset (~5 gB) is much smaller than others I have successfully loaded on this computer, and when I try to load the same data into Avizo/Amira the latter program will not load the image stack at all. It doesn’t even crash, the dataset or its loading screen just fails to appear.
The only thing I can think of is this image stack has more than 2000 slices. I remember reading that there is an issue in Avizo/Amira where if an image stack is more than 2000 images the program will fail to load it as it can only consider < 2000 slices at once (and I have had similar issues with scans over 2000 slices there). I was wondering if 3D Slicer has a similar issue?
Has anyone had this issue or know how to resolve it?
I’m going to have to double check some datasets, but I’m pretty sure I’ve loaded more than a few stacks (micro-CT volumes) with more than 2000 slices. I’m not aware of any such limitation in Slicer.
I have successfully loaded the dataset with ImageStacks at full resolution, see the screen capture below.
Apart from a weirdly reconstructed dataset (like circular cropping of the dentition), there is nothing wrong with the data. However, it is big. It is not 5.2GB (that’s the size of the compressed stack), but 8GB (see the outputsize in the screenshot). So you will need a GPU with at least 8GB of GPU RAM to visualize this in slicer. Otherwise it might not render (although it shouldn’t crash). Likewise, if you are going to segment this dataset you will need 64-80GB of RAM. Again, Slicer is only constrained by the available resources of the computer, there is no limit to slice number.
If you do not have such resources available to you, try importing the dataset as “half resolution”, or try setting a ROI to only import the region you are interested (eg., individual molars).
Windows 10
Processor = Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz 2.81 GHz
Installed RAM = 64.0 GB (63.9 GB usable)
System type = 64-bit operating system, x64-based processor
Based on this, it’s kind of surprising the dataset wouldn’t load, even though it would be bigger than expected. I still think the suggestions of it being a likely memory issue are correct.
I tried segmenting this dataset with our lab computer, which has heaps of RAM, and it worked fine. Most of the slowness of the operation comes from visualizing the 3D model. So if you disable it (until you are ready to export, or need to use a segmentation effect like scissors that require 3D model), you will get better performance.
However, the transient memory usage went as high as 68GB during segmentaiton, which can be the reason for your crash. Please set up sufficient virtual memory (probably at least 32GB) and on it shouldn’t crash anymore (e.g., during scissors operations memory usage went as high as 80GB).