Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimal diffusivity in NODDI model #150

Open
mblesac opened this issue Nov 23, 2022 · 8 comments
Open

Optimal diffusivity in NODDI model #150

mblesac opened this issue Nov 23, 2022 · 8 comments
Labels

Comments

@mblesac
Copy link

mblesac commented Nov 23, 2022

Dear experts,

I was reading a post about the optimal parallel diffusivity and I was wondering if the approach of fitting by using multiple parallel diffusivities has been implemented or if there are any plans to do it. This will be really helpful for other cohorts outside the healthy adult human brain. Thanks in advance.

Best regards,

Manuel

@ejcanalesr
Copy link

Hi, I think this approach is not implemented yet. Not sure if Alessandro is planning to add this feature in the near future. This should not be difficult, from a technical point of view, but before including that approach in the repository, a lot of validations would be required. Thanks, Erick.

@daducci
Copy link
Owner

daducci commented Nov 24, 2022

Hi @mblesac and @ejcanalesr ,

We didn't implement it because it would suffice to repeat the fit over a range of diffusivities (each time the fit is performed using a different one) and then taking as "solution" the one with the corresponding minimum RMSE. Something like (in metacode):

import amico
AMICO = amico.Evaluation( ... )
...
AMICO.set_model('NODDI')
for dPar in [ 1.5e-3, 1.7e-3, 1.9e-3 ]:
    AMICO.model.set( dPar, ... )
    AMICO.generate_kernels( ... )
    ...
    AMICO.fit()
    AMICO.save_results( path_suffix=f'_dPar={dPar:.2e}' )

and then checking the solution corresponding to the minimum error (i.e. looking at FIT_nrmse.nii.gz files).

This is what you had in mind, right, Erick?

@ejcanalesr
Copy link

Hi Ale,
Yes, that sounds like a feasible solution!

The idea would be to find, for each voxel, the optimal diffusivity that is producing the smallest "nrmse" value from all the FIT_nrmse.nii.gz resulting images.

Then, a new image for each microstructure parameter must be created by writing the value that was estimated with the optimal diffusivity at each voxel.

This seems to be fine in theory, but I am not 100% sure it is going to work in practice, as the residuals may be affected by the regularization (although we use the same regularization factor, so results should be consistent!).

Manuel, I am very curious to know the results in case you want to explore this approach. If this work, it could be published in a journal paper.

All the best,
Erick

@mblesac
Copy link
Author

mblesac commented Nov 30, 2022

Hi,

Thanks for your response!

@ejcanalesr I think this is what was done in this manuscript. I'll try to give it a go after Christmas and see if I find a good implementation of this.

Best regards,

Manuel

@ejcanalesr
Copy link

Great, perfect!
Let me know if you need any help.
I did not know about that paper...
Thanks,
Erick

@mblesac
Copy link
Author

mblesac commented Apr 25, 2023

Hi @daducci and @ejcanalesr,

It took me a while, but with the help of a colleague I have a code that works. The code is far from optimal, it would be great if you could take a look at it.

I did some experiments and the results look great. Please take a look to the ODI maps for one subject (for the original matlab implementation the mask used was different, less restrictive):

image

What do you think? I guess it also raises the question, that how comparable are the maps across subjects if the parallel diffusivity changes at each voxel? Thanks in advance.

Best regards,

Manuel

@ejcanalesr
Copy link

ejcanalesr commented Apr 25, 2023 via email

@mblesac
Copy link
Author

mblesac commented Apr 26, 2023

Hi,

Thanks Erick. I have few updates on this.

I fitted the DTI model on the 750 shell (my acquisition is 16x0, 3x200, 6x500, 64x750 and 64x2500 2mm iso) and I generated a map with the optimal d par selected in each voxel. The map has similar values to the AD:

image

Generally speaking, it seems that the WM has a lot of variability, with AD values between 0.16 and 0.25 approx, the GM the values are around 0.11 to 0.16. Indeed if I threshold both images I can see quite striking separation:

image

I think in this cohort, the variability is very important.

However, the optimal maps for ICVF and the ISOVF don't look as expected at all:

image

Any clue what could be going on? I've checked the code a couple of times and it looks fine...

Thanks in advance.

Best regards,

Manuel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants