Issue using Swiss Skull Stripper Module

Hello,

I just started trying out 3D Slicer: currently using version 4.9.0

I thought I entered the correct information into the GUI, but when I went to run it I received the following error:

Swiss Skull Stripper standard error:

Failed to read input atlas label volume.

itk::ImageFileReaderException (0x104a50388)
Location: "unknown" 
File: /Users/kitware/Dashboards/Nightly/Slicer-0-
build/ITKv4/Modules/IO/ImageBase/include/itkImageFileReader.hxx
Line: 143
Description:  Could not create IO object for reading file 
/var/folders/0c/l9qjt85j7ns3j3lctwhs82wc1kd6y7/T/Slicer-dlevitas/CACHI_vtkMRMLLabelMapVolumeNodeB.nrrd

The file doesn't exist. 

Filename = /var/folders/0c/l9qjt85j7ns3j3lctwhs82wc1kd6y7/T/Slicer-
dlevitas/CACHI_vtkMRMLLabelMapVolumeNodeB.nrrd

I already converted my Dicoms using a different program, and my atlas and input files are in NIFTI format; however, I’m unsure if things are failing because the files aren’t in .nrrd format.

Does anyone have any suggestions regarding this issue? Thanks for the help.

Dan

Try to change temporary folder in Application Settings to a simpler one (when your username contain non-ascii characters then the default temporary folder location may not work).

Also, right now we are changing many things in the nightly builds, so for a couple of weeks it may be better to use the stable version (4.8).

Hi Andras,

Thank you for your response. I installed the stable version for Mac OS X (ver 4.8.1), and changed the temporary folder, but I continue to get a similar error:

Swiss Skull Stripper standard error:

Failed to read input atlas label volume.

itk::ImageFileReaderException (0x105ae8938)
Location: "unknown" 
File: /Users/kitware/Dashboards/Package/Slicer-481-
package/ITKv4/Modules/IO/ImageBase/include/itkImageFileReader.hxx
Line: 143
Description:  Could not create IO object for reading file 
/Users/dlevitas/Desktop/3Dslicer/CFJGF_vtkMRMLLabelMapVolumeNodeB.nrrd
The file doesn't exist. 
Filename = /Users/dlevitas/Desktop/3Dslicer/CFJGF_vtkMRMLLabelMapVolumeNodeB.nrrd

It seems that it can’t find the CFJGF_vtkMRMLLabelMapVolumeNodeB.nrrd file, but I’m unsure where this file would be, or how to perform the skull strip without it.

For “Atlas mask volume” you have to select atlasMask volume. Note that the volume only shows up there if it is loaded as “labelmap”. Unfortunately, atlasMask.mha file is not loaded as labelmap by default but in the Add data window you have to check Show options and then check LabelMap.

@Lorensen Could you rename the atlas mask file to atlasImage-label.mha? If a volume’s file name ends with -label then it is loaded as LabelMap by default and it would make it much easier to use the module. Or, even better, extensions can register their own data sets in Sample Data module, so the user could easily go to Sample Data module and download the mask by a single click. See how it is done for Sequences module: https://github.com/SlicerRt/Sequences/tree/master/SequenceSampleData

I was having trouble navigating the GUI, however, I managed to solve my problem by using this in the terminal command line:

/Applications/Slicer.app/Contents/Extensions-26813/SwissSkullStripper/lib/Slicer-4.8/cli-modules/SwissSkullStripper --atlasMRI atlas_with_skull.nii.gz --atlasMask atlas_no_skull_mask.nii.gz input_data.nii.gz output_brain_no_skull.nii.gz output_mask_no_skull.nii.gz

You can also use default atlas by not specifying any atlas image or mask inputs at all.

Hi andras,
I have used skull stripper multiple times. it does do good with sample data. but not with other data.

How can I fix the above problem. it misses the brain portion.

Thank you
Regards,
Saima Safdar

If your images are too different from the default atlas then you can use one of your own typical images and corresponding segmentation as input.

Hi Andras,

I am having the same issue as Saima and I am trying to create a atlas using my own typical images as you said in your last reply. I am a bit stuck, do you have any resources or tutorials that can help with explain this process?

Regards,
James

The atlas is simply a single image and corresponding labelmap. You can choose these images in the atlas section and skull stripping should just work. If not then describe in detail what did you do, what did you expect to happen, and what happened instead.

Hi Andras,

I tried two methods: 1) I used my own T1 MRI DICOM image set and the default atlas and mask image files obtained from the Swedish Skull Stripper module documentation page. I ran into problems as this seemed to have stripped away a layer of brain along with the skull. I expected that the Swedish Skull Stripper module would leave the full brain intact while stripping away the skull and dura. See attached screenshots.

  1. I used a patient mask I created in 3D slicer using the Segment Editor module using my own MRI image set. The same result occurred, the output was too small and the module eroded too much of the brain (see attached screenshot). I tried to make the input mask bigger so I used the entire skull as a mask, unsuccessfully.


Before run, with default atlas mask


After applying Swedish Skull Stripper with default mask, some areas of brain stripped


After applying Swedish Skull Stripper with default mask, overlaid with patient volume input


Using Swedish Skull Stripper with a custom mask, output overlaid with patient volume input

Could you share the data sets that you used for these tests so that we can see if something special about this data that makes it a difficult problem or there is a software bug?

Hi Andras,

Sure! I have the files linked here:

Regards,
James

I’ve checked the image and it seems that the problem is that the default atlas image of SwissSkullStripper is just too different from your image.

I’ve created a brain segmentation from the HNCMA atlas and it worked much better - you can download the files from here and select them as atlas volume and atlas mask volume in the Atlas section.

If the result is not still not good enough then you can either fix it up manually in the Segment Editor module or use an atlas that looks more similar to your image.

3 Likes