Large data support in 3D Slicer

While volume sizes of the medical imaging (CT/MR) datasets haven’t changed in much in almost a decade, research imaging methods such as tiled microscopy, synchrotron, and nanoCT is pushing larger and larger datasets, any where from 10s of gigavoxels to terabyte of voxels. Even with common desktop microCT scanner, biology labs routinely generate 10GB+ volumes. I only see this trend getting stronger with time.

As the leading open-source biomedical visualization suite, I would like to see better support for such datasets in 3D Slicer. Our typical advise to downsample or crop to specific region is not always helpful, as one reason to create such large datasets in first place is to visualize/analyze entire specimen, not a specific region. Another reason is that structures of interests can only be a few voxel thick, but scattered across the entire volume (for inspiration see this tweet for 40GB stack of grasshopper wings scanned in Lawrence Livermore synchrotron).

I would like to initiate a shopping list of features that will make Slicer more efficient working with such large dataset, and identify ways/funding to incorporate this into Slicer. One assumption I have that users will be using desktops dozens of cores, and powerful GPUs and large RAM, but not necessarily clusters or parallel infrastructures common at supercomputing centers.

My minimum list of features consists of:

  1. Rapid I/O: parallel read/writes, efficient multi-threaded compression (as importing a 10GB stack with 2000-3000 slicer into Slicer right now takes in the order of minutes. Writing a compressed nrrd of this takes tens of minutes).
  2. Automatically down sample data to volume render within GPU HW capability (currently an invalid texture dimension error is thrown, if a single texture dimension exceeds the capability of the HW, and don’t render anything).
  3. Being able to display regional data in full resolution
  4. Segmentation tools and other working as if this is a normal sized data (e.g., support for OOM execution of datasets).

Feel free to contribute your asks and inputs to this thread.

@pieper @jcfr @thewtex @lassoan

(there was a previous thread that I accidentally delete now is removed. So I started a new one).

2 Likes

Somewhat related to the topic of large data, I gave a presentation about 3D Slicer to the CSBC imaging working group in response to their inquiries about using it for large microscopy datasets.

The slides are here and recording of the event can be found here. You will need a Synapse account to download it. Anybody can sign up at www.synapse.org

Also in this recording is a talk by Kristen Browne from NIAID talking about her work on HuBMAP anatomy modes from visible human data and other sources using a pipeline that includes Slicer and other modeling software.

1 Like

Just wanted to cross reference a GitHub issue I just created about the memory usage during segmentation of large volumes. I would love to see some features and optimizations implementing into Slicer to solve these crazy memory usages often 10x the size of the dataset.