View Issue Details

IDProjectCategoryView StatusLast Update
0003855Slicer4Core: Diffusion and Tractography (Any modules)public2018-03-02 11:06
Reporterlauren Assigned Toalexy  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.3.1 
Target VersionSlicer 4.5.0-1Fixed in VersionSlicer 4.5.0-1 
Summary0003855: The output baseline volume is not the baseline volume
Description

The DiffusionWeightedVolumeMasking module outputs a mask volume and another volume, which it calls the Baseline Volume. This output is not a baseline. It is apparently the average of the diffusion-weighted images. Signal is low in the ventricles, due to diffusion.

See screenshots.

Note that the DWI to DTI estimation produces a Baseline Volume that is, in fact, the baseline. This image is not sensitized to diffusion (the definition of the baseline), therefore signal is high in the ventricles.

TagsNo tags attached.

Activities

2014-09-23 08:54

 

2014-09-23 08:54

 

lauren

lauren

2014-12-17 15:11

developer   ~0012793

Now the output has changed but it is still not a baseline image. The images attached show the new output, some sort of a thresholded image that was probably used in mask computation. For reference the actual baseline (from when tensors were computed) is the second screenshot.

2014-12-17 15:12

 

2014-12-17 15:12

 

jcfr

jcfr

2015-10-28 20:57

administrator   ~0013465

Fixed in r24673
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24673

Thanks to "Orjan Bergmann", the issue is now fixed and the outputs (baseline and mask) of the modules are now tested for regression.

Bonus: It would be great to add an other test checking if the "removeisland" functionality work as expected. Name of the test would be "DiffusionWeightedVolumeMaskingTest_removeisland"

For reference, here is the commit message:

//----------------------
BUG: Fix DiffusionWeightedVolumeMasking module and add test. See 0003855

The updated line calculates the magnitude of each gradient, and
determines that an image is "baseline" if the magnitude is smaller than
a threshold.

The use of "abs()" on double values caused the magnitude to
always be 0, and therefore all images were considered as "baseline" and
included in the average computed by the filter and presented as "Output
baseline volume" to the user.

This commit fixes the incorrect logic using "fabs()", simplifies the test
case removing the use of "--removeislands", updates the test harness to use
"compare" functions to validate the output of the module against baseline
images.

Note that the "--removeislands" should be tested in a separate test case.

Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

From: Orjan Bergmann <orjan.bergmann@gmail.com>
//----------------------

Issue History

Date Modified Username Field Change
2014-09-23 08:54 lauren New Issue
2014-09-23 08:54 lauren Status new => assigned
2014-09-23 08:54 lauren Assigned To => alexy
2014-09-23 08:54 lauren File Added: Incorrect_Baseline_From_Masking.png
2014-09-23 08:54 lauren File Added: Correct_Baseline_From_DTI_calc.png
2014-12-17 15:11 lauren Note Added: 0012793
2014-12-17 15:12 lauren File Added: still_not_baseline_but_different.png
2014-12-17 15:12 lauren File Added: this_is_what_the_baseline_should_look_like.png
2015-10-28 20:56 jcfr Target Version => Slicer 4.5.0-1
2015-10-28 20:57 jcfr Note Added: 0013465
2015-10-28 20:57 jcfr Status assigned => resolved
2015-10-28 20:57 jcfr Fixed in Version => Slicer 4.5.0-1
2015-10-28 20:57 jcfr Resolution open => fixed
2016-02-29 13:58 jcfr Category Module DiffusionWeightedVolumeMasking => Core: Diffusion & Tractography
2016-02-29 14:05 jcfr Category Core: Diffusion & Tractography => Core: Diffusion & Tractography (Any modules)
2016-06-20 14:14 jcfr Category Core: Diffusion & Tractography (Any modules) => Core: Diffusion and Tractography (Any modules)
2018-03-02 11:06 jcfr Status resolved => closed