Open Lestropie opened 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.
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:
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.
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?