https://www.slicer.org/w/api.php?action=feedcontributions&user=Kerstin&feedformat=atomSlicer Wiki - User contributions [en]2024-03-28T17:09:30ZUser contributionsMediaWiki 1.33.0https://www.slicer.org/w/index.php?title=Slicer3:Developers&diff=17147Slicer3:Developers2010-07-09T13:56:30Z<p>Kerstin: /* Quick Links to Slicer3 Projects */</p>
<hr />
<div>__NOTOC__<br />
= Slicer 3 Developer Page =<br />
[[Image:3DSlicerLogo-H-Color-212x121.png|right]]<br />
This page contains links to Slicer3 developer resources and events.<br />
<br />
Click here for <big><big>'''[[Slicer3:Events|Slicer3 Events]]'''</big></big><br />
<br />
== Slicer 3 Architecture Overview ==<br />
For more details on the slicer architecture see: [[media:Slicer 3-beta-2007-04-16.ppt | Architecture Slides]] (updated April, 2007).<br />
<br />
<gallery caption="Highlights of the new architecture" widths="300px" heights="200px" perrow="3"><br />
Image:Slicer3-Architecture.jpg<br />
Image:Slicer3-Architecture-MRML.jpg<br />
Image:ExecutionModelPlugins.png<br />
</gallery><br />
<br />
= Quick Links for Developers =<br />
This section centrally locates many existing (and developing) wiki pages useful to Slicer3 developers.<br />
<br />
== Slicer 3 Quick links to the Source code ==<br />
The Slicer3 svn repository:<br />
<br />
svn co http://svn.slicer.org/Slicer3/trunk Slicer3<br />
<br />
{|width="800px" border="1"<br />
|-<br />
|style="background:#ddf" width="60%"|'''General Slicer3 Quick Links'''<br />
|style="background:#ddf" width="40%"|'''Debugging Slicer3 Quick Links'''<br />
|-<br />
||[[Slicer3:Build_Instructions|Slicer3 build instructions]]<br />
||[http://www.cdash.org/CDash/index.php?project=Slicer3 Slicer3 Dashboard (After May 2, 2008)]<br />
|-<br />
||Use [http://viewvc.slicer.org ViewVC to browse the repository]<br />
||[http://www.na-mic.org/Slicer3/Dashboard Slicer3 Dashboard (Before May 2, 2008)]<br />
|-<br />
||[http://www.na-mic.org/Wiki/index.php/Engineering:SandBox Instructions for NA-MIC svn]<br />
||[http://na-mic.org/Mantis/main_page.php Slicer Bug Tracker]<br />
|-<br />
||[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Doxygen documentation for Slicer3].<br />
||<br />
|-<br />
||The [[Slicer3:VisualBlog|Slicer3 VisualBlog]] shows screenshots of slicer developments.<br />
||<br />
|-<br />
||Developers should follow the [[Slicer3:Style|Slicer 3 Coding Style]].<br />
|<br />
|}<br />
<br />
==Developers' Mailing List ==<br />
Discussion of Slicer3 takes place on the slicer-devel at massmail.spl.harvard.edu list. To join developer's mailing list, send a request to: slicer-devel-request at massmail.spl.harvard.edu with the keyword '''''subscribe''''' as the subject. Or access the [http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel slicer-devel archives and web administration interface].<br />
<br><br />
<br><br />
<br />
== Developer Documentation ==<br />
<br />
The following links provide more detail on internal aspects of the code. If you need more information, please follow up with email to the listed developers or the developer mailing list.<br />
<br />
{|width="800px" border="1"<br />
|-<br />
|style="background:#ddf" width="60%"|'''Introduction to Slicer3'''<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||[[Slicer3:Build_Instructions | Getting the software and troubleshooting]]<br />
||<br />
|-<br />
||[[media:Slicer 3-beta-2007-01-10.ppt | Overall Architecture]] and [[Slicer3:Style|Slicer 3 Coding Style]]<br />
||<br />
|-<br />
||[[Slicer3:Contributing_codes_to_Slicer3| Contributing codes to Slicer3]]<br />
||<br />
|-<br />
|style="background:#ddf"|'''Three module types (Command line, Loadable, Scriptable)'''<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||[[Media:Integrating with Slicer3.ppt | Integrating with the 3D Slicer]] || Jim and Steve<br />
|-<br />
||[[Slicer3:Execution_Model_Documentation | Command line modules and how to implement one]] and [[media:Slicer3Plugins.ppt|Tutorial]]<br />
||Jim <br />
|-<br />
|style="background:#ddf"|'''MRML'''<br/>Medical Reality Modeling Language (MRML) is a language implemented as a type of XML document, with new tags defined to handle medical image data types such as volumes, models or coordinate transforms. [http://www.na-mic.org/Wiki/images/e/e3/Slicer3_MRML.ppt MRML Slides]<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||[[Slicer3:Data_Model#Creating_Custom_MRML_Node_Classes | Creating and using new MRML node types]]<br />
||Alex<br />
|-<br />
||[[Slicer3:Data_Model#References_to_MRML_Nodes | Keeping references to MRML nodes ]]<br />
||Alex<br />
|-<br />
||[[Slicer3:Data_Model#Undo/Redo_Mechanism | How undo/redo works, and how to enable it in your code]]<br />
||Alex<br />
|-<br />
|style="background:#ddf"|'''GUI'''<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||[[Slicer3:EventBindings | Adding keyboard shortcuts]]<br />
||Wendy<br />
|-<br />
||[[Slicer3:Human_Interface_and_Style_Guide_for_Developers | GUI style guidelines (undergoing change for move to Qt)]]<br />
||Wendy<br />
|-<br />
||[[Slicer3:Usability#User-centered_design_practice_for_3DSlicer | User-centered design practice]]<br />
||Wendy<br />
|-<br />
||[[Slicer3:Slicer3Brand | 3DSlicer's logo and visual communication guidelines]]<br />
||Wendy<br />
|-<br />
||[[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3 | Incorporating your group's logo and attributions]]<br />
||Jim<br />
|-<br />
||[[Slicer3:GUI_Experiments | Some experiments/advanced techniques for developing slicer3 interfaces]]<br />
||Steve<br />
|-<br />
|style="background:#ddf"|'''Engineering'''<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||Tips for avoiding memory leaks: Current Practice<br />
||Steve<br />
|-<br />
||Tips for avoiding memory leaks: [[Slicer3:Memory Management | Suggested change to SmartPointers]]<br />
||Jim<br />
|-<br />
||Generating tests<br />
||Bill<br />
|-<br />
||[[Slicer3:Testing | Setting up Testing]]<br />
||<br />
|-<br />
||[[Slicer3:Builds | Build Information]]<br />
||<br />
|-<br />
||[[Slicer3:Launcher| The Launcher]]<br />
||<br />
|-<br />
|style="background:#ddf"|'''Documenting your module'''<br/>Infrastructure has been added to link to wiki pages from the "Help & Acknowledgment" panel in your module's GUI. We ask developers to fill out a brief document describing your module and its use. [[Documentation-3.5#Requirements_for_Modules|See here for more information.]]<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||[[Slicer3:DocumentationWink|Documenting a module with wink]]<br />
||<br />
|-<br />
|style="background:#ddf"|'''Integrate Slicer3 into a development environment'''<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br />
|-<br />
||[[Slicer3::Eclipse | Original Eclipse]]<br />
||Michael Keilhack<br />
|-<br />
||[[Slicer3::New Eclipse Instructions | Revised Eclipse Instructions]]<br />
||Curtis Lisle<br />
|-<br />
||[[Slicer3::MSVS200X | Microsoft Visual Studio 200x]]<br />
||<br />
|}<br />
<br><br />
<br />
== Quick Links to Slicer3 Projects ==<br />
<br />
Pending feature requests are [http://www.na-mic.org/Bug/search.php?project_id=1&severity_id=10&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 stored in the slicer bug tracker with severity setting of 'feature']. Please also refer to the '''[[Slicer3:FeatureRequests|Feature Requests]]''' from users when planning your implementations. <br />
<br />
Many Slicer related projects are worked on during the '''[http://wiki.na-mic.org/Wiki/index.php/Engineering:Programming_Events NA-MIC Project Events]''', please check there for recent updates.<br />
<br />
<br><br />
{|width="800px" border="1"<br />
|-<br />
|style="background:#ddf" width="60%"|'''Slicer3 Projects'''<br />
|bgcolor="#ddf" valign="top"|'''Key People'''<br/>Bold names are responsible for an aspect of the project.<br />
|-<br />
||[[Slicer3:LUTs_and_Ontologies|Lookup tables and Ontologies]]<br />
||'''Michael Halle'''<br />
|-<br />
||[[Slicer3:Data_Model|Data Model / libMRML]]<br />
||'''Alex Yarmarkovich''', Steve Pieper<br />
|-<br />
||[[Slicer3:Execution_Model_Documentation|Execution Model / Command Line Modules]]<br />
||'''Jim Miller''', Bill Lorensen<br />
|-<br />
||[[Slicer3:UIDesign|User Interface Design]]<br />
||'''Wendy Plesniak''', Qt: Julien Finet, Jean-Christophe Fillion-Robin. KWWidgets: Sebastien Barre, Yumin Yuan<br />
|-<br />
||[[Slicer3:DTMRI|DTMRI]]<br />
||'''Alex Yarmarkovich''' with help from Diffusion Images: '''Raul San Jose Estepar''', Tractography: '''Lauren O'Donnell''' [http://lmi.bwh.harvard.edu LMI]<br />
|-<br />
||[[Slicer3:Editor|Editor]]<br />
||'''Steve Pieper'''<br />
|-<br />
||[http://www.na-mic.org/Wiki/index.php/IGT:ToolKit Image Guided Therapy]<br />
||'''Haiying Liu'''<br />
|-<br />
||[[Slicer3:Slicer_Daemon|SlicerDaemon Interface (for unu, matlab)]]<br />
||'''Steve Pieper'''<br />
|-<br />
||[[Slicer3:Batchmake_Integration|Batchmake/GRID Integration]]<br />
||'''Julien Jomier''', Stephen Aylward<br />
|-<br />
||[[Slicer3:Registration|Registration Modules]]<br />
||'''Domink Meier'''<br />
|-<br />
||[[Slicer3:Python|Python Integration]]<br />
||'''Dan Blezek''', Steve Pieper<br />
|-<br />
||[[Slicer3:GPURayCaster | Volume Rendering using the VTK GPU acclerated Ray Caster]]<br />
||'''Lisa Avila / Sebastien Barre'''<br />
|-<br />
||[[Slicer3:Loadable Modules |Loadable Modules]]<br />
||'''Alex Yarmarkovich''', Steve Pieper, Terry Lorber<br />
|-<br />
||[[Slicer3:Extensions |Extensions]]<br />
||'''Steve Pieper''', Terry Lorber<br />
|-<br />
|style="background:#ddf" width="60%"|'''Project Snapshots'''<br />
|bgcolor="#ddf" valign="top"|This is list of projects which are not active at this time, or the linked pages show a snapshot of the project at a certain time.<br />
|-<br />
||[[Slicer3:Architecture/Features|Architecture/Features]]<br />
||'''Steve Pieper''', Group: Bill Lorensen, Ron Kikinis, Mike Halle, Noby Hata<br />
|-<br />
||[[Slicer3:Execution_Model|Execution Model / Command Line Modules]]<br />
||'''Jim Miller''', Bill Lorensen<br />
|-<br />
||[[Slicer3:Interface_Design|Interface Design and Usability ]]<br />
||'''Wendy Plesniak''', KWWidgets: Sebastien Barre, Yumin Yuan<br />
|-<br />
||[[Slicer3:ColorsFiducialsFreesurferModelmaker|Colors, Fiducials, FreeSurfer, ModelMaker]]<br />
||'''Nicole Aucoin'''<br />
|-<br />
||[[Slicer3:_Image_Guided_Therapy_%28IGT%29|IGT, Trackers]]<br />
||'''Haiying Liu'''<br />
|-<br />
||[[Slicer3:EM|EMSegment Interface]]<br />
||'''Kilian Pohl'''<br />
|-<br />
||[[Slicer3:Build/Test/Deploy|Build/Test/Deploy System]]<br />
||'''Katie Hayes'''<br />
|-<br />
||[[Slicer3:Grid_Interface|Grid Interface]]<br />
||'''Jeff Grethe''', Marco Ruiz<br />
|-<br />
||[[Slicer3:Volume Rendering |Volume Rendering]]<br />
||'''Yanling Liu'''<br />
|-<br />
||[[Slicer3:XNAT |XNAT Interface]]<br />
||'''Steve''', Wendy, Dan Marcus, Tim Olsen<br />
|-<br />
||[[Slicer3:Web Presence |Web Presence]]<br />
||'''Nicole Aucoin''', Zack Galbreath<br />
|-<br />
||[[Slicer3:TimeSeries and Multi-Volume Data | TimeSeries and Multi-Volume Data]]<br />
||Junichi Tokuda, Steve Pieper, Daniel Blezek, Dominik Meier, Wendy Plesniak<br />
|-<br />
||[[Slicer3:Remote Data Handling | Remote Data Handling]]<br />
||'''Steve Pieper, Nicole Aucoin, Wendy Plesniak'''<br />
|-<br />
||[[Slicer3:Module:QueryAtlas |Query Atlas]]<br />
||'''Wendy Plesniak'''<br />
|-<br />
||[[Slicer3:RadiologicalReview | Radiological review]]<br />
||'''Jim Miller'''<br />
|-<br />
||[[Slicer3:Transition_of_Slicer2.x_Modules|Transition of Selected Slicer2.x Modules to Slicer3]]<br />
||'''Nicole Aucoin''', Katie Hayes, Wendy Plesniak, Mathieu Malaterre<br />
|-<br />
||[http://wiki.slicer.org/slicerWiki/index.php/Modules:Volumes:Diffusion_Editor-Documentation-3.6 Diffusion Editor]<br />
||'''Kerstin'''<br />
|-<br />
||[[Slicer3:MistSlicer | MistSlicer]]<br />
||'''Yuichiro Hayashi''', Kensaku Mori, Nobuhiko Hata<br />
|-<br />
||[[Slicer3:LDDMM |LDDMM Interface]]<br />
||'''Steve''', Anthony Kolasny<br />
|-<br />
||[[Slicer3:Volume Rendering With Cuda|Volume Rendering With CUDA (NOT Active)]]<br />
||'''Ben'''<br />
|-<br />
||[[Slicer3:Pipeline_Integration|Loni Pipeline Integration]]<br />
||'''Jags'''<br />
|-<br />
||[[Slicer3:Performance_Analysis|Slicer3:Performance Analysis]]<br />
||'''Katie Hayes'''<br />
|-<br />
||[[Slicer3:ThreadingToolKit|Threading ToolKit]]<br />
||'''Dan Blezek, James Miller, Stephen Aylward'''<br />
|-<br />
||[[Slicer3:BrainlabModule|Brainlab Integration]]<br />
||'''Haiying Liu, Noby Hata, Ron Kikinis'''<br />
|}<br />
<br />
== Design Information ==<br />
*May 23, 2006: [http://www.na-mic.org/Wiki/index.php/Algorithms:Core1Visit_May06 Algorithm Core workshop.]<br />
*April 3, 2006: [[Media:Slicer_3-alpha-2006-04-03.ppt| Slicer 3 alpha]] technical powerpoint presentation.<br />
*Discussion page about using [[Qt in Slicer3|Slicer3:Qt]].<br />
*Implementation priorities from the slicer3 port are shown in this '''[[Slicer3:Status_Summary|Status Summary]]'''.<br />
<br />
== Resources ==<br />
<br />
Several books are available on the core topics related to slicer programming:<br />
<br />
* [http://kitware.com/products/books.html Kitware's books on VTK, ITK, CMake]<br />
* [http://www.akpeters.com/product.asp?ProdCode=2175 the ITK theory book]<br />
* [http://bioimagesuite.org/vtkbook5/index.html Xenios's book on Medical Imaging and VTK - many useful examples in tcl]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Documentation/3.6&diff=17146Documentation/3.62010-07-09T13:54:05Z<p>Kerstin: /* Core */</p>
<hr />
<div>[[image:Slicer3-6Announcement-v2.png| right |3.6 Icon]]<br />
=Introduction=<br />
<br />
3D Slicer is a flexible platform that can be easily extended to enable development of both interactive and batch processing tools for a variety of applications. <br />
<br />
3D Slicer provides image registration, processing of DTI (diffusion tractography), an interface to external devices for image guidance support, and GPU-enabled volume rendering, among other capabilities. 3D Slicer has a modular organization that allows the easy addition of new functionality and provides a number of generic features not available in competing tools. Finally, 3D Slicer is distributed under a non-restrictive BSD license.<br />
<br />
The interactive visualization capabilities of 3D Slicer include the ability to display arbitrarily oriented image slices, build surface models from image labels, and high performance volume rendering. 3D Slicer also supports a rich set of annotation features (fiducials and measurement widgets, customized colormaps). To the best of our knowledge, no individual segmentation tool provides such powerful visualization capabilities for the user as 3D Slicer. (These paragraphs were provided by A. Fedorov and C. Lisle)<br />
<br />
The 3.6 release of 3D Slicer contains significant changes both to the organization of the software and to the functionality. Please check the [[Announcements:Slicer3.6 |3.6 Announcement page]] for a list of those changes. The community contributing to Slicer 3.6 is [[Announcments-3.6-Team|acknowledged here]].<br />
<br />
*For information on how to use Slicer 3.6 please go to the [[Training|training]] pages.<br />
*For information on how to obtain Slicer 3.6 please go to the [http://www.slicer.org/pages/Special:SlicerDownloads Download Pages].<br />
*For sample data see [[SampleData|here]]<br />
<br />
=Main GUI=<br />
<br />
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak) <br />
*[[Modules:EventBindings-3.6| "Hot-keys" and Keyboard Shortcuts]] (Wendy Plesniak) <br />
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)<br />
*[[Modules:Saving-Documentation-3.6| Saving Data]] (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)<br />
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]] (Wendy Plesniak)<br />
*[[Modules:StereoViewing-3.6 | Setting up and using stereoscopic viewing ]] (Curt Lisle, Wendy Plesniak)<br />
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]] (Wendy Plesniak)<br />
<br />
=Modules=<br />
<br />
==Core==<br />
*[[Modules:Welcome-Documentation-3.6| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)<br />
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) <br />
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) <br />
**[[Modules:Volumes:Diffusion Editor-Documentation-3.6| Diffusion Editor]] (Kerstin Kessel)<br />
*[[Modules:Slices-Documentation-3.6|Slices Module]] (Jim Miller) <br />
*[[Modules:VolumeRendering-Documentation-3.6| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich)<br />
*[[Modules:Editor-Documentation-3.6|Editor]] (Steve Pieper) <br />
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) <br />
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]] (Nicole Aucoin) <br />
*[[Modules:Measurements-Documentation-3.6 | Measurements (rulers and angles) ]] (Nicole Aucoin)<br />
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich)<br />
*[[Modules:Transforms-Documentation-3.6| Transforms Module]] (Alex Yarmarkovich) <br />
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin)<br />
<br />
==Wizards==<br />
*[[Modules:ChangeTracker-Documentation-3.6|ChangeTracker]] (Andriy Fedorov)<br />
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta, Curt Lisle)<br />
<br />
==Informatics Modules==<br />
*[[Modules:FetchMI-Documentation-3.6| Fetch Medical Informatics Module]] (Wendy Plesniak, Dan Marcus) <br />
*[[Modules:QueryAtlas-Documentation-3.6|Query Atlas Module]] (Wendy Plesniak)<br />
<br />
==Registration==<br />
*[[Slicer3:Registration|'''Overview of all Registration Modules''' ]]: This page provides guidance for selecting the module that is optimal for your task.<br />
*Fast Registration<br />
**[[Modules:Transforms-Documentation-3.6|Transforms]]: manual & interactive rigid registration , (Alex Yarmarkovich)<br />
**[[Modules:AffineRegistration-Documentation-3.6|Fast Affine Registration]]: automated fast affine registration , (Jim Miller) <br />
**[[Modules:RigidRegistration-Documentation-3.6|Fast Rigid Registration]]: automated fast rigid (6 DOF) registration , (Jim Miller) <br />
**[[Modules:DeformableB-SplineRegistration-Documentation-3.6|Fast Nonrigid BSpline Registration]]: fast non-rigid registration , (Bill Lorensen) <br />
*Robust Registration<br />
**[[Modules:RegisterImages-Documentation-3.6|Expert Automated Registration]]: automated registration (rigid to affine to nonrigid) with extensive parameter options, robust initialization, variable DOF and masking options, (Casey Goodlett)<br />
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Robust Multiresolution Affine Registration]]: affine registration in multi-resolution scheme, robust to large differences in initial position or image content , (Casey Goodlett)<br />
** [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu).<br />
** [[Modules:BRAINSFit|BRAINSFit]] Hans Johnson (hans-johnson@uiowa.edu).<br />
** [[Modules:BRAINSResample|BRAINSResample]] Hans Johnson (hans-johnson@uiowa.edu).<br />
*Brain Only Registration<br />
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]]: calculate a transformation to align a single brain along theh AC-PC line (Nicole Aucoin)<br />
*Non-Raster-Image Data Registration<br />
**[[Modules:TransformFromFiducials-Documentation-3.6|Fiducial Registration]]: align two sets of fiducials (translation, rigid or similarity) (Casey Goodlett)<br />
**[[Modules:PythonSurfaceICPRegistration-Documentation-3.6|Surface Registration]]: automated surface-to-surface (model) registration (Luca Antiga, Daniel Blezek)<br />
<br />
==Segmentation==<br />
*[[Modules:SegmentationOverview3.6|Overview]]<br />
**[[Modules:EMSegmentTemplateBuilder3.6|EM Segment Template Builder 3.6]] (Kilian Pohl) <br />
**[[Modules:EMSegment-Command-Line3.6|EM Segment Command-Line]] (Kilian Pohl) <br />
**[[Modules:EMSegment-Simple3.6|EM Segment Simple]] (Kilian Pohl) <br />
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)<br />
**[[Modules:OtsuThresholdSegmentation-Documentation-3.6|Otsu Threshold Segmentation]] (Bill Lorensen)<br />
**[[Modules:Simple Region Growing-Documentation-3.6|Simple Region Growing]] (Jim Miller, Harini Veeraraghavan) <br />
**[[Modules:RobustStatisticsSeg-Documentation-3.6|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu).<br />
**[[Modules:BRAINSROIAuto-Documentation-3.6|BRAINSROIAuto]] Hans Johnson (hans-johnson@uiowa.edu).<br />
<br />
==Quantification==<br />
*[[Modules:LabelStatistics-Documentation-3.6|Label Statistics]] (Steve Pieper)<br />
*[[Modules:PETCTFusion-Documentation-3.6 | PET/CT Fusion Module]] (Wendy Plesniak)<br />
<br />
==Diffusion MRI==<br />
* [[Modules:DiffusionMRIWelcome-Documentation-3.6|Diffusion MRI Welcome Module]]<br />
* DWI Denoising<br />
**[[Modules:JointRicianLMMSEImageFilter-Documentation-3.6|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez) <br />
**[[Modules:RicianLMMSEImageFilter-Documentation-3.6|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer, C-F Westin) <br />
**[[Modules:UnbiasedNonLocalMeans-Documentation-3.6|Unbiased Non Local Means filter for DWI]] (Antonio Tristán Vega, Santiago Aja-Fernandez) <br />
* Diffusion Tensor Utilities<br />
**[[Modules:DiffusionTensorEstimation-Documentation-3.6|Diffusion Tensor Estimation]] (Raul San Jose Estepar) <br />
**[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.6 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar) <br />
**[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)<br />
* Tractography<br />
**[[Modules:ROISeeding-Documentation-3.6 | Label Seeding]] (Raul San Jose Estepar) <br />
**[[Modules:FiducialSeeding-Documentation-3.6|Fiducial Seeding]] (Alex Yarmarkovich, Steve Pieper) <br />
**[[Modules:DTIDisplay-Documentation-3.6|FiberBundles]] (Alex Yarmarkovich) <br />
**[[Modules:StochasticTractography-Documentation-3.6|Python Stochastic Tractography]] (Ryan Eckbo) <br />
**[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)<br />
<br />
==IGT==<br />
*[[Modules:OpenIGTLinkIF-Documentation-3.6| OpenIGTLinkIF Module]] (Junichi Tokuda)<br />
*[[Modules:NeuroNav-Documentation-3.6| NeuroNav Module]] (Haiying Liu)<br />
*[[Modules:ProstateNav-Documentation-3.6| ProstateNav Module]] (Junichi Tokuda, Andras Lasso)<br />
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)<br />
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles)<br />
<br />
==Time Series==<br />
* [[Modules:FourDImage-Documentation-3.6|4D Image (Viewer)]] (Junichi Tokuda)<br />
<br />
==Filtering==<br />
*[[Modules:N4ITKBiasFieldCorrection-Documentation-3.6|N4 Bias Field Correction]] (Andriy Fedorov), based on most recent version of ITK<br />
*[[Modules:MRIBiasFieldCorrection-Documentation-3.6|MRI Bias Field Correction]] (Sylvain Jaume)<br />
*[[Modules:CheckerboardFilter-Documentation-3.6|Checkerboard Filter]] (Bill Lorensen, Jim Miller)<br />
*[[Modules:HistogramMatching-Documentation-3.6|Histogram Matching]] (Bill Lorensen, Xiaodong Tao)<br />
*[[Modules:ImageLabelCombine-3.6|Image Label Combine]] (Alex Yarmarkovich) <br />
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin)<br />
*[[Modules:OtsuThreshold-Documentation-3.6|Otsu Threshold]] (Bill Lorensen) <br />
*[[Registration:Resampling|'''Resampling Tools''']]: available resampling methods, including tools to resample in place (e.g. change resolution or voxel anisotropy etc.)<br />
**[[Modules:ResampleVolume-Documentation-3.6|Resample Volume]] (Bill Lorensen)<br />
**[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)<br />
**[[Modules:ModelTransform-Documentation-3.6|Model Transform]]: "Resample triangulated surface models" (Alex Yarmarkovich)<br />
*Arithmetic<br />
**[[Modules:AddImages-Documentation-3.6|Add Images]] (Harini Veeraraghavan) <br />
**[[Modules:SubtractImages-Documentation-3.6|Subtract Images]] (Harini Veeraraghavan) <br />
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) <br />
** [[Modules:MaskImage-Documentation-3.6|Mask Image]] (Nicole Aucoin) Can be used to apply a mask such as a brain mask to a grey scale image<br />
**[[Modules:MultiplyImages-Documentation-3.6|Multiply Images]] (Harini Veeraraghavan) <br />
*Denoising<br />
**[[Modules:GradientAnisotropicFilter-Documentation-3.6| Gradient Anisotropic Filter]] (Bill Lorensen)<br />
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.6|Curvature Anisotropic Diffusion]] (Bill Lorensen)<br />
**[[Modules:GaussianBlur-Documentation-3.6|Gaussian Blur]] (Julien Jomier, Stephen Aylward)<br />
**[[Modules:MedianFilter-Documentation-3.6|Median Filter]] (Xiaodong Tao) <br />
*Morphology<br />
**[[Modules:VotingBinaryHoleFilling-Documentation-3.6|Voting Binary Hole Filling]] (Jim Miller) <br />
**[[Modules:GrayscaleFillHole-Documentation-3.6|Grayscale Fill Hole]] (Bill Lorensen)<br />
**[[Modules:GrayscaleGrindPeak-Documentation-3.6|Grayscale Grind Peak]] (Bill Lorensen)<br />
<br />
==Surface Models==<br />
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) <br />
*[[Modules:GrayscaleModelMaker-Documentation-3.6|Grayscale Model Maker]] (Bill Lorensen)<br />
*[[Modules:MeshContourSegmentation-Documentation-3.6|Mesh Contour Segmentation]] (Peter Karasev) <br />
*[[Modules:PythonSurfaceConnectivity-Documentation-3.6| Surface Connectivity]] (Luca Antiga, Daniel Blezek)<br />
*[[Modules:PythonSurfaceToolbox-Documentation-3.6| Surface Toolbox]] (Luca Antiga, Daniel Blezek) <br />
*[[Modules:ClipModel-Documentation-3.6| Clip Model]] (Alex Yarmarkovich) <br />
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)<br />
*[[Modules:MergeModels-Documentation-3.6| Merge Models]] (Nicole Aucoin)<br />
*[[Modules:ModelMirror-Documentation-3.6| Model Mirror]] (Wendy Plesniak) <br />
*[[Modules:PolyDatToLabelmap-Documentation-3.6| PolyDataToLabelmap]] (Xiaodong Tao, Nicole Aucoin)<br />
<br />
==Converters==<br />
*[[Modules:CropVolume-Documentation-3.6|Crop Volume]] (previously ExtractSubvolumeROI) (Andriy Fedorov)<br />
*[[Modules:CreateaDicomSeries-Documentation-3.6|Create a Dicom Series]] (Xiaodong Tao) <br />
*[[Modules:DicomToNRRD-3.6|Dicom to NRRD]] (Xiaodong Tao)<br />
*[[Modules:OrientImages-Documentation-3.6|Orient Images]] (Xiaodong Tao) <br />
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.6| Explode Volume Transform]] (Luca Antiga, Daniel Blezek)<br />
<br />
==Endoscopy==<br />
* [[Modules:Endoscopy-Documentation-3.6|Virtual Endoscopy]] (Steve Pieper)<br />
<br />
==Slicer Extensions==<br />
<br />
<br />
'''Introduction'''<br />
<br />
* Slicer Extensions are the "on-ramp" to the Slicer "highway". They provide are a mechanism for anybody, including third parties, to provide modules which extend the functionality of 3d Slicer.<br />
*'''While the Slicer license is suggested, it is not required for extensions. Please review the documentation of the extension carefully.'''<br />
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. <br />
* The version that is available through the extension manager is chosen by the developer of that extension<br />
* Not all extensions are available on all platforms. See here for the [[Documentation-3.6:ExtensionStatus|extension status]].<br />
* In case of problems with extensions, please talk directly to the developers of the extensions.<br />
<br />
'''Available Extensions'''<br />
<br />
* Import/Export<br />
** [[Modules:PlastimatchDICOMRT|Plastimatch > DICOM-RT Import]] Greg Sharp (gcsharp@partners.org).<br />
* Segmentation<br />
** [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''. <br />
** [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox at research.ge.com) .<br />
** [[Modules:SpineSegmentation-Documentation-3.6|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu). <br />
** [[Modules:SkullStripperModule|SkullStripperModule]] '''(in progress)''' Xiaodong Tao (taox AT research.ge.com). <br />
* Registration<br />
**Robust<br />
*** [[Modules:CMTK|CMTK]] Torsten Rohlfing (torsten@synapse.sri.com) (a.k.a. Computational Morphometry Toolkit) <br />
*** [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu). <br />
*** [[Modules:Plastimatch|Plastimatch > B-spline deformable registration]] Greg Sharp (gcsharp@partners.org).<br />
* Wizards<br />
** [[Modules:ARCTIC-Documentation-3.6|ARCTIC]] Cedric Mathieu and Clement Vachet (cvachet@email.unc.edu) (a.k.a Automatic Regional Cortical ThICkness) . <br />
** [[Modules:LesionSegmentationApplications-Documentation-3.6|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) .<br />
* Tractography<br />
** [[Modules:EMDTIClustering-Documentation-3.6|EMFiberClusteringModule]] Mahnaz Maddah (mmaddah@alum.mit.edu) (a.k.a. Quantitative Diffusion Tools).<br />
* DWI<br />
** [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) .<br />
* Time Series<br />
** [[Modules:FourDAnalysis-Documentation-3.6|4D Analysis (Time-series plotting and analysis including kinetic analysis of DCE MRI)]] Junichi Tokuda (tokuda@bwh.harvard.edu)<br />
* Quantification<br />
** [[Modules:LabelDiameterEstimation-Documentation-3.6|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) . <br />
* [[Image:Slicervmtk_logo.png|right|150px]] The Vascular Modeling Toolkit in 3D Slicer, Daniel Haehn (haehn@bwh.harvard.edu)<br />
<br />
:*[[Modules:VMTKSlicerModule|VmtkSlicerModule]] prerequisite install for all VMTK plug-ins<br />
<br />
:*[[Modules:VMTKCenterlines|VMTKCenterlines]] providing centerline computation of surface models<br />
<br />
:*[[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface<br />
<br />
:*[[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms for initialization and evolution<br />
<br />
:*[[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] providing vessel enhancement filters to highlight vascular or tubular structures<br />
<br />
'''Installation Instructions'''<br />
*Click on the cogwheel icon to start the extensions wizard (highlighted in red)<br />
[[image:Slicertoolbar.png|Extensions Wizard]]<br />
<br />
<br />
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]<br />
To add extension modules to an installed binary of slicer:<br />
* Use the View->Extension Manager menu option<br />
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.<br />
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.<br />
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).<br />
* Select the extensions you wish to install and click to download them. Installed extensions will be available when you restart slicer.<br />
* To turn modules on or off, you can use the Module Settings page of the View->Application Settings dialog.<br />
<br />
<br />
<br />
'''Info for Developers'''<br />
For explanations for developers see [[Slicer3:Extensions| here]]<br />
<br />
=Other information=<br />
<br />
'''Developer Tools'''<br />
*[[Modules:Cameras-Documentation-3.6| Camera Module]] (Sebastian Barre)<br />
*Note: most developer tools are not documented for end users, but contain comments in the source code<br />
<br />
*[[Modules:EMSegmentBatch-Documentation-3.6|EM Segmenter batch]] (Julien Jomier, Brad Davis)<br />
*[[Modules:GaussianBlurBatch-Documentation-3.6|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)<br />
*[[Modules:RegisterImagesBatch-Documentation-3.6|Register Images batch]] (Julien Finet, Stephen Aylward)<br />
*[[Modules:ResampleVolumeBatch-Documentation-3.6|Resample Volume batch]] (Julien Finet)<br />
<br />
<br />
'''Non-SPL Supported Compatibility Packages'''<br />
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''<br />
<br />
<br />
'''QA Table'''<br />
<br />
[[Slicer-3.6-QA|Slicer 3.6 QA table]]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13544Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T19:08:02Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author: Kerstin Kessel<br />
* Contributor: Steve Pieper<br />
* Contact: Steve Pieper, pieper at bwh.harvard.edu<br />
<br />
===Module Description===<br />
<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test the parameters by displaying glyphs and tracts.<br />
<br />
===Tutorials===<br />
<br />
==== Preparation ====<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
{|<br />
|<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
|[[Image:DiffusionEditor_v8.jpg|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
==== Measurement Frame ====<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
==== Used Tensor Estimation ==== <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
==== Used Tractography Fiducial Seeding ==== <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
===Dependencies===<br />
<br />
No other modules or packages are required for this module's use.<br />
<br />
===Tests===<br />
<br />
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:<br />
<br />
*[http://svn.slicer.org/Slicer3/trunk/Modules/Volumes/Testing/DiffusionEditor_GradientsTest.tcl DiffusionEditor_GradientsTest.tcl]<br />
*[http://svn.slicer.org/Slicer3/trunk/Modules/Volumes/Testing/DiffusionEditorTensorTest.tcl DiffusionEditorTensorTest.tcl]<br />
*[http://svn.slicer.org/Slicer3/trunk/Modules/Volumes/Testing/DiffusionEditorTest.tcl DiffusionEditorTest.tcl]<br />
*[http://svn.slicer.org/Slicer3/trunk/Modules/Volumes/Testing/DiffusionEditor_GradientsTest.tcl DiffusionEditor_GradientsTest.tcl]<br />
<br />
===Known bugs===<br />
<br />
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. <br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx vtkSlicerDiffusionEditorWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h vtkSlicerDiffusionEditorWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx vtkSlicerDiffusionEditorLogic.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h vtkSlicerDiffusionEditorLogic.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx vtkSlicerMeasurementFrameWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h vtkSlicerMeasurementFrameWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx vtkSlicerGradientsWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h vtkSlicerGradientsWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx vtkSlicerDiffusionTestingWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h vtkSlicerDiffusionTestingWidget.h]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorWidget.html SlicerDiffusionEditorWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorLogic.html DiffusionEditorLogic]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerGradientsWidget.html GradientsWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionTestingWidget.html DiffusionTestingWidget]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
===References===<br />
[http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf Thesis]<br />
<br />
[http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI DTMRI]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format Nrrd format]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI DICOM for DWI and DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13543Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T18:55:40Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author: Kerstin Kessel<br />
* Contributor: Steve Pieper<br />
* Contact: Steve Pieper, pieper at bwh.harvard.edu<br />
<br />
===Module Description===<br />
<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test the parameters by displaying glyphs and tracts.<br />
<br />
===Tutorials===<br />
<br />
==== Preparation ====<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
{|<br />
|<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
|[[Image:DiffusionEditor_v8.jpg|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
==== Measurement Frame ====<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
==== Used Tensor Estimation ==== <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
==== Used Tractography Fiducial Seeding ==== <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
===Dependencies===<br />
<br />
No other modules or packages are required for this module's use.<br />
<br />
===Known bugs===<br />
<br />
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. <br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx vtkSlicerDiffusionEditorWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h vtkSlicerDiffusionEditorWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx vtkSlicerDiffusionEditorLogic.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h vtkSlicerDiffusionEditorLogic.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx vtkSlicerMeasurementFrameWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h vtkSlicerMeasurementFrameWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx vtkSlicerGradientsWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h vtkSlicerGradientsWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx vtkSlicerDiffusionTestingWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h vtkSlicerDiffusionTestingWidget.h]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorWidget.html SlicerDiffusionEditorWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorLogic.html DiffusionEditorLogic]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerGradientsWidget.html GradientsWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionTestingWidget.html DiffusionTestingWidget]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
===References===<br />
[http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf Thesis]<br />
<br />
[http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI DTMRI]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format Nrrd format]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI DICOM for DWI and DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13542Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T18:45:05Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author1: Kerstin Kessel<br />
* Contact: kerstin@bwh.harvard.edu<br />
<br />
===Module Description===<br />
<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test the parameters by displaying glyphs and tracts.<br />
<br />
===Tutorials===<br />
<br />
==== Preparation ====<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
{|<br />
|<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
|[[Image:DiffusionEditor_v8.jpg|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
==== Measurement Frame ====<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
==== Used Tensor Estimation ==== <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
==== Used Tractography Fiducial Seeding ==== <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
===Dependencies===<br />
<br />
No other modules or packages are required for this module's use.<br />
<br />
===Known bugs===<br />
<br />
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. <br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx vtkSlicerDiffusionEditorWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h vtkSlicerDiffusionEditorWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx vtkSlicerDiffusionEditorLogic.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h vtkSlicerDiffusionEditorLogic.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx vtkSlicerMeasurementFrameWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h vtkSlicerMeasurementFrameWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx vtkSlicerGradientsWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h vtkSlicerGradientsWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx vtkSlicerDiffusionTestingWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h vtkSlicerDiffusionTestingWidget.h]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorWidget.html SlicerDiffusionEditorWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorLogic.html DiffusionEditorLogic]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerGradientsWidget.html GradientsWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionTestingWidget.html DiffusionTestingWidget]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
===References===<br />
[http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf Thesis]<br />
<br />
[http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI DTMRI]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format Nrrd format]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI DICOM for DWI and DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13541Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T18:38:02Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author1: Kerstin Kessel<br />
* Contact: kerstin@bwh.harvard.edu<br />
<br />
===Module Description===<br />
<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
<br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test the parameters by displaying glyphs and tracts.<br />
<br />
===Tutorials===<br />
<br />
==== Preparation ====<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
{|<br />
|<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
|[[Image:DiffusionEditor_v8.jpg|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
==== Measurement Frame ====<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
==== Used Tensor Estimation ==== <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
==== Used Tractography Fiducial Seeding ==== <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx vtkSlicerDiffusionEditorWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h vtkSlicerDiffusionEditorWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx vtkSlicerDiffusionEditorLogic.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h vtkSlicerDiffusionEditorLogic.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx vtkSlicerMeasurementFrameWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h vtkSlicerMeasurementFrameWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx vtkSlicerGradientsWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h vtkSlicerGradientsWidget.h]<br />
<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx vtkSlicerDiffusionTestingWidget.cxx]<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h vtkSlicerDiffusionTestingWidget.h]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorWidget.html SlicerDiffusionEditorWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorLogic.html DiffusionEditorLogic]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerGradientsWidget.html GradientsWidget]<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionTestingWidget.html DiffusionTestingWidget]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
===References===<br />
[http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf Thesis]<br />
<br />
[http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI DTMRI]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format Nrrd format]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI DICOM for DWI and DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13540Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T18:30:08Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author1: Kerstin Kessel<br />
* Contact: kerstin@bwh.harvard.edu<br />
<br />
===Module Description===<br />
<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
==== Measurement Frame ====<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
==== Used Tensor Estimation ==== <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
==== Used Tractography Fiducial Seeding ==== <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test the parameters by displaying glyphs and tracts.<br />
<br />
===Tutorials===<br />
<br />
==== Preparation ====<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
{|<br />
|<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
|[[Image:DiffusionEditor_v8.jpg|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
Algorithms used, library classes depended upon, use cases, etc.<br />
<br />
===Dependencies===<br />
<br />
Other modules or packages that are required for this module's use.<br />
<br />
===Tests===<br />
<br />
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:<br />
<br />
* MyModuleTest1 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest1.cxx]<br />
* MyModuleTest2 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest2.cxx]<br />
<br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
*http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Doxygen documentation:<br />
*http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorWidget.html<br />
*http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionEditorLogic.html<br />
*http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerGradientsWidget.html<br />
*http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkSlicerDiffusionTestingWidget.html<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
===References===<br />
[http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf Thesis]<br />
<br />
[http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI DTMRI]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format Nrrd format]<br />
<br />
[http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI DICOM for DWI and DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13539Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T18:19:14Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author1: Kerstin Kessel<br />
* Contact: kerstin@bwh.harvard.edu<br />
<br />
===Module Description===<br />
<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
==== Measurement Frame ====<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
==== Used Tensor Estimation ==== <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
==== Used Tractography Fiducial Seeding ==== <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test the parameters by displaying glyphs and tracts.<br />
<br />
<br />
<br />
===Tutorials===<br />
<br />
==== Preparation ====<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
[[|right||thumb|280px|overview]]<br />
<br />
<br />
{|<br />
|<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
|[[Image:DiffusionEditor_v8.jpg|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
Algorithms used, library classes depended upon, use cases, etc.<br />
<br />
===Dependencies===<br />
<br />
Other modules or packages that are required for this module's use.<br />
<br />
===Tests===<br />
<br />
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:<br />
<br />
* MyModuleTest1 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest1.cxx]<br />
* MyModuleTest2 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest2.cxx]<br />
<br />
===Known bugs===<br />
<br />
Links to known bugs in the Slicer3 bug tracker<br />
<br />
* [http://www.na-mic.org/Bug/view.php?id=000 Bug 000: description] <br />
<br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.cxx ] <br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.h ]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html class1]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
Include funding and other support here.<br />
<br />
===References===<br />
Publications related to this module go here. Links to pdfs would be useful.</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13538Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T18:09:11Z<p>Kerstin: </p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name ===<br />
Diffusion Editor<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg |thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg |thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg |thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author1: Kerstin Kessel<br />
* Contact: kerstin@bwh.harvard.edu<br />
<br />
===Module Description===<br />
Overview of what the module does goes here.<br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
For DWI<br />
* Use Case 1: Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Use Case 2: Edit the [[Modules:Volumes:Diffusion_Editor-Documentation-3.2#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Use Case 3: Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Use Case 2: Edit the measurement frame as described above. <br />
* Use Case 3: Test by displaying glyphs and tracts.<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
<br />
Examples of the module in use:<br />
<br />
* '''Measurement frame:'''<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
<br />
===Tutorials===<br />
<br />
Links to tutorials explaining how to use this module:<br />
<br />
* Tutorial 1<br />
** Data Set 1<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
A list panels in the interface, their features, what they mean, and how to use them. For instance:<br />
<br />
{|<br />
|<br />
* '''Input panel:'''<br />
** '''First input'''<br />
** '''Second input'''<br />
* '''Parameters panel:'''<br />
** '''First parameter'''<br />
** '''Second parameter'''<br />
* '''Output panel:'''<br />
** '''First output'''<br />
** '''Second output'''<br />
* '''Viewing panel:'''<br />
|[[Image:screenshotBlankNotOptional.png|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
Algorithms used, library classes depended upon, use cases, etc.<br />
<br />
===Dependencies===<br />
<br />
Other modules or packages that are required for this module's use.<br />
<br />
===Tests===<br />
<br />
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:<br />
<br />
* MyModuleTest1 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest1.cxx]<br />
* MyModuleTest2 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest2.cxx]<br />
<br />
===Known bugs===<br />
<br />
Links to known bugs in the Slicer3 bug tracker<br />
<br />
* [http://www.na-mic.org/Bug/view.php?id=000 Bug 000: description] <br />
<br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.cxx ] <br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.h ]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html class1]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
Include funding and other support here.<br />
<br />
===References===<br />
Publications related to this module go here. Links to pdfs would be useful.</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation-3.6&diff=13534Modules:Volumes:Diffusion Editor-Documentation-3.62010-04-14T17:50:47Z<p>Kerstin: template</p>
<hr />
<div>[[Documentation-3.6|Return to Slicer 3.6 Documentation]]<br />
<br />
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]<br />
<br />
__NOTOC__<br />
===Module Name===<br />
MyModule<br />
<br />
{|<br />
|[[Image:screenshotBlankNotOptional.png|thumb|280px|User Interface]]<br />
|[[Image:screenshotBlank.png|thumb|280px|Output]]<br />
|[[Image:screenshotBlank.png|thumb|280px|Caption]]<br />
|}<br />
<br />
== General Information ==<br />
===Module Type & Category===<br />
<br />
Type: Interactive or CLI<br />
<br />
Category: Base or (Filtering, Registration, ''etc.'')<br />
<br />
===Authors, Collaborators & Contact===<br />
* Author1: Affiliation & logo, if desired<br />
* Contributor1: Affiliation & logo, if desired<br />
* Contributor2: Affiliation & logo, if desired<br />
* Contact: name, email<br />
<br />
===Module Description===<br />
Overview of what the module does goes here.<br />
<br />
== Usage ==<br />
<br />
===Use Cases, Examples===<br />
<br />
This module is especially appropriate for these use cases:<br />
<br />
* Use Case 1:<br />
* Use Case 2:<br />
<br />
Examples of the module in use:<br />
<br />
* Example 1<br />
* Example 2<br />
<br />
===Tutorials===<br />
<br />
Links to tutorials explaining how to use this module:<br />
<br />
* Tutorial 1<br />
** Data Set 1<br />
<br />
===Quick Tour of Features and Use===<br />
<br />
A list panels in the interface, their features, what they mean, and how to use them. For instance:<br />
<br />
{|<br />
|<br />
* '''Input panel:'''<br />
** '''First input'''<br />
** '''Second input'''<br />
* '''Parameters panel:'''<br />
** '''First parameter'''<br />
** '''Second parameter'''<br />
* '''Output panel:'''<br />
** '''First output'''<br />
** '''Second output'''<br />
* '''Viewing panel:'''<br />
|[[Image:screenshotBlankNotOptional.png|thumb|280px|User Interface]]<br />
|}<br />
<br />
== Development ==<br />
<br />
===Notes from the Developer(s)===<br />
<br />
Algorithms used, library classes depended upon, use cases, etc.<br />
<br />
===Dependencies===<br />
<br />
Other modules or packages that are required for this module's use.<br />
<br />
===Tests===<br />
<br />
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:<br />
<br />
* MyModuleTest1 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest1.cxx]<br />
* MyModuleTest2 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest2.cxx]<br />
<br />
===Known bugs===<br />
<br />
Links to known bugs in the Slicer3 bug tracker<br />
<br />
* [http://www.na-mic.org/Bug/view.php?id=000 Bug 000: description] <br />
<br />
<br />
===Usability issues===<br />
<br />
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.<br />
<br />
===Source code & documentation===<br />
<br />
Links to the module's source code:<br />
<br />
Source code:<br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.cxx ] <br />
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.h ]<br />
<br />
Doxygen documentation:<br />
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html class1]<br />
<br />
== More Information == <br />
<br />
===Acknowledgment===<br />
Include funding and other support here.<br />
<br />
===References===<br />
Publications related to this module go here. Links to pdfs would be useful.</div>Kerstinhttps://www.slicer.org/w/index.php?title=Documentation/3.6&diff=13533Documentation/3.62010-04-14T17:49:35Z<p>Kerstin: diffusion editor 3.6</p>
<hr />
<div>This is work in progress<br />
<br />
=Main GUI=<br />
<br />
*[[Modules:MainApplicationGUI-Documentation-3.6| Main Application GUI]] (Wendy Plesniak)<br />
*[[Modules:EventBindings-3.6| "Hot-keys" and Keyboard Shortcuts]] (Wendy Plesniak)<br />
*[[Modules:Loading-Data-3.6| Loading Data]] (scenes, DICOM, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)<br />
*[[Modules:Saving-Documentation-3.6| Saving Data]] (scenes, volumes, models, fiducials, transforms, etc.) (Wendy Plesniak)<br />
*[[Modules:SceneSnapshots-3.6| Creating and Restoring Scene Snapshots]] (Wendy Plesniak)<br />
*[[Modules:ExtensionsManagementWizard-Documentation-3.6| Extensions Management Wizard]] (Wendy Plesniak)<br />
<br />
=Modules=<br />
*Please copy the template linked below, paste it into your page and customize it with your module's information.<br />
[[Slicer3:Module_Documentation-3.6_Template|Slicer3:Module_Documentation-3.6_Template]] <br />
*See Requirements for Modules for info to be put into the Help and Acknowledgment Tabs<br />
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]<br />
<br />
Please adhere to the naming scheme for the module documentation:<br />
*[ [Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)<br />
<br />
=Requirements for Modules=<br />
{| border="00" cellpadding="5" cellspacing="0"<br />
|-<br />
| rowspan="2"| <br />
* The module is '''feature complete''', it does everything that it advertises it can do<br />
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.<br />
* Module has '''documentation''' on the [[Documentation-3.5#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.6#Modules|'''here''']] to structure your page. Please keep in mind that our users are not computer scientists with a background in computer vision.<br />
*Please add a pointer to the documentation on the Slicer wiki to the the '''Help''' tab of the module. See the '''Editor module''' in Slicer for an example.<br />
* The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the '''Acknowledegment''' tab of the module. Please see the '''Models module''' for an example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module. [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|See here for more information.]]<br />
** '''Style Guide:''' All acknowledgment icons should be 100x100 pixels, preferably in png format.<br />
** '''Accessing logos:''' Icons for BIRN, NAC, NA-MIC and IGT are included in Slicer3/Base/GUI//vtkSlicerBaseAcknowledgementLogoIcons.cxx/h and resources for them are in Slicer3/Base/GUI/Resources/vtkSlicerBaseAcknowledgementLogos_ImageData.h. The API for vtkSlicerModuleGUI provides access to these icons. <br />
** '''Adding logos:''' Please add additional image resources and logo icons to these files as required in order to promote shared use (and to prevent duplication in the code.)<br />
* Many modules are better suited to be [[Documentation-3.4#Extensions_for_Downloading|downloadable extensions]]. The same module creation guidelines apply, but the actual implementation is done outside of the slicer source code repository.<br />
* Follow [[Documentation-3.5-Rons-Rules|'''Ron's rules for tools''']]<br />
| style="background: #e5e5e5" align="center"| Examples for the Help and <br />
Acknowledgment Panels<br />
|-<br />
| style="background: #ebeced"|[[Image:SlicerHelpExample.png|center|200px]][[Image:SlicerAcknowledgementExample.png|center|200px]] <br />
|}<br />
<br />
=List of Modules added or significantly revised since the 3.4 release=<br />
* Interactive Editor<br />
* Volume Rendering<br />
* Colors (Nicole Aucoin)<br />
* MRI Bias Field Correction (Sylvain Jaume)<br />
* 4D Image (Viewer) (Junichi Tokuda)<br />
* 4D Analysis (Time-intensity curve plotting and analysis) (Junichi Tokuda)<br />
* Fast Marching segmentation (Andriy Fedorov)<br />
* Mesh Contour Segmentation]] (Peter Karasev)<br />
* Subvolume extraction with ROI widget (Andriy Fedorov)<br />
* Registration Metrics (HD and DSC) (Haytham Elhawary)<br />
* Measurements (rulers and angles) (Nicole Aucoin)<br />
* Affine registration (Casey Goodlett)<br />
* Collect Patient Fiducials (Andrew Wiles)<br />
* IGT Tool Selector (Andrew Wiles)<br />
* Fiducials (Nicole Aucoin)<br />
<br />
=List of Modules=<br />
==Core==<br />
*[[Slicer3:Multiple_Cameras| Camera Module]] (Sebastian Barre)<br />
*[[Modules:Welcome-Documentation-3.4| Welcome Module]] (Wendy Plesniak, Steve Pieper, Sonia Pujol, Ron Kikinis)<br />
*[[Modules:Volumes-Documentation-3.6| Volumes Module]] (Alex Yarmarkovich, Steve Pieper) <br />
**[[Modules:Volumes:Diffusion Editor-Documentation-3.6| Diffusion Editor]] (Kerstin Kessel)<br />
*[[Modules:Models-Documentation-3.6| Models Module]] (Alex Yarmarkovich) <br />
*[[Modules:Fiducials-Documentation-3.6| Fiducials Module]] (Nicole Aucoin) <br />
*[[Modules:Measurements-Documentation-3.5 | Measurements (rulers and angles) ]] (Nicole Aucoin) [[Modules:Measurements-Documentation-3.6 | '''3.6 in progress''']] <br />
*[[Modules:Data-Documentation-3.6| Data Module]] (Alex Yarmarkovich) <br />
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller) [[Modules:Slices-Documentation-3.6|'''3.6 in process''']]<br />
*[[Modules:Colors-Documentation-3.6| Color Module]] (Nicole Aucoin) <br />
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper) '''Not yet 3.6'''<br />
*[[Modules:ROIModule-Documentation-3.6|ROI Module]] (Alex Yarmarkovich) <br />
*[[Modules:VolumeRendering-Documentation-3.5| Volume Rendering Module]] (Yanling Liu, Alex Yarmarkovich) '''Not yet 3.6'''<br />
<br />
==Specialized Modules==<br />
<br />
Please adhere to the naming scheme for the module documentation:<br />
*[[Modules:MyModuleNameNoSpaces-Documentation-3.6|My Module Name With Spaces] ] (First Last Name)<br />
<br />
===Wizards===<br />
*[[Modules:ChangeTracker-Documentation-3.6|ChangeTracker]] (Andriy Fedorov) '''3.6 in progress'''<br />
*[[Modules:IA_FEMesh-Documentation-3.6|IA FE Meshing Module]] (Vincent Magnotta) '''3.6 In Progress'''<br />
<br />
===Informatics Modules===<br />
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak, Dan Marcus) '''Not yet 3.6'''<br />
*[[Modules:QDECModule-Documentation-3.6| QDEC Module]] (Nicole Aucoin) <br />
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak) '''Not yet 3.6'''<br />
<br />
===Registration===<br />
*[[Slicer3:Registration|Overview of all Registration Modules ]] <br />
*Fast<br />
**[[Modules:Transforms-Documentation-3.6| Transforms Module for interactive rigid registration]] (Alex Yarmarkovich)<br />
**[[Modules:AffineRegistration-Documentation-3.4|Affine Registration]] (Daniel Blezek) '''Not yet 3.6'''<br />
**[[Modules:DeformableB-SplineRegistration-Documentation-3.6|Deformable B-Spline Registration]] (Bill Lorensen) '''in progress'''<br />
*Robust<br />
**[[Modules:RegisterImagesMultiRes-Documentation-3.6|Register Images Robust Affine]] (Casey Goodlett)<br />
**[[Modules:TransformFromFiducials-Documentation-3.6|Fiducial-Based Registration]] (Casey Goodlett)<br />
**[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek) '''Not yet 3.6'''<br />
*Experimental and auxiliary<br />
**[[Modules:RegisterImages-Documentation-3.6|Register Images (''Upgraded Version'')]] (Casey Goodlett)<br />
**[[Modules:ACPCTransform-Documentation-3.6|ACPC Transform]] (Nicole Aucoin)<br />
**[[Modules:RegistrationMetrics-Documentation-3.5 | Registration Metrics (HD and DSC) ]] (Haytham Elhawary) '''Not yet 3.6'''<br />
**[[Modules:LinearRegistration-Documentation-3.4|Linear Registration]] (Daniel Blezek) '''Not yet 3.6'''<br />
<br />
===Segmentation===<br />
*Overview (Kilian)<br />
**[[Modules:EMSegment|EM Segment]] (Kilian Pohl) '''Not yet 3.6'''<br />
**[[Modules:EMSegment-Command-Line|EM Segment Command-Line]] (Kilian Pohl) '''Not yet 3.6'''<br />
**[[Modules:EMSegment-Simple|EM Segment Simple]] (Kilian Pohl) '''Not yet 3.6'''<br />
**[[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)<br />
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen) '''Not yet 3.6'''<br />
**[[Modules:Simple Region Growing-Documentation-3.4|Simple Region Growing]] (Jim Miller) '''Not yet 3.6'''<br />
<br />
===Statistics===<br />
*[[Modules:LabelStatistics-Documentation-3.6|Label Statistics]] (Steve Pieper)<br />
<br />
===Diffusion MRI===<br />
*Diffusion MRI<br />
** DWI filtering<br />
***[[Modules:JointRicianLMMSEImageFilter-Documentation-3.6|Joint Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez) <br />
***[[Modules:RicianLMMSEImageFilter-Documentation-3.6|Rician LMMSE Image Filter]] (Antonio Tristán Vega, Santiago Aja-Fernandez, Marc Niethammer) <br />
***[[Modules:UnbiasedNonLocalMeans-Documentation-3.6|Unbiased Non Local Means filter for DWI]] (Antonio Tristán Vega, Santiago Aja-Fernandez) <br />
** Diffusion tensor utilities<br />
***[[Modules:DiffusionTensorEstimation-Documentation-3.6|Diffusion Tensor Estimation]] (Raul San Jose Estepar) <br />
***[[Modules:DiffusionTensorScalarMeasurements-Documentation-3.6 | Diffusion Tensor Scalar Measurements]] (Raul San Jose Estepar) <br />
** Resampling<br />
***[[Modules:ResampleDTIVolume-Documentation-3.6|Resample DTI Volume]] (Francois Budin)<br />
** Tractography<br />
***[[Modules:ROISeeding-Documentation-3.6 | Label Seeding]] (Raul San Jose Estepar) <br />
***[[Modules:FiducialSeeding-Documentation-3.6|Fiducial Seeding]] (Alex Yarmakovich, Steve Pieper) <br />
***[[Modules:DTIDisplay-Documentation-3.6|FiberBundles]] (Alex Yarmakovich) <br />
***[[Modules:StochasticTractography-Documentation-3.6|Python Stochastic Tractography]] (Julien de Siebenthal) <br />
***[[Modules:ROISelect-Documentation-3.6|ROI Select]] (Lauren O'Donnell)<br />
<br />
===IGT===<br />
*[[Modules:OpenIGTLinkIF-Documentation-3.6| OpenIGTLinkIF Module]] (Junichi Tokuda)<br />
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu) '''Not yet 3.6'''<br />
*[[Modules:ProstateNav-Documentation-3.6| ProstateNav Module]] (Junichi Tokuda, Andras Lasso)<br />
*[[Modules:CollectFiducials-Documentation-3.6 | Collect Patient Fiducials ]] (Andrew Wiles)<br />
*[[Modules:IGTToolSelector-Documentation-3.6 | IGT Tool Selector ]] (Andrew Wiles)<br />
<br />
===Time Series===<br />
* [[Modules:FourDImage-Documentation-3.5|4D Image (Viewer)]] (Junichi Tokuda) '''Not yet 3.6'''<br />
* [[Modules:FourDAnalysis-Documentation-3.5|4D Analysis (Time-intensity curve plotting and analysis)]] (Junichi Tokuda) '''Not yet 3.6'''<br />
<br />
===Filtering===<br />
*[[Modules:MRIBiasFieldCorrection-Documentation-3.5|MRI Bias Field Correction]] (Sylvain Jaume)<br />
*[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen) '''Not yet 3.6'''<br />
*[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen) '''Not yet 3.6'''<br />
*[[Modules:ImageLabelCombine-3.6|Image Label Combine]] (Alex Yarmarkovich) <br />
*[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen) '''Not yet 3.6'''<br />
*[[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)<br />
*[[Modules:ThresholdImage-Documentation-3.6|Threshold Image]] (Nicole Aucoin) <br />
*Arithmetic<br />
**[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen) '''Not yet 3.6'''<br />
**[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen) '''Not yet 3.6'''<br />
** [[Modules:CastImage-Documentation-3.6|Cast Image]] (Nicole Aucoin) <br />
** [[Modules:MaskImage-Documentation-3.6|Mask Image]] (Nicole Aucoin) <br />
*Denoising<br />
**[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]] (Bill Lorensen checked this in) '''Not yet 3.6'''<br />
**[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen) '''Not yet 3.6'''<br />
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian Blur]] (Julien Jomier, Stephen Aylward) '''Not yet 3.6'''<br />
**[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen) '''Not yet 3.6'''<br />
*Morphology<br />
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen) '''Not yet 3.6'''<br />
**[[Modules:GrayscaleFillHole-Documentation-3.4|Grayscale Fill Hole]] (Bill Lorensen) '''Not yet 3.6'''<br />
**[[Modules:GrayscaleGrindPeak-Documentation-3.4|Grayscale Grind Peak]] (Bill Lorensen) '''Not yet 3.6'''<br />
<br />
===Surface Models===<br />
*[[Modules:ModelMaker-Documentation-3.6| ModelMaker]] (Nicole Aucoin) <br />
*[[Modules:GrayscaleModelMaker-Documentation-3.6|Grayscale Model Maker]] (Bill Lorensen) '''Not yet 3.6'''<br />
*[[Modules:MeshContourSegmentation-Documentation-3.6|Mesh Contour Segmentation]] (Peter Karasev) <br />
*[[Modules:PythonSurfaceConnectivity-Documentation-3.4| Python Surface Connectivity]] (Luca Antiga, Daniel Blezek) '''Not yet 3.6'''<br />
*[[Modules:PythonSurfaceICPRegistration-Documentation-3.4| Python Surface ICP Registration]] (Luca Antiga, Daniel Blezek) '''Not yet 3.6'''<br />
*[[Modules:PythonSurfaceToolbox-Documentation-3.4| Python Surface Toolbox]] (Luca Antiga, Daniel Blezek) '''Not yet 3.6'''<br />
*[[Modules:ClipModel-Documentation-3.6| Clip Model]] (Alex Yarmarkovich) <br />
*[[Modules:Model_Into_Label_Volume_Documentation-3.6| Model into Label Volume]] (Nicole Aucoin)<br />
<br />
===Batch processing===<br />
*[[Modules:EMSegmentBatch-Documentation-3.6|EM Segmenter batch]] (Julien Jomier, Brad Davis)<br />
*[[Modules:GaussianBlurBatch-Documentation-3.6|Gaussian Blur batch]] (Julien Jomier, Stephen Aylward)<br />
*[[Modules:RegisterImagesBatch-Documentation-3.6|Register Images batch]] (Julien Finet, Stephen Aylward)<br />
*[[Modules:ResampleVolumeBatch-Documentation-3.6|Resample Volume batch]] (Julien Finet)<br />
<br />
===Converters===<br />
*[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen) '''Not yet 3.6'''<br />
*[[Modules:DicomToNRRD-3.4|Dicom to NRRD]] (Xiaodong Tao) '''Not yet 3.6'''<br />
*[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen) '''Not yet 3.6'''<br />
*[[Modules:PythonExplodeVolumeTransform-Documentation-3.4| Python Explode Volume Transform]] (Luca Antiga, Daniel Blezek) '''Not yet 3.6'''<br />
*[[Modules:CropVolume-Documentation-3.6|Crop Volume]] (previously ExtractSubvolumeROI) (Andriy Fedorov)<br />
<br />
=Slicer Extensions=<br />
<br />
==Extensions for Downloading==<br />
===Introduction===<br />
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]<br />
* Slicer Extensions are a mechanism for third parties to provide modules which extend the functionality of 3d Slicer.<br />
* Some of the extensions do not use the Slicer license. Please review carefully.<br />
* For a subset of extensions, you can use the extension wizard in Slicer to find their webpages and to install/uninstall individual extensions. In case of problems with those modules, please talk directly to the developers of the extensions.<br />
* The version that is available through the extension manager is chosen by the developer of that extension <br />
<br />
We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.<br />
Click [http://www.nitrc.org/search/?type_of_search=soft&words=slicer3&Search.x=0&Search.y=0&Search=Search here] to see a listing of Slicer 3 extensions on NITRC.<br />
<br />
[[Image:Slicer-3.4.1-extension-manager-2009-10-02.png|thumb|right|Extension manager dialog box]]<br />
To add extension modules to an installed binary of slicer:<br />
* Use the View->Extension Manager menu option<br />
* The dialog will be initialized with the URL to the extensions that have been compiled to match your binary of slicer.<br />
** '''Note''' installing extensions from a different repository URL is likely to be unstable due to platform and software version differences.<br />
** You can select a local install directory for your downloaded extensions (be sure to choose a directory with enough free space).<br />
* Select the extensions you wish to install and click to download them. Installed extensions will be available when you restart slicer.<br />
* To turn modules on or off, you can use the Module Settings page of the View->Application Settings dialog.<br />
<br />
<br />
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team. For explanations for developers see [[Slicer3:Extensions| here]]<br />
<br />
'''Installation'''<br />
*Click on the icon to start the extensions wizard<br />
[[image:ExtensionsWizard.png|Extensions Wizard]]<br />
<br />
===Listing of plug-ins===<br />
<br />
'''Available Extensions'''<br />
<br />
* [[Modules:ABC-Documentation-3.5|ABC]] Marcel Prastawa (prastawa@sci.utah.edu) (a.k.a. Atlas Based Classification) '''Not yet 3.6'''. Belongs to segmentation<br />
<br />
* [[Modules:ARCTIC-Documentation-3.6|ARCTIC]] Cedric Mathieu and Clement Vachet (cvachet@email.unc.edu) (a.k.a Automatic Regional Cortical ThICkness) '''Not yet 3.6'''. Belongs to wizards<br />
<br />
* [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''. Belongs to registration, robust<br />
<br />
* [[Modules:BRAINSFit|BRAINSFit]] Eun Young Kim (eunyoung-kim@uiowa.edu) '''Not yet 3.6'''. Belongs to registration robust<br />
<br />
* [[Modules:BRAINSMush|BRAINSMush]] Hans Johnson (hans-johnson@uiowa.edu) '''Not yet 3.6'''. Belongs to registration robust.<br />
<br />
* [[Modules:CMTK|CMTK]] Computational Morphometry Toolkit Torsten Rohlfing (torsten@synapse.sri.com) '''Not yet 3.6'''. Belongs to registration robust.<br />
<br />
* [[Modules:EMDTIClustering-Documentation-3.6|EMFiberClusteringModule]] Mahnaz Maddah (maddah@ge.com) (a.k.a. Quantitative Diffusion Tools) '''Not yet 3.6'''. Belongs to tractography<br />
<br />
* [[Modules:FourDAnalysis|FourDAnalysis]] Junichi Tokuda (tokuda@bwh.harvard.edu) '''Not yet 3.6'''<br />
<br />
* [[Modules:FuzzySegmentationModule|FuzzySegmentationModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''. Belongs to segmentation.<br />
<br />
* [[Modules:HammerRegistration|HammerRegistration]] GuorongWu, XiaodongTao, JimMiller, DinggangShen (dgshen@med.unc.edu) '''Not yet 3.6'''. Belongs to registration robust.<br />
<br />
* [[Modules:LabelDiameterEstimation-Documentation-3.5|LabelDiameterEstimation]] Andriy Fedorov (fedorov@bwh.harvard.edu) '''Not yet 3.6'''. Belongs to IGT.<br />
<br />
* [[Modules:LesionSegmentationApplications-Documentation-3.6|LesionSegmentationApplications]] Mark Scully (mscully@mrn.org) (a.k.a. 3DSlicerLupusLesionModule) '''Not yet 3.6'''. Belongs to wizards.<br />
<br />
* [[Modules:Plastimatch|Plastimatch]] Greg Sharp (gcsharp@partners.org) '''Not yet 3.6'''. Belongs to registration robust.<br />
<br />
* [[Modules:RicianNoiseFilter|RicianNoiseFilter]] Ross Whitaker (whitaker@cs.utah.edu) '''Not yet 3.6'''. Belongs to DWI<br />
<br />
* [[Modules:RobustStatisticsSeg|RobustStatisticsSeg]] Yi Gao (yigao@gatech.edu) '''Not yet 3.6'''. Belongs to segmentation<br />
<br />
* [[Modules:SkullStripperModule|SkullStripperModule]] Xiaodong Tao (taox@research.ge.com) '''Not yet 3.6'''. Belongs to wizards<br />
<br />
* [[Modules:SpineSegmentation|SpineSegmentation]] Sylvain Jaume (sylvain@csail.mit.edu) '''Not yet 3.6'''. Belongs to wizards<br />
<br />
* [[Modules:VMTKSlicerModule|VmtkSlicerModule]] prerequisite install for all VMTK plug-ins, Daniel Haehn (haehn@bwh.harvard.edu)<br />
<br />
* [[Modules:VMTKCenterlines|VMTKCenterlines]] providing centerline computation of surface models, Daniel Haehn (haehn@bwh.harvard.edu) '''Not yet 3.6'''<br />
<br />
* [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] Daniel Haehn (haehn@bwh.harvard.edu) providing level-set segmentation of vessels, aneurysms and tubular structures using an easy interface '''Not yet 3.6'''<br />
<br />
* [[Modules:VMTKLevelSetSegmentation|VMTKLevelSetSegmentation]] providing level-set segmentation of vessels, aneurysms and tubular structures using different algorithms for initialization and evolution, Daniel Haehn (haehn@bwh.harvard.edu) <br />
<br />
* [[Modules:VMTKVesselEnhancement|VMTKVesselEnhancement]] providing vessel enhancement filters to highlight vascular or tubular structures, Daniel Haehn (haehn@bwh.harvard.edu)<br />
<br />
<br />
====Example Extensions====<br />
<br />
* [[Modules:ExampleCommandLine|ExampleCommandLine]] Jim Miller '''Not yet 3.6'''<br />
<br />
* [[Modules:ExampleLoadableGuiLessModule|ExampleLoadableGuiLessModule]] Steve Pieper '''Not yet 3.6'''<br />
<br />
* [[Modules:ExampleLoadableModule|ExampleLoadableModule]] Steve Pieper '''Not yet 3.6'''<br />
<br />
* [[Modules:PythonSampleScriptedModule|PythonSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''<br />
<br />
* [[Modules:TclSampleScriptedModule|TclSampleScriptedModule]] Steve Pieper '''Not yet 3.6'''<br />
<br />
<br />
<br />
'''Non-SPL Supported Compatibility Packages'''<br />
<br />
* [[Modules:BioImageSuite|BioImageSuite]] Xenios Papademtrios '''Not yet 3.6'''<br />
<br />
=QA=<br />
[[Slicer-3.6-QA|Slicer 3.6 QA table]]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=6495Modules:Volumes:Diffusion Editor-Documentation2008-09-21T10:16:16Z<p>Kerstin: /* References */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
Thesis: [http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf http://www.slicer.org/slicerWiki/index.php/Image:Thesis_letter.pdf]<br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=File:Thesis_letter.pdf&diff=6494File:Thesis letter.pdf2008-09-21T10:14:09Z<p>Kerstin: </p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5415Modules:Volumes:Diffusion Editor-Documentation2008-07-18T15:55:54Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load DICOM]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Edit gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Edit measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5414Modules:Volumes:Diffusion Editor-Documentation2008-07-18T15:55:26Z<p>Kerstin: /* Module Description */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5404Modules:Volumes:Diffusion Editor-Documentation2008-07-13T13:45:14Z<p>Kerstin: /* Used Tensor Estimation */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5403Modules:Volumes:Diffusion Editor-Documentation2008-07-13T13:44:37Z<p>Kerstin: /* Used Tractography Fiducial Seeding */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5402Modules:Volumes:Diffusion Editor-Documentation2008-07-13T13:44:04Z<p>Kerstin: /* Used Tractography Fiducial Seeding */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5401Modules:Volumes:Diffusion Editor-Documentation2008-07-13T13:42:06Z<p>Kerstin: /* Status / Implementation Progress */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 60% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5400Modules:Volumes:Diffusion Editor-Documentation2008-07-13T13:40:52Z<p>Kerstin: /* Issues */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 30% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5399Modules:Volumes:Diffusion Editor-Documentation2008-07-13T13:39:28Z<p>Kerstin: /* Source code & documentation */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 30% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5314Modules:Volumes:Diffusion Editor-Documentation2008-07-06T19:52:21Z<p>Kerstin: /* Preparation */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [[Slicer3:Build_Instructions| here]] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 30% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5313Modules:Volumes:Diffusion Editor-Documentation2008-07-03T20:21:41Z<p>Kerstin: /* References */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 30% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
DTMRI: [http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI http://www.slicer.org/slicerWiki/index.php/Slicer3:DTMRI]<br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5302Modules:Volumes:Diffusion Editor-Documentation2008-06-28T21:56:55Z<p>Kerstin: /* Status / Implementation Progress */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 30% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5301Modules:Volumes:Diffusion Editor-Documentation2008-06-28T21:56:21Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
To start a tutorial video simply click on the link in the table.<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5143Modules:Volumes:Diffusion Editor-Documentation2008-06-08T22:08:12Z<p>Kerstin: /* Status / Implementation Progress */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 100%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=File:DiffEd_Tut_Testing.swf&diff=5142File:DiffEd Tut Testing.swf2008-06-08T22:01:31Z<p>Kerstin: </p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5141Modules:Volumes:Diffusion Editor-Documentation2008-06-08T21:35:30Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=File:DiffusionEditor_ExampleData.zip&diff=5140File:DiffusionEditor ExampleData.zip2008-06-08T21:26:39Z<p>Kerstin: </p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Testing&diff=5136Tutorials:DiffusionEditor-Testing2008-06-07T20:11:42Z<p>Kerstin: New page: Return to Slicer Documentation Return to Diffusion Editor Documentation ==Preparation== * Start Slicer * L...</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation#Tutorials|Return to Diffusion Editor Documentation]]<br />
<br />
==Preparation== <br />
* Start Slicer<br />
* Load ''myNrrd.nhdr'' from the previous tutorial [[Tutorials:DiffusionEditor-Edit_Measurement_frame|Edit Measurement Frame]] or use the file ''correctNrrd.nhdr'' file from the example data.<br />
<br />
<br />
<flash>file=DiffEd_Tut_Testing.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=File:DiffEd_Tut_MeasurementFrame.swf&diff=5135File:DiffEd Tut MeasurementFrame.swf2008-06-07T20:08:31Z<p>Kerstin: </p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Edit_Measurement_frame&diff=5134Tutorials:DiffusionEditor-Edit Measurement frame2008-06-06T21:29:09Z<p>Kerstin: New page: Return to Slicer Documentation Return to Diffusion Editor Documentation ==Preparation== * Start Slicer * L...</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation#Tutorials|Return to Diffusion Editor Documentation]]<br />
<br />
==Preparation== <br />
* Start Slicer<br />
* Load ''myNrrd.nhdr'' from the previous tutorial [[Tutorials:DiffusionEditor-Edit_Gradients|Edit Gradients]]<br />
<br />
<br />
<flash>file=DiffEd_Tut_MeasurementFrame.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Load_DWI-Dicom&diff=5133Tutorials:DiffusionEditor-Load DWI-Dicom2008-06-06T21:27:56Z<p>Kerstin: </p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation#Tutorials|Return to Diffusion Editor Documentation]]<br />
<br />
==Preparation== <br />
* Start Slicer<br />
<br />
<br />
<flash>file=DiffEd_Tut_Load.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Edit_Gradients&diff=5132Tutorials:DiffusionEditor-Edit Gradients2008-06-06T21:27:09Z<p>Kerstin: </p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation#Tutorials|Return to Diffusion Editor Documentation]]<br />
<br />
==Preparation== <br />
* Start Slicer<br />
* Load ''myNrrd.nhdr'' from the previous tutorial [[Tutorials:DiffusionEditor-Load_DWI-Dicom|Load DWI-dicom]]<br />
<br />
<br />
<flash>file=DiffEd_Tut_Gradients.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5131Modules:Volumes:Diffusion Editor-Documentation2008-06-06T21:26:32Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually and load them from a file. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Measurement frame| Measurement frame]] ||Change the measurement frame by swapping and inverting. Save your changes afterwards.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5130Modules:Volumes:Diffusion Editor-Documentation2008-06-06T21:22:04Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=File:DiffEd_Tut_Gradients.swf&diff=5129File:DiffEd Tut Gradients.swf2008-06-06T21:17:22Z<p>Kerstin: uploaded a new version of "Image:DiffEd Tut Gradients.swf"</p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5128Modules:Volumes:Diffusion Editor-Documentation2008-06-06T20:50:17Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !! used data!!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] || dwi-dicom ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]|| myNrrd.nhdr, onlyGradients.txt ||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||___ ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||___ ||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=File:DiffEd_Tut_Gradients.swf&diff=5127File:DiffEd Tut Gradients.swf2008-06-06T20:48:31Z<p>Kerstin: </p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Edit_Gradients&diff=5126Tutorials:DiffusionEditor-Edit Gradients2008-06-06T16:47:46Z<p>Kerstin: New page: Return to Slicer Documentation Return to Diffusion Editor Documentation =Tutorial: Edit Gradients= ==Prep...</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation#Tutorials|Return to Diffusion Editor Documentation]]<br />
<br />
<br />
=Tutorial: Edit Gradients=<br />
<br />
==Preparation== <br />
* Start Slicer<br />
* Load ''myNrrd.nhdr'' from the previous tutorial [[Tutorials:DiffusionEditor-Load_DWI-Dicom|Load DWI-dicom]]<br />
<br />
<br />
<flash>file=DiffEd_Tut_Gradients.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5125Modules:Volumes:Diffusion Editor-Documentation2008-06-06T16:44:53Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !! used data!!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] || dwi-dicom ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Edit Gradients | Gradients ]]||___ ||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||___ ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||___ ||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Load_DWI-Dicom&diff=5124Tutorials:DiffusionEditor-Load DWI-Dicom2008-06-06T16:43:42Z<p>Kerstin: </p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation#Tutorials|Return to Diffusion Editor Documentation]]<br />
<br />
<br />
=Tutorial: Load DWI-Dicom=<br />
<br />
==Preparation== <br />
* Start Slicer<br />
<br />
<br />
<flash>file=DiffEd_Tut_Load.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Load_DWI-Dicom&diff=5123Tutorials:DiffusionEditor-Load DWI-Dicom2008-06-06T16:42:37Z<p>Kerstin: New page: Return to Slicer Documentation Return to Diffusion Editor Documentation =Tutorial: Load DWI-Dicom= ==Preparation== ...</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation|Return to Diffusion Editor Documentation]]<br />
<br />
<br />
=Tutorial: Load DWI-Dicom=<br />
<br />
==Preparation== <br />
* Start Slicer<br />
<br />
<br />
<flash>file=DiffEd_Tut_Load.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5122Modules:Volumes:Diffusion Editor-Documentation2008-06-06T16:42:10Z<p>Kerstin: /* Tutorials */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !! used data!!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load DWI-Dicom| Load]] ||___ ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||___ ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Gradients | Gradients ]]||___ ||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||___ ||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Tutorials:DiffusionEditor-Load&diff=5121Tutorials:DiffusionEditor-Load2008-06-06T16:41:10Z<p>Kerstin: New page: Return to Slicer Documentation Return to Diffusion Editor Documentation =Tutorial: Load DWI-Dicom= ==Preparation== ...</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
[[Modules:Volumes:Diffusion_Editor-Documentation|Return to Diffusion Editor Documentation]]<br />
<br />
<br />
=Tutorial: Load DWI-Dicom=<br />
<br />
==Preparation== <br />
* Start Slicer<br />
<br />
<flash>file=DiffEd_Tut_Load.swf|width=1000|height=800|quality=best</flash></div>Kerstinhttps://www.slicer.org/w/index.php?title=File:DiffEd_Tut_Load.swf&diff=5120File:DiffEd Tut Load.swf2008-06-06T16:41:01Z<p>Kerstin: </p>
<hr />
<div></div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5119Modules:Volumes:Diffusion Editor-Documentation2008-06-06T16:35:33Z<p>Kerstin: /* Preparation */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]] and unzip it.<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !! used data!!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load| Load]] ||___ ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||___ ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Gradients | Gradients ]]||___ ||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||___ ||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=5106Modules:Volumes:Diffusion Editor-Documentation2008-06-05T14:56:59Z<p>Kerstin: /* Module Description */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues/measurement frame differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]]<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !! used data!!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load| Load]] ||___ ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||___ ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Gradients | Gradients ]]||___ ||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||___ ||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstinhttps://www.slicer.org/w/index.php?title=Announcments-3.2-Team&diff=5105Announcments-3.2-Team2008-06-05T14:47:04Z<p>Kerstin: </p>
<hr />
<div> [[Announcements:Slicer3.2|Back to the Slicer 3.2 announcement]]<br />
<br />
Development of Slicer 3.2 has been supported through volunteer work and through a number of funding mechanisms and sources. Please see the [http://www.slicer.org/pages/Acknowledgments Slicer acknowledgments page].<br />
<br />
Major contributors for the Slicer 3.2 release include:<br />
* [http://www.spl.harvard.edu/~kikinis Ron Kikinis]: Overall leadership<br />
* [http://www.spl.harvard.edu/~pieper Steve Pieper]: Chief architect<br />
* [http://lmi.bwh.harvard.edu/~westin Carl-Fredrik Westin]: Diffusion MRI overview<br />
* [http://www.spl.harvard.edu/~alexy Alex Yarmarkovich]: MRML, DTI modules, software development<br />
* [http://www.spl.harvard.edu/~hayes Kathryn Hayes]: Release engineering, software development, quality assurance<br />
* [http://www.spl.harvard.edu/~kerstin Kerstin Kessel]: Diffusion Editor</div>Kerstinhttps://www.slicer.org/w/index.php?title=Modules:Volumes:Diffusion_Editor-Documentation&diff=3429Modules:Volumes:Diffusion Editor-Documentation2008-05-09T18:32:32Z<p>Kerstin: /* Status / Implementation Progress */</p>
<hr />
<div>[[Documentation|Return to Slicer Documentation]]<br />
<br />
<br />
=Diffusion Editor=<br />
<br />
{|<br />
|[[Image:DiffusionEditor helix.jpg|thumb|250px|Diffusion Editor, showing tracts and glyphs on helix example]]<br />
|[[Image:Tracts_glyphs.jpg|thumb|250px|tracts and glyphs view]]<br />
|[[Image:Tracts_glyphs_90degrees.jpg|thumb|250px|tracts and glyphs view - +90° rotation of measurement frame]]<br />
|}<br />
<br />
= General Information =<br />
==Module Type & Category==<br />
<br />
Type: Interactive<br />
<br />
Category: Diffusion Imaging<br />
<br />
==Authors, Collaborators & Contact==<br />
* Author: Kerstin Kessel<br />
* Supervisor: Steve Pieper, Ron Kikinis<br />
<br />
==Module Description==<br />
As the documentation of acquisition parameters in dicom data is not standardized, MRI scanners (Siemens, GE) handle gradients/bValues differently in their dicom headers. Because of that there is a big need to add/modify them manually.<br />
<br />
The Diffusion Editor is a 3D Slicer module that allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them. For that it estimates a tensor and shows glyphs and tracts for visual exploration. <br />
<br />
=== Measurement Frame ===<br />
The measurement frame of all DWI is always displayed in the RAS space. That's because Slicer stores all internal coordinates in RAS. <br />
<br />
If you save changes in a new .nhdr file the measurement frame will always be in RAS.<br />
<br />
=== Used Tensor Estimation === <br />
The Diffusion Editor uses the Tensor Estimation CLM (Command Line Module) of Slicer to compute tensors. <br />
* The module provides the linear-least-squares, non-linear-least squares and weighted-least-square method for the estimation. But the DiffusionEditor uses the linear-least-squares method by default, as it is the fastest and most robust.<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tensor_Estimation_from_DWI_Module], [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:TeemExamples#tend_estim:_tensor_estimation] for more information on the Tensor Estimation CLM.<br />
<br />
The testing frame provides just a small subset of DTI display options. For more detailed settings<br />
* load the DTI as the active volume in the volumes modul<br />
* go to the display frame and adjust parameters.<br />
<br />
=== Used Tractography Fiducial Seeding === <br />
The Diffusion Editor uses the Tractography Fiducial Seeding module of Slicer to compute tracts.<br />
* The Diffusion Editor uses the default parameters. To change tractography parameters select the modul: Tractography/Seeding/Fiducial Seeding [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Fiducial_Seeding_Module]. Changes there have an immediate impact for the tracts in the Diffusion Editor.<br />
* For more detailed exploring of tracts use the Fiducial Seeding module or for display options select the module Tractography/DisplayLoadSave [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module].<br />
* See [http://www.na-mic.org/Wiki/index.php/Slicer3:DTMRI#Tractography_Module here] for more information on the Tractography modules.<br />
<br />
=== Current features of the Diffusion Editor=== <br />
For DWI<br />
* Edit gradients manually or load existing gradients from file (.txt or .nhdr).<br />
* Edit the [[Modules:Volumes:Diffusion_Editor-Documentation#Measurement_Frame| measurement frame]] manually or simply rotate/swap/invert columns by selecting them. <br />
* Test the parameters by estimating a tensor and displaying glyphs and tracts.<br />
For DTI<br />
* Edit the measurement frame as described above. <br />
* Test by displaying glyphs and tracts.<br />
<br />
= Usage =<br />
<br />
==Examples & Tutorials==<br />
<br />
=== Preparation ===<br />
<br />
* Download Slicer. The most recent stable Slicer version can be found [http://www.slicer.org/pages/Downloads here]. Or load Slicer's latest snapshot.<br />
* You can also use SVN to checkout the trunk of the current version of Slicer. See [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions here] for more instructions on how to build Slicer.<br />
* Download example data: [[ media:DiffusionEditor_ExampleData.zip | DiffusionEditor_ExampleData.zip ]]<br />
<br />
=== Tutorials ===<br />
<font color="Red"> TODO: Tutorials; add ExampleData </font><br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! title !! used data!!short description<br />
|-<br />
| [[Tutorials:DiffusionEditor-Load| Load]] ||___ ||Load a DWI dicom data set in Slicer.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Measurement frame| Measurement frame]] ||___ ||Change the measurement frame by rotating, swapping, inverting or changing to identity.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Gradients | Gradients ]]||___ ||Change gradients manually or load them from a file.<br />
|-<br />
| [[Tutorials:DiffusionEditor-Testing | Testing ]]||___ ||Run tensor estimation and show glyphs and tracts; <br />
Run second estimation with 90°rotation and switch between both tensors and see the impact of that change.<br />
|}<br />
<br />
==Quick Tour of Features and Use==<br />
<br />
[[Image:DiffusionEditor_v8.jpg|right|overview]]<br />
<br />
* '''Measurement frame:'''<br />
<br />
# The determinant of the measurement frame has to be 1. This is checked by the editor.<br />
# '''Invert''': Select the columns you want to invert.<br />
# '''Swap''': Select two columns you want to swap.<br />
# '''Rotate''': Select one column you want to rotate by an angle you can choose from a given set of values or set yourself.<br />
# '''Identity''': Set the measurement frame to the identity matrix.<br />
# Set your own values.<br />
<br />
* '''Gradients frame:'''<br />
# If the active volume is a DWI the editor will put the gradients in the text field; otherwise this frame is disabled.<br />
# You can copy/paste your own gradients in the text field or change them manually.<br />
# You can load gradients from a text file or .nhdr file. For the .txt file the format of gradients is easy, it can contain only values ([[ media:DiffusionEditor_ExampleData.zip | see example data ]]).<br />
<br />
* '''Undo/Redo/Restore:'''<br />
#'''Undo''': Undo the last change of measurement/gradient values.<br />
#'''Redo''': Redo the last change of measurement/gradient values.<br />
#'''Restore''': All parameters are restored to original.<br />
<font color="Red">NOTE:</font> You lose all previous changes when a new active volume is loaded or selected.<br />
<br />
* '''Testing frame:'''<br />
# '''Run''' tensor estimation. The new tensor node shows up in the DTI selector.<br />
# Select a DTI node from the current mrml scene and for<br />
## Glyph visibility: Select the planes on which you want to see glyphs and adjust the glyph spacing.<br />
## Tract visibility: Add some fiducials and choose the fiducial list in the selector. Show tracts with Tractography Fiducial Seeding.<br />
<br />
= Development =<br />
<br />
== Status / Implementation Progress ==<br />
The editor is now successfully integrated in the Volumes module of the trunk version of Slicer3.<br />
*measurement frame (gui/load/change/save): 100%<br />
*gradients (gui/load/change/save): 100%<br />
*undo/redo/restore mechanism: 100%<br />
*testing frame: 100%<br />
** tensor estimation for DWI with existing clm: 100%<br />
** glyphs view in all three planes with the possibility to change spacing: 100%<br />
** tractography fiducial seeding: 100%<br />
*ctest: 100%<br />
*documentation, tutorials (videos): 50%<br />
*writing master thesis: 5% :-)<br />
<br />
== Known issues / bugs ==<br />
<br />
Follow this link to the Slicer3 bug tracker to see known bugs, or to report a new one. Please select the '''usability issue category''' when browsing or contributing:<br />
<br />
http://na-mic.org/Mantis/main_page.php<br />
<br />
Queries, feature requests and other feedback should be directed to slicer-devel |at| bwh.harvard.edu. You can also sign up for Slicers user and developer list to make sure you hear of new developments, releases and bug fixes.<br />
<br />
=== Issues ===<br />
* Changing the measurement frame of a DTI has no impact. The tensor is not estimated again. <br />
** Future work: Adding new rotation filter for tensors (contributed by Raul San Jose)<br />
* Multiple bValues are not displayed. Currently to describe acquisitions with different b-values the magnitudes of the gradients are changed. See the nrrd format page about [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format#Describing_DWIs_with_differen_b-values describing DWIs with different b-values].<br />
** Future work: Adding different views of gradients/bValues.<br />
* Checking gradients when one types new values in the textbox is slowly. Reason: SetDiffusionGradients of the vtkMRMLDiffusionWeightedVolumeNode seems to trigger many events.<br />
** Future work: Use [http://wiki.na-mic.org/Wiki/index.php/Slicer3:EventBroker Eventbroker] for performance analysis and if necessary turn off events.<br />
<br />
== Source code & documentation ==<br />
<br />
Source code is available here:<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionEditorLogic.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerMeasurementFrameWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerGradientsWidget.h<br />
<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.cxx<br />
http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Volumes/vtkSlicerDiffusionTestingWidget.h<br />
<br />
Links to documentation generated by doxygen:<br />
<br />
http://www.na-mic.org/Slicer/Documentation/Slicer3/html/<br />
<br />
= More Information =<br />
<br />
== Acknowledgement ==<br />
This research project was part of a Master thesis (Diplomarbeit) in cooperation of the faculty of Medical Informatics, University of Heidelberg/Germany and the Surgical Planning Lab. It was supported by a grant of the Lions Club Heilbronn/Franken.<br />
<br />
==References==<br />
<font color="Red">TODO: add link to thesis, papers... </font><br />
<br />
Nrrd format: [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:Nrrd_format]<br />
<br />
DTMRI: [http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI]<br />
<br />
DICOM for DWI and DTI : [http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI http://wiki.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI]</div>Kerstin