[Neuroimaging] [DIPY] propagator anisotropy estimation using MAP(L)MRI

Ping-Hong Yeh pinghongyeh at gmail.com
Fri Jan 19 11:43:49 EST 2018


Hi Rutger,

 Just give you an update of the results (see the attached snapshots) using
GCV weighted and Laplacian regularization for MAPMRI estimation.

The other PA mapping was calculated using TORTOISE.  I have also attached
RTOP mapping calculated using DIPY with and without GCV weighted and Laplacian
regularization.

Comparing to the TORTOISE, PA values in the one using GCV weighted and
Laplacian
regularization method are relatively smaller, particularly over the regions
with the less dense white matter.

For RTOP images, I am not sure whether GCV weighted and Laplacian
regularization method outperforms the one without using GCV weighted
and Laplacian
regularization.

Any comments?
Thank you,

ping

On Wed, Jan 17, 2018 at 7:48 PM, Rutger Fick <fick.rutger at gmail.com> wrote:

> Hi Ping,
>
> If it's still running and gave only that error then probably it was just a
> single voxel that failed and the rest is working. However, I recommend you
> first try to fit a smaller dataset (just a few voxels or a single slice)
> just to check the results make sense.
>
> I should mention that the code I gave you is slower than Dipy's public
> version for reasons I won't get into, so don't worry if you have to wait
> longer than before.
>
> Best,
> Rutger
>
> On 18 Jan 2018 00:58, "Ping-Hong Yeh" <pinghongyeh at gmail.com> wrote:
>
>> Hi Rutger,
>>
>> Thanks again for the prompt reply.
>>
>> Adding "mask" to mapmri have fixed the error; however, another error
>> shows up,
>>
>> mapfit_L = map_model_L.fit(data,mask=data[..., 0]>0)
>> dipy/core/geometry.py:129: RuntimeWarning: invalid value encountered in
>> true_divide
>>   theta = np.arccos(z / r)
>> dipy/reconst/mapmri_pa.py:364: UserWarning: The MAPMRI positivity
>> constraint depends on CVXOPT (http://cvxopt.org/). CVXOPT is licensed
>> under the GPL (see: http://cvxopt.org/copyright.html) and you may be
>> subject to this license when using the positivity constraint.
>>   warn(w_s)
>> dipy/reconst/mapmri_pa.py:413: UserWarning: Optimization did not find a
>> solution
>>   warn('Optimization did not find a solution')
>> Error: Couldn't find per display information
>>
>>
>> It is still running though. Should i stop the running?
>>
>> Thank you.
>> ping
>>
>> On Tue, Jan 16, 2018 at 7:18 PM, Rutger Fick <fick.rutger at gmail.com>
>> wrote:
>>
>>> Hi Ping,
>>>
>>> Reading the error messages, it looks like you're fitting a masked voxel.
>>> The following error:
>>>
>>> /Library/Python/2.7/site-packages/dipy/reconst/mapmri_pa.py:389:
>>> RuntimeWarning: invalid value encountered in divide
>>>   data = np.asarray(data / data[self.gtab.b0s_mask].mean())
>>>
>>> says you're dividing by either zero or NaN, which means your b0 value of
>>> that voxel was zero (or you had no b0 values possibly). Note that mapmri
>>> needs at least one b0 measurement.
>>> I recommend you check if it works when you fit a voxel that you know for
>>> sure is in white matter. If it works, you can do something like
>>> map_model_L.fit(data, mask=data[..., 0]>0) to use a mask that only fits
>>> if the first measured DWI is positive (assuming your first measurement is a
>>> b0).
>>>
>>> Best,
>>> Rutger
>>>
>>>
>>>
>>> On 16 January 2018 at 23:46, Ping-Hong Yeh <pinghongyeh at gmail.com>
>>> wrote:
>>>
>>>> Hi Rutger,
>>>>
>>>> I got an error running the map_model.fit using mapmri_pa. Here is the
>>>> scripts i used,
>>>>
>>>>
>>>> map_model_L = mapmri_pa.MapmriModel(gtab, radial_order=radial_order,
>>>>                                laplacian_regularization=True,  # this
>>>> regularization enhances reproducibility of estimated q-space indices by
>>>> imposing smoothness
>>>>                                laplacian_weighting="GCV",  # this makes
>>>> it use generalized cross-validation to find the best regularization weight
>>>>                                positivity_constraint=True)  # this
>>>> ensures the estimated PDF is positive
>>>>
>>>> mapfit_L = map_model_L.fit(data)
>>>>
>>>> , and the error message,
>>>>
>>>>
>>>> /Library/Python/2.7/site-packages/dipy/core/geometry.py:129:
>>>> RuntimeWarning: invalid value encountered in true_divide
>>>>   theta = np.arccos(z / r)
>>>> /Library/Python/2.7/site-packages/dipy/reconst/mapmri_pa.py:364:
>>>> UserWarning: The MAPMRI positivity constraint depends on CVXOPT (http:
>>>> xopt.org/). CVXOPT is licensed under the GPL (see:
>>>> http://cvxopt.org/copyright.html) and you may be subject to this
>>>> license when using positivity constraint.
>>>>   warn(w_s)
>>>> /Library/Python/2.7/site-packages/dipy/reconst/mapmri_pa.py:389:
>>>> RuntimeWarning: invalid value encountered in divide
>>>>   data = np.asarray(data / data[self.gtab.b0s_mask].mean())
>>>> /Library/Python/2.7/site-packages/dipy/reconst/mapmri_pa.py:413:
>>>> UserWarning: Optimization did not find a solution
>>>>   warn('Optimization did not find a solution')
>>>> /Library/Python/2.7/site-packages/dipy/reconst/mapmri_pa.py:444:
>>>> UserWarning: Optimization did not find a solution
>>>>   warn('Optimization did not find a solution')
>>>> Traceback (most recent call last):
>>>>   File "<stdin>", line 1, in <module>
>>>>   File "/Library/Python/2.7/site-packages/dipy/reconst/multi_voxel.py",
>>>> line 33, in new_fit
>>>>     fit_array[ijk] = single_voxel_fit(self, data[ijk])
>>>>   File "/Library/Python/2.7/site-packages/dipy/reconst/mapmri_pa.py",
>>>> line 465, in fit
>>>>     coef_iso = coef_iso / sum(coef_iso * self.Bm_iso)
>>>> UnboundLocalError: local variable 'coef_iso' referenced before
>>>> assignment
>>>>
>>>>
>>>> Any suggestions?
>>>>
>>>> Thank you.
>>>>
>>>> ping
>>>>
>>>> On Fri, Jan 12, 2018 at 6:24 PM, Rutger Fick <fick.rutger at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Ping,
>>>>>
>>>>> Attached is the mapmri code that also has PA, just put it in the
>>>>> dipy/reconst/ folder (where also the current mapmri.py file is) and run
>>>>> "python setup.py install" from dipy's main folder. That should make it
>>>>> usable in the same way as the current mapmri module.
>>>>> Note that its based on an old implementation that still works with the
>>>>> "cvxopt" optimizer package, so you'll have to install cvxopt to make it run.
>>>>>
>>>>> I recommend you use the model with both laplacian regularization and
>>>>> positivity constraint, this give the best results in general.
>>>>>
>>>>> from dipy.reconst import mapmri_pa
>>>>> mapmod = mapmri_pa.MapmriModel(gtab,
>>>>>                                laplacian_regularization=True,  # this
>>>>> regularization enhances reproducibility of estimated q-space indices by
>>>>> imposing smoothness
>>>>>                                laplacian_weighting="GCV",  # this
>>>>> makes it use generalized cross-validation to find the best regularization
>>>>> weight
>>>>>                                positivity_constraint=True)  # this
>>>>> ensures the estimated PDF is positive
>>>>> mapfit = mapmod.fit(data)
>>>>> pa = mapfit.pa()
>>>>>
>>>>> Aside from the original MAPMRI citation for Ozarslan et al. (2013),
>>>>> note that the relevant citation for dipy's laplacian-regularized MAP-MRI
>>>>> implementation is [1].
>>>>> [1] Fick, Rutger HJ, et al. "MAPL: Tissue microstructure estimation
>>>>> using Laplacian-regularized MAP-MRI and its application to HCP data."
>>>>> *NeuroImage* 134 (2016): 365-385.
>>>>>
>>>>> Hope it helps and let me know if you need anything else,
>>>>> Rutger
>>>>>
>>>>>
>>>>> On 12 January 2018 at 21:48, Ping-Hong Yeh <pinghongyeh at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Roger,
>>>>>>
>>>>>> Thanks for the prompt reply.
>>>>>> May I have the code for estimating PA?
>>>>>>
>>>>>> Ping
>>>>>>
>>>>>> On Jan 12, 2018 3:21 PM, "Rutger Fick" <fick.rutger at gmail.com> wrote:
>>>>>>
>>>>>>> Hi Ping,
>>>>>>>
>>>>>>> MAPL is just a name for using laplacian-regularized MAP-MRI. If
>>>>>>> you're using the dipy mapmri implementation then you're using MAPL by
>>>>>>> default.
>>>>>>> From a fitted mapmri model you can estimate overall non-gaussianity
>>>>>>> using fitted_model.ng(), and parallel and perpendicular non-Gaussianity
>>>>>>> using ng_parallel() and ng_perpendicperpendicularular().
>>>>>>> Propagator Anisotropic is not included in the current dipy
>>>>>>> implementation. However, I do have a personal version of dipy's mapmri
>>>>>>> implementation that includes it, if you're interested.
>>>>>>>
>>>>>>> Best,
>>>>>>> Rutger
>>>>>>>
>>>>>>> On 12 January 2018 at 16:49, Ping-Hong Yeh <pinghongyeh at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi DIPY users,
>>>>>>>>
>>>>>>>> I would like to know the way of estimating non-Gaussian and PA,
>>>>>>>> mentioned in the Avram et al. “Clinical feasibility of using mean
>>>>>>>> apparent propagator (MAP) MRI to characterize brain tissue microstructure”
>>>>>>>> paper,  using MAPMRI or MAPL model.
>>>>>>>>
>>>>>>>> Thank you.
>>>>>>>>
>>>>>>>> Ping
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Neuroimaging mailing list
>>>>>>>> Neuroimaging at python.org
>>>>>>>> https://mail.python.org/mailman/listinfo/neuroimaging
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Neuroimaging mailing list
>>>>>>> Neuroimaging at python.org
>>>>>>> https://mail.python.org/mailman/listinfo/neuroimaging
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Neuroimaging mailing list
>>>>>> Neuroimaging at python.org
>>>>>> https://mail.python.org/mailman/listinfo/neuroimaging
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Neuroimaging mailing list
>>>>> Neuroimaging at python.org
>>>>> https://mail.python.org/mailman/listinfo/neuroimaging
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Neuroimaging mailing list
>>>> Neuroimaging at python.org
>>>> https://mail.python.org/mailman/listinfo/neuroimaging
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Neuroimaging mailing list
>>> Neuroimaging at python.org
>>> https://mail.python.org/mailman/listinfo/neuroimaging
>>>
>>>
>>
>> _______________________________________________
>> Neuroimaging mailing list
>> Neuroimaging at python.org
>> https://mail.python.org/mailman/listinfo/neuroimaging
>>
>>
> _______________________________________________
> Neuroimaging mailing list
> Neuroimaging at python.org
> https://mail.python.org/mailman/listinfo/neuroimaging
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20180119/2037c740/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PA_tortoise.png
Type: image/png
Size: 113444 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20180119/2037c740/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PA_L_dipy.png
Type: image/png
Size: 115232 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20180119/2037c740/attachment-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtop_dipy.png
Type: image/png
Size: 115634 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20180119/2037c740/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtop_L_dipy.png
Type: image/png
Size: 114225 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20180119/2037c740/attachment-0007.png>


More information about the Neuroimaging mailing list