View Issue Details

IDProjectCategoryView StatusLast Update
0001105Slicer4Core: CLI infrastructurepublic2011-09-01 10:52
Reporterinorton Assigned Tojcfr  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.0 gamma RC1 
Target VersionSlicer 4.0.0Fixed in VersionSlicer 4.0.0 
Summary0001105: DT Estim runs as SharedObjectModule rather than CommandLineModule
Description

The call in Slicer3 is:
<pre>
/cmn/dev/Slicer3-build/lib/Slicer3/Plugins/DiffusionTensorEstimation --enumeration LS --otsuomegathreshold 0.5 --removeislands --applymask /home/isaiah/Slicer3isaiah/BHAFJ_vtkMRMLDiffusionWeightedVolumeNodeB.nrrd /home/isaiah/Slicer3isaiah/BHAFJ_vtkMRMLDiffusionTensorVolumeNodeC.nrrd /home/isaiah/Slicer3isaiah/BHAFJ_vtkMRMLScalarVolumeNodeC.nrrd /home/isaiah/Slicer3isaiah/BHAFJ_vtkMRMLScalarVolumeNodeD.nrrd
</pre>

whereas in Slicer4:
<pre>
slicer:0xa47f6c08 --processinformationaddress 0xc0c59f8 --enumeration LS --otsuomegathreshold 0.5 --removeislands --applymask slicer:0x9e61188#vtkMRMLDiffusionWeightedVolumeNode1 slicer:0x9e61188#vtkMRMLDiffusionTensorVolumeNode2 slicer:0x9e61188#vtkMRMLScalarVolumeNode2
slicer:0x9e61188#vtkMRMLScalarVolumeNode3
</pre>

Additional Information

logic is from around line 608 in vtkSlicerCLIModuleLogic::ApplyTask. DiffusionTensorEstimation does not support itk shared pointers b/c it uses the Teem NRRD reader rather than the ITK readers [this will change, but just want to get it working again first]

it is called by slicer as a SharedObjectModule rather than CommandLineModule. I confirmed this with some debugging lines in vtkSlicerCLIModuleLogic, and by calling GetType on the vtkMRMLCommandLineModuleNode in python.

TagsNo tags attached.

Activities

inorton

inorton

2011-02-21 11:26

developer   ~0002315

The strange thing is that it is built as both .so and CLP, so there is both libDiffusionTensorEstimationLib.so and DiffusionTensorEstimation executable in Slicer-build///Plugins.

When I remove the .so, the module is no longer loaded. I tried copying DiffusionTensorEstimation to Slicer-build/bin, but it is not recognized from there either.

inorton

inorton

2011-03-15 14:50

developer   ~0002348

Last edited: 2011-03-15 14:51

This is fixed. There is an unrelated issue with creating the DiffusionTensorVolumeNode automagically from the drop-down menu. Here is my email for reference:

"""
Thanks a lot for this change. I looked at the DTI estimation again and the module is now compiled and called as a CLI. However, there seems to be a problem with reading the output DiffusionTensorVolume back into Slicer after execution - the volume ends up blank. Here's some debugging info:

  1. The "Output Baseline Volume" and "Otsu Threshold Mask" volumes are read back in ok.

  2. if I set DeleteTemporaryFiles=0 in vtkSlicerCLIModuleLogic.cxx, then run the estimation, I can manually load the (temp) output DiffusionTensorVolume back into Slicer ok from File->Add Volume (and it looks fine).

  3. the relevant call is vtkSlicerCLIModuleLogic.cxx:1811, where it calls:
    this->GetApplicationLogic()->RequestReadData(...)

  4. In the Volumes Module:
    --if i use the selector to select a manually-loaded DiffusionTensorVolume then it works fine.
    --If I select a node auto-created by the "Create New DiffusionTensorVolume" option in the dropdown menu in DiffusionTensorEstimation, then Slicer segfaults.

  5. This sequence gives the correct result:
    -- I manually load helix-DTI from the test data
    -- then run the estimation on my real data with the Output DTI Volume set to existing helix-DTI

From 4 and 5 it seems that the menu auto-create is not setting up the node correctly, and this causes RequestReadData to fail (though without any error, oddly...).

Test data is located in: ./Libs/MRML/Testing/TestData/
helix-DWI should produce helix-DTI
"""

Thanks!

finetjul

finetjul

2011-04-15 15:37

administrator   ~0002390

As of today, it seems that 4. doesn't crash anymore.

Can you close this issue if it is resolved, and open another one if needed?

Thanks.

inorton

inorton

2011-05-12 16:24

developer   ~0002424

Thanks Julien. Submitted a bug for the other problem:
http://na-mic.org/Mantis/view.php?id=1161

inorton

inorton

2011-05-12 16:25

developer   ~0002425

I don't have permission to close on mantis, but I think this is resolved.

Issue History

Date Modified Username Field Change
2011-02-21 11:20 inorton New Issue
2011-02-21 11:26 inorton Note Added: 0002315
2011-03-15 13:01 nicole Assigned To => jcfr
2011-03-15 13:01 nicole Status new => assigned
2011-03-15 14:50 inorton Note Added: 0002348
2011-03-15 14:51 inorton Note Edited: 0002348
2011-04-15 15:37 finetjul Note Added: 0002390
2011-05-12 16:24 inorton Note Added: 0002424
2011-05-12 16:25 inorton Note Added: 0002425
2011-08-05 13:50 finetjul Status assigned => closed
2011-08-05 13:50 finetjul Resolution open => fixed
2011-08-05 13:50 finetjul Fixed in Version => Slicer 4.0 gamma RC1
2011-08-15 07:24 jcfr Status closed => resolved
2011-08-15 07:24 jcfr Fixed in Version Slicer 4.0 gamma RC1 => Slicer 4.0 RSNA
2011-08-16 06:07 jcfr Product Version => Slicer 4.0 gamma RC1
2011-08-25 09:27 finetjul Target Version => Slicer 4.0 RSNA
2011-09-01 10:52 inorton Status resolved => closed