@arokem concerning your 2nd and 3rd points. We don't need to do exactly what mrtrix does. Actually, we also have implemented more deconvolution algorithms than what mrtrix has. Look at the ConstrainedSDT for example. Indeed, there are many ways to select the response functions and it would be nice to have one that works best. What I have implemented here is finding the center of the volume and getting an small ROI around that, that most likely will have parts of the CC. Of course we can make that better by using what Sam did to find the CC voxels. That could be a nice future enhancement. But we will need to investigate if it works that well for this problem.

Concerning your 1st point. I think that for the time being the response estimation (auto_response) should be called before the CSD because we need to give it the data too and a couple of parameters which could be different. For example the roi_width parameter will be different if you have data in 2mm or in 1mm voxel size. Otherwise when someone calls fit function we could have a mechanism that checks if the response is None and then try to calculate it. But I don't like this idea very much because we will need to add the parameters of the auto_response in the CSD model.