This article gives an overview of the open source medical imaging tool called 3D Slicer, which has been released under a BSD-style licence, and is a tool for visualisation and image analysis.
The computer has become an integral part of our lives and the medical field is no different. All the data collected by MRI scanners and instruments for endoscopy, thermography, etc, is analysed by software that employs heavy digital-signal-processing algorithms. Many open source tools have now begun to replace their proprietary counterparts in this domain, reducing the overall cost of operations to some extent.
3D Slicer is one such open source tool that is used for 3D image analysis and visualisation of the data collected by medical imaging instruments. Slicer provides a GUI with the data. Besides creating 3D surface models for conventional MRI scanned data, it has been used for non-rigid image segmentation and to incorporate models of neuro-vascular bundles (nerves, arteries, veins and lymphatics that run together in the body).
The origins of Slicer go back to 1998, when it was started just as a post-graduate thesis project between the Surgical Planning Laboratory at the Brigham and Women’s Hospital, and the MIT Artificial Intelligence Laboratory. The latest release is Slicer 4, which is a Qt enabled version. Slicer is a cross-platform tool and can run on Linux, Windows, Mac, etc. It is intended to work with tomographic data of all types, particularly CT and MRI.
I remember the early days of the CT revolution, when the equipment was expensive, requiring $10,000 worth of software and around $4,000 for hardware. 3D Slicer, being open source, is completely free and has cut down a big chunk of that expense.
Requirements
The basic requirements to run Slicer on your PC are:
1) Windows XP or more recent, Linux (x86 or x86_64), Mac OS X (PPC or Intel)
2) 2 GB RAM (minimum)
3) At least 128 MB of on-board graphic memory
Mac OS X will need X11 or XQuartz to be installed prior to Slicer’s installation.
Starting up
At the time of writing this article, I used release 3.6.3 and I ran it on Fedora 16 with no problems. You can get it from http://www.slicer.org/pages/Special:SlicerDownloads. As the root user, extract the zip file to /opt, go to the directory where it has been extracted and fire up Slicer as follows:
tar -xvzf Slicer3-3.6.3-2011-03-04-linux-x86.tar.gz -C /opt
cd /opt/Slicer3-3.6.3-2011-03-04-linux-x86
./Slicer3
Try it out!
So, that’s enough of talk! Let’s try out an example of this amazing tool. First, you’ll need raw data. Don’t panic! You don’t have to get an MRI scanner. For mere practice, you can easily download an example data set from: http://bit.ly/MfYmnc
Extract the downloaded zip file to any suitable location and give it a name like CT Data. In Slicer, click File ? Add Volume and then select the first file from CT Data. You will see your data. It may take some time if your system is slow. Slicer automatically loads the three orthogonal slices.
The fourth last button on the toolbar (located at the top) can be used to re-size the image. Click on it and select Four-up layout and the orientation will change as shown in Figure 3. Now click on the same menu and click on Green slice only layout, and the third image will be shown, filling up the whole window.
Let’s modify the three images. The tool-bar at the top left contains a drop-down menu next to Modules. Select Volumes. You’ll find various parameters to adjust the image rendering, but to put it simply, just use the slider in the display part of the volume accordion to obtain a sharp image, as shown in Figure 5.
You can move the slider above the CT image, and move back and forth through the skull. The number at the right (in mm) tells you how much of the image you have gone through.
Segmentation
You may even want to analyse some special part of the scanned image. The process by which you select useful parts of the data for further analysis is called segmentation. In Slicer, use a colour-coded label to indicate what is being segmented. For example, you may use blue for bones and green for tissue, as I’ve done here for this demonstration. Now go to the same drop-down menu next to Modules and select Editor, which will appear in the left panel. From the Edit Selected Label Map accordion choose from various labels. I selected green which represents tissue. Now we are ready for segmentation. There are various other ways to do this, but for beginners, let’s use Threshold, as it is a quick method. On the left column, you will find a series of buttons. All have mouse hints; hover over them to find the button called Threshold. Click on it and you’ll see a green pulsating image all over the CT scan monitor. Keep adjusting the slider bars until you get the skull part highlighted with green. Then hit Apply. The image is now segmented!
This is called scene creation. You can save it as a scene, and later load the scene directly for further analysis or to create a 3D model of the skull.
Now, from the fourth last button on the tool-bar, select Conventional layout. From the drop-down menu next to Modules, select All Modules and then Model Maker from this sub-menu. A new panel will pop up on the left. Set the parameter label to 1 for tissue, as done earlier. Enter the name of the scene saved previously in the Input Volume box.
Now you are done! Hit Apply and wait for a few minutes while Slicer creates the 3D model of the scanned segmented image. You can zoom in or out by scrolling the mouse, and even rotate around the three axes. You can then save your model in the VTK format.
Applications
Imaging and analysis
Slicer integrates several facets of scanned image, and provides automatic registration, i.e., aligning of data sets or semi-automatic segmentation by which you can analyse the body structure for tumours and vessels. This part has been demonstrated in the above section. You can do qualitative analysis of various 3D models of the scanned image, like the one generated above, which includes measuring angles, distances, surface areas and volumes.
Diffusion Tensor Imaging (DTI)
When neural axons of white matter in the brain or muscle fibres in the heart acquire an internal fibrous structure, leading to unbalanced diffusion of water through the tissue, DTI is done. Simply put, DTI is a Magnetic Resonance Imaging technique that enables the measurement of restricted water in the tissue. 3D Slicer can take the DTI data and perform the analysis in a few steps.
Neurosurgical planning
This deals with the generation of fibre tracts in the vicinity of a tumour. Here we export the same DTI scanned image and explore it with Slicer to perform neurosurgical planning.
ROI seeding
This is a tractography implementation that allows a user to seed tracts from a region of interest (ROI). The ROI is defined as a labelmap and has to be provided by the user. By using the editor module of Slicer described above, this can be implemented easily.
Biopsies
A recent application includes the robot-assisted MRI-guided prostate biopsy using 3D Slicer. This technique calibrates a robot to the MR coordinate system (as a digital device, a robot is ideally suited to accurately align an instrument to any point in the three-dimensional coordinate system of the magnetic resonance(MR) image) to guide it through the targeting volume and collect the scanned data to locate the tumour. The link below gives a brief overview of this magnificent technique, which interfaces with the robot through 3D Slicer: http://www.slicer.org/slicerWiki/images/0/06/ProstateNav_TutorialContestSummer2010.pdf
B-spline registration
B-spline registration in Slicer 3.6 allows for non-rigid registration between pre-procedure MRI and intra-procedure CT images during CT-guided tumour ablation in the liver. It provides increased tumour visualisation during the planning, targeting and monitoring phases of the ablation procedure.
Instrument tracking
Conventional image-guided surgery systems present the surgeon with data that was gathered prior to surgery, apart from tracking surgical instruments within the operating field and rendering the tracked devices along with the data. As a tracked surgical instrument is moved within the surgical field, it is rendered in the 3D view, and the reformatted slice planes follow its position, sweeping through the volumes as a form of virtual real-time imaging.
Non-surgical applications
3D Slicer is used in areas other than surgery for quantitative studies that require making measurements on source images and 3D models simultaneously. Applications to date include modelling the female pelvic floor, taking quantitative measurements of muscle mass, and conducting orthopaedic range of motion studies.
Practical deployment of Slicer
As the Slicer website says, 3D Slicer does not impose restrictions on its uses, but is not FDA approved. It’s the sole responsibility of the user to ensure compliance with applied rules and regulations. Most of the applications discussed above are being currently used by the Surgical Planning Laboratory at Brigham and Women’s Hospital, and at the MIT AI lab.
3D Slicer is not for clinical use. This is intended for educational, research and informational purposes only. It has also been declared that 3D Slicer copyright holders and contributors, Brigham and Women’s Hospital, and all affiliated organisations shall not be liable for any damages arising out of the use of 3D Slicer by any party for any purpose. In a nutshell, Slicer is not approved for clinical purposes.
The developers
Slicer is mostly written in C++ and is based on the NA-MIC kit. It is built on top of VTK. Other components include ITK, CMake, Qt and Python. It is an open source package and is available for easy modular expansion by developers who want to be a part of this research. Visit the link below for more detailed information: http://www.slicer.org/slicerWiki/index.php/Slicer3:Developers
Although Slicer is not approved for clinical use, it has varied applications and a lot more is expected from upcoming releases. Recently, it has also been used for dental health. As the research continues, many more applications will be developed.
References
[1] http://www.slicer.org/
[2] http://en.wikipedia.org/wiki/3DSlicer