NODDI fit error
arash-n opened this issue · 3 comments
Dear all,
I have been trying to use mdt_model_fit as follows on my data:
mdt-model-fit NODDI dwi.nii.gz protocol.prtcl dwi_brainmask.nii.gz
I get "Segmentation fault (core dumped)" after a while. I was wondering if you can help me find out what went wrong.
Here is the log and output folder:
└── BallStick_r1
├── info.log
└── tmp_results
└── processing_tmp
└── roi_voxel_lookup_table.npy
Log:
[2020-04-19 02:22:10,805] [INFO] [mdt.lib.processing.model_fitting] [get_model_fit] - Starting intermediate optimization for generating initialization point.
[2020-04-19 02:22:10,945] [INFO] [mdt.lib.processing.model_fitting] [fit_composite_model] - Using MDT version 1.2.3
[2020-04-19 02:22:10,945] [INFO] [mdt.lib.processing.model_fitting] [fit_composite_model] - Preparing for model BallStick_r1
[2020-04-19 02:22:11,525] [INFO] [mdt.models.composite] [_prepare_input_data] - No volume options to apply, using all 300 volumes.
[2020-04-19 02:22:11,525] [INFO] [mdt.utils] [estimate_noise_std] - Trying to estimate a noise std.
[2020-04-19 02:22:11,641] [INFO] [mdt.utils] [estimate_noise_std] - Estimated global noise std 4.953189373016357.
[2020-04-19 02:22:11,641] [INFO] [mdt.lib.processing.model_fitting] [_model_fit_logging] - Fitting BallStick_r1 model
[2020-04-19 02:22:11,641] [INFO] [mdt.lib.processing.model_fitting] [_model_fit_logging] - The 4 parameters we will fit are: ['S0.s0', 'w_stick0.w', 'Stick0.theta', 'Stick0.phi']
[2020-04-19 02:22:11,641] [INFO] [mdt.lib.processing.model_fitting] [fit_composite_model] - Saving temporary results in output/sub-CC00060XX03_ses-12501_desc-preproc_space-dwi_brainmask/BallStick_r1/tmp_results.
[2020-04-19 02:22:11,829] [INFO] [mdt.lib.processing.processing_strategies] [_process_chunk] - Computations are at 0.00%, processing next 100000 voxels (215497 voxels in total, 0 processed). Time spent: 0:00:00:00, time left: ? (d:h:m:s).
[2020-04-19 02:22:11,829] [INFO] [mdt.lib.processing.model_fitting] [_process] - Starting optimization
[2020-04-19 02:22:11,830] [INFO] [mdt.lib.processing.model_fitting] [_process] - Using MOT version 0.11.2
[2020-04-19 02:22:11,830] [INFO] [mdt.lib.processing.model_fitting] [_process] - We will use a single precision float type for the calculations.
[2020-04-19 02:22:11,830] [INFO] [mdt.lib.processing.model_fitting] [_process] - Using device 'CPU - pthread-Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz (Portable Computing Language)'.
[2020-04-19 02:22:11,830] [INFO] [mdt.lib.processing.model_fitting] [_process] - Using compile flags: ('-cl-denorms-are-zero', '-cl-mad-enable', '-cl-no-signed-zeros')
[2020-04-19 02:22:11,830] [INFO] [mdt.lib.processing.model_fitting] [_process] - We will use the optimizer Powell with default settings.
[2020-04-19 05:14:02,626] [INFO] [mdt.lib.processing.model_fitting] [_process] - Finished optimization
[2020-04-19 05:14:02,626] [INFO] [mdt.lib.processing.model_fitting] [_process] - Starting post-processing
Segmentation fault (core dumped)
Hi Arash,
This is a common error and it depends a bit on the GPU and the driver version. What fails is the computation of the covariance matrix, a matrix detailing the uncertainty of the parameter estimates. The workaround I often proposed was to disable this post-processing using a configuration file.
However, since this is frequent problem and since the uncertainty maps are a hardly used feature, I decided to change the MDT and disable this post-processing by default. It can always be re-enabled.
If you would upgrade to MDT version 1.2.4, you would (hopefully) find that the computations run to completion.
Let me know if it worked out for you.
Best,
Robbert
Thanks Robbert. It worked perfectly.
Just a quick question about NODDI output files. Is w_csf.w.nii.gz the final CSF fraction file?
Great, good to hear.
And, yes, w_csf.w.nii.gz is the complete CSF fraction.
Closing this issue as it seems solved. Nonetheless, please don't hesitate to check in if needed.