MRtrix3 / mrtrix3

MRtrix3 provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density
http://www.mrtrix.org
Mozilla Public License 2.0
295 stars 182 forks source link

Containers: Split w.r.t. dependencies #2601

Open Lestropie opened 1 year ago

Lestropie commented 1 year ago

The topic of MRtrix3 Python scripts making use of commands from other neuroimaging software packages has always been thorny. With dwi2mask in #2197 expanding that list, requiring a greater number of dependencies to be encapsulated into the containers in #2529, it becomes even thornier, and it's getting harder to justify dragging all of those external tools into "the MRtrix3 official containers".

What I wish to propose here is that we provide two image recipes:

  1. One that contains only MRtrix3 commands. Ideally, attempting to execute any MRtrix3 command that has an external dependency would yield a very specific error, saying that it is not possible to execute that command because of the absence of the requisite external dependency within the container.

  2. One that contains both MRtrix3 and any tools from other neuroimaging software packages that the scripts within such may make use of. This would essentially be the same as the containers that are already provided as at 3.0.3 & 3.0.4. However the proposed change would provide an important distinction: the existence of the first container above would implicitly highlight that this second container would be MRtrix3 and a bunch of other things that certain scripts may use. So it would be a container of broader applicability, including components of multiple neuroimaging packages, but it happens to be maintained by the MRtrix3 developers since that's its primary purpose.

Thoughts?

Lestropie commented 1 year ago

Another thought in this respect:

We should have a dedicated page in the online documentation, describing how there are multiple scripts that despite being included in the main MRtrix3 repository are in fact dependent on external neuroimaging software packages, and that therefore the user's environment needs to have those other softwares installed in order for the MRtrix3 scripts to work. This would then be expanded w.r.t. the OP in that it would explain the differences between the two containers, and the error message generated in the MRtrix3-only container could print a hyperlink to that documentation page.