Ok, thank you for your patience! I understand you may have already done some of the steps below, but I will cover all steps for the sake of completeness.
Prerequisites
To start, you will need to install 3D Slicer for your platform, which you can get here (I tested what I describe in the following using Slicer 5.6.2 stable release). You will also need to install SlicerIDCBrowser extension.
If you already have Slicer and the extension installed, make sure it is updated to the latest version! You can do that from the Slicer ExtensionBrowser.
Fetching the data
To get the data, open SlicerIDCBrowser module, click “Show browser” button, and select nlm_visible_human_project
collection in the popup. You can confirm you are using the latest version v19 of IDC data in the title of the window.
Very important: if you see v18, it means you do not have the latest version of IDC Browser, and may not be able to load the data properly, since the initial release of Visible Human in IDC had problems we just fixed in v19!
You can next select all of the studies for this collection to get the files on your computer. In the screenshot above, I de-select cryosection studies, since they are very large, and you will need lots of RAM to open those as a volume (more about this later).
Once you selected what you need, click “Download and Index” button. This will fetch the files to your computer into the folder specified in the “Settings” section of the SlicerIDCBrowser interface, and also will index those files into Slicer DICOM database.
Working with CT and MR images as volumes
To open the loaded images as volumes, you will need to go to the Slicer DICOM browser (click the button shown below).
From the DICOM browser, you can select any of the individual Series (think about one series as one stack of slices / one image volume) and click “Load” button to load it as a volume.
Now that you have it as a volume, you can scroll through the slices stack, and you can also play with volume rendering. There is a small trick you need to do first though, since Visible Human images have some imperfections (resolution is not uniform across the entire stack, there may be missing slices). When Slicer loads the data, it will try to compensate for those imperfections, by automatically transforming the images. But in order to see that transformed image in Volume Rendering, you first need to go to the “Data” module,
open the “Transform hierarchy” tab in that module, select the volume you just loaded, and if it is under a transform (as shown in the screenshot below), apply “Harden transform” from the popup menu.
After this you can switch to the “Volume Rendering” module,
where you can select the volume and toggle visibility of volume rendering. You can choose from the available presets depending on what you want to explore.
Saving volume in other formats
You can save the volume in alternative formats that may be more suitable for your python tools. Click “Save” button in the toolbar, select the volume and format, and save. You can load images saved in NRRD/NIfTI format using itk-python
or SimpleITK
, as an example (you should also be able to load DICOM series directly using those packages, but they will not automatically compensate for the imperfections that I mentioned earlier, and may only load a portion of the slices).
Working with cryosection images
The digitized cryosections are very large. Some of those volumes are on the order of 100s of GBs. The steps to load those in Slicer should be the same as above, but you need a lot of memory to load them. The tutorial we have in IDC-Tutorials/notebooks/collections_demos/nlm_visible_human_project.ipynb at master · ImagingDataCommons/IDC-Tutorials · GitHub demonstrates how to load a single slice. @pieper demonstrated that if you have a machine with ~200GB RAM, you can load this volume in Slicer, but I have not tried this myself. You can see it in the video below.
It should not be too hard to write a script to download original images one slice at a time, resample them to a larger pixel size (keeping track of the updated resolution), and reconstruct volume from those. But that would be a topic for a different tutorial.
Please let me know if this is helpful, and if you have further questions!