|
|
Line 1: |
Line 1: |
− | [[Documentation-3.6|Return to Slicer 3.6 Documentation]]
| |
| | | |
− | __NOTOC__
| |
− | ===Module Name===
| |
− | 4D Analysis Module
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysisModuleScreenShot-3.5.png|thumb|280px|Screenshot of 4D Analysis Module for lung perfusion data. The module provides several functionality to analyze intensity variation in specified regions of interest, including plotting and curve fitting.]]
| |
− | <!--|[[Image:FourDAnalysisModuleScreenShot_Prostate-3.5.png|thumb|280px|Screenshot of 4D Analysis Module for Prostate DCE MRI.]]-->
| |
− | |}
| |
− |
| |
− | == General Information ==
| |
− | ===Module Type & Category===
| |
− |
| |
− | Type: Interactive
| |
− |
| |
− | Category: 4D
| |
− |
| |
− | ===Authors, Collaborators & Contact===
| |
− | * Junichi Tokuda, Ph.D., Brigham and Women's Hospital
| |
− | * Wendy J Plesniak, Ph.D., Brigham and Women's Hospital
| |
− | * Ron Kikinis, M.D., Brigham and Women's Hospital
| |
− | * Hiroto Hatabu, M.D., Ph.D., Brigham and Women's Hospital
| |
− | Contact: Junichi Tokuda, tokuda at bwh.harvard.edu
| |
− |
| |
− | ===Module Description===
| |
− | The 4D Analysis Module allows you to analyze a time-series of 3D images (4D image) on [http://www.slicer.org/ 3D Slicer]. Currently, the module offers the following features:
| |
− | *'''Intensity plot.''' The module can draw intensity curves at the specified regions of interest.
| |
− | *'''Pharmacokinetic model analysis. (SciPy required)''' The users can perform pharmacokinetic model analysis based on the intensity curves. Models are defined in Python scripts so that the users can modify the existing models or create their own pharmacokinetic models.
| |
− | *'''Parameter map. (SciPy required)''' The module also allows generating a map of pharmacokinetic parameters.
| |
− |
| |
− | In default, only the intensity plot is available. To use the other functions, you need to [[Slicer3:Python| install scipy for 3D Slicer]] and recompile 4D Analysis module. Please refer the section bellow for more detail.
| |
− |
| |
− | == Usage ==
| |
− |
| |
− | ===Quick Tour of Features and Use===
| |
− | ====Basic features====
| |
− | * '''Active 4D Bundle:''' Specify the active 4D image.
| |
− | * '''Frame Control:''' View the 4D image data. 4D images can be loaded from [[Modules:FourDImage-Documentation-3.5| 4D Image Module]].
| |
− | * '''Intensity Plot:''' Generate intensity curves and display them on this panel. The curves are measured for each labeled region in the specified label map. If the label map contains multiple labels, the module generates intensity curve for each label. The user can also load/save curves from/to CSV files. The plotting graph can be controlled from Python interactor or other 3D Slicer modules. See [[Slicer3:2DPlotting]] for more detail.
| |
− | ====Advanced features (require SciPy installation)====
| |
− | * '''Model/Parameter:''' Select Python script and parameters for pharmacokinetic analysis.
| |
− | * '''Curve Fitting:''' Perform a single curve fitting. It displays the result parameters.
| |
− | * '''Parameter Map:''' Generate parameter map. The module performs curve fitting for each voxel in the specified region.
| |
− |
| |
− | ===Tutorial 1: Plotting time-intensity curve from 4D image data===
| |
− | The module allows plotting mean intensities in the specified region on the series of images.
| |
− |
| |
− | ====Step 1: Load 4D image====
| |
− | Please follow [[Modules:FourDImage-Documentation-3.5| '''4D Image''' module documentation page]] to load time-series image data.
| |
− |
| |
− | ====Step 2: Define a mask====
| |
− | After loading 4D image from [[Modules:FourDImage-Documentation-3.5| '''4D Image''']] module, open [[Modules:Editor-Documentation-3.4| '''Editor''']] and make a label map to mask regions you want to measure mean intensities. When you make a label map, please specify one of display volume nodes created by 4D Image module (a volume node with a name "*_Display1") (Figure 2-3).
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysis_SelectDisplayVolumeNode.png|thumb|240px|'''Figure 2.''' Selecting display volume node, before drawing the regions.]]
| |
− | |}
| |
− | {|
| |
− | |[[Image:FourDAnalysis_LabelImage.png|thumb|600px|'''Figure 3.''' Multiple regions can be specified for time-intensity plotting.]]
| |
− | |}
| |
− |
| |
− | ====Step 3: Plot====
| |
− | Open '''4D Analysis''' module in '''4D''' category, and choose the 4D image loaded in the first step from '''Active 4D Bundle''' node selector menu (Figure 4). If you have only one 4D image loaded on your Slicer, it should be already there.
| |
− |
| |
− | After specifying the 4D image, open '''Intensity Plot ''' tab and select the mask volume, which you created in the previous step (Figure 5), and then press ''Generate''' button. If you have multiple labels in the label volume, the module generates time-intensity curves for each label (Figure 6).
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysis_SelectTimeSeriesBundleNode.png|thumb|240px|'''Figure 4.''' Select 4D image in the node selector.]]
| |
− | |[[Image:FourDAnalysis_SelectLabelImage.png|thumb|240px|'''Figure 5.''' Select label volume node from the mask selector, which has been created in the prvious step.]]
| |
− | |}
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysis_IntensityPlot.png|thumb|600 px|'''Figure 6.''' Result of time-intensity curve plotting. The line colors correspond to label colors except black line. (Black line indicates intensities in the region labeled white.]]
| |
− | |}
| |
− |
| |
− | ====Step 4: Show and hide curves====
| |
− | The column list bellow the graph allows you to show and hide the curves by clicking the check boxes in the '''V''' column.
| |
− | {|
| |
− | |[[Image:FourDAnalysis_Visibility.png|thumb|240px|'''Figure 7.''' Check boxes to control visibility of curves.]]
| |
− | |}
| |
− |
| |
− | ====Step 5: Save intensity curve data====
| |
− | To save the plot data as CSV files, turn on the check boxes in the left column of the curves to save in the column list, and then click the '''Save''' button bellow the column list (Figure 8). The Slicer will pop up a dialog window (Figure 9). The curve data is stored in CSV files, which can be loaded to 4D Analysis Module later.
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysis_SaveCurve.png|thumb|240px|'''Figure 8.''' To save curves, check the boxes on the left of the list, then click the '''Save''' button.]]
| |
− | |}
| |
− | {|
| |
− | |[[Image:FourDAnalysis_SaveCurveDialog.png|thumb|600px|'''Figure 9.''' The dialog box to select a directory to save the cueve data in CSV format.]]
| |
− | |}
| |
− |
| |
− | ====Step 6: Delete intensity curve data====
| |
− | To delete the plot data, turn on the check boxes in the left column of the curves to delete in the column list, and then click the '''Delete''' button bellow the column list (Figure 10). The Slicer will pop up a confirmation dialog box(Figure 11).
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysis_DeleteCurve.png|thumb|240px|'''Figure 10.''' To delete curves, check the boxes on the left of the list, then click the '''Save''' button.]]
| |
− | |}
| |
− | {|
| |
− | |[[Image:FourDAnalysis_DeleteCurveDialog.png|thumb|600px|'''Figure 11.''' The confirmation dialog box for deletion of the curves.]]
| |
− | |}
| |
− |
| |
− | == Development ==
| |
− | ===Setting up SciPy-based curve analysis===
| |
− | The module offers several intensity curve analysis methods. Currently those methods are implemented based on [http://www.scipy.org/ Python SciPy package], which does not come with 3D Slicer in default. If you are interested in trying them, please follow the steps bellow:
| |
− |
| |
− | ====Step 1: Install SciPy====
| |
− | Please refer [[Slicer3:Python| Slicer3 Python page]]. We have a good experience to build SciPy with 3D Slicer in Mac OS X 10.5; you just install GNU Fortran complier, turn on '''USE_SCIPY''' option in slicer_variables.tcl in the source directory and then run '''Scripts/getbuildtest.tcl''' to build 3D Slicer. You can get Fortran binary at [http://r.research.att.com/tools/ R for Mac OS X Developer's Page]. You may try the same on Linux, but the build script may not work well in some Linux environment.
| |
− |
| |
− | ====Step 2: Building 4D Analysis module with SciPy Option====
| |
− | If you haven't built 3D Slicer yet, edit Line 11 in FourDAnalysis/CMakeLists.txt as follows:
| |
− |
| |
− | 007:
| |
− | 008: # --------------------------------------------------------------------------
| |
− | 009: # Option: use Scipy for curve fitting (SciPy must be installed)
| |
− | 010:
| |
− | 011: option(FourDAnalysis_USE_SCIPY "Use SciPy for curve fitting." <font color=red>ON</font>)
| |
− | 012:
| |
− |
| |
− | then run getbuildtest.tcl script.
| |
− |
| |
− | If you have already built 3D Slicer, you can set FourDAnalysis_USE_SCIPY "ON" by running make with edit_cache option:
| |
− |
| |
− | $ cd <Slicer3-build directory>
| |
− | $ cd Modules/FourDAnalysis
| |
− | $ make edit_cache
| |
− |
| |
− | Make program will launch ccmake (full screen CMake configuration tool) (Figure 12), where you can turn on FourDAnalysis_USE_SCIPY macro. After generating a new make file, quit ccmake screen and run make.
| |
− |
| |
− | {|
| |
− | |[[Image:FourDAnalysis_ccmake.png|thumb|240px|'''Figure 12.''' CMake configuration screen.]]
| |
− | |}
| |
− |
| |
− |
| |
− | After building the module, run 3D Slicer to check if the 4D Analysis module has been built with SciPy option.
| |
− |
| |
− | ===Dependencies===
| |
− | The intensity curve analysis functions depend on SciPy package. Please turn on SciPy option when you build your 3D Slicer.
| |
− |
| |
− | ===Known bugs===
| |
− |
| |
− | Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.
| |
− |
| |
− |
| |
− | ===Usability issues===
| |
− |
| |
− | Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.
| |
− |
| |
− | ===Source code & documentation===
| |
− |
| |
− | Customize following [http://viewvc.slicer.org/viewcvs.cgi/ links] for your module.
| |
− |
| |
− | [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.
| |
− |
| |
− | == More Information ==
| |
− | ===2D Graph===
| |
− | The module provides a set of classes to support 2D Graph for intensity curve plotting, which can potentially be used for other projects. Please refer [[Slicer3:2DPlotting]] for more detail.
| |
− |
| |
− |
| |
− |
| |
− | ===Acknowledgment===
| |
− | This work is supported by NIH (5R21CA116271: Dynamic contrast-enhanced MRI of pulmonary nodule at 3T, PI: Hiroto Hatabu), NA-MIC, and NCIGT.
| |
− |
| |
− | ===References===
| |