AthenaEPI / dmipy

The open source toolbox for reproducible diffusion MRI-based microstructure estimation
MIT License
96 stars 30 forks source link

FEAT: add skeleton for amico implementation #89

Open matteofrigo opened 4 years ago

matteofrigo commented 4 years ago

With this PR we add the skeleton for the implementation of AMICO. Let's open the discussion @Sara04 @rutgerfick .

dmipy.core.modeling_framework

For the MultiCompartmentAMICOModel and the MultiCompartmentAMICOSphericalMeanModel we have to do the following:

dmipy.core.fitted_modeling_framework

rutgerfick commented 4 years ago

As for the creation of the AMICO solver, I think we should build the skeleton the same as for https://github.com/AthenaEPI/dmipy/blob/master/dmipy/optimizers_fod/csd_cvxpy.py.

So without a lookup-table, I think in the first iteration we just build the M-matrix on-the-fly in the main call of the class.

In a next iteration we prepare the look-up table etc in the init, and then use that in the call to speed up the process.

However, since we're using multi-processing we have to consider that a lookup table is a big piece of memory and it will be painful to keep creating processes with this block of data, but we'll tackle this problem when we get there.