Ahoi hoi @mschoettner,
great that you want to make your analyses reproducible and thinking about it at this early stage. Here are my two cents:
I think overall, you have a few options here, depending on what exactly do you want to do and how your analyses pipeline is set up.
bring DCM into python (that might be rough)
create a new nipype interface for DCM, following the other way the other SPM functions are implemented (for a nice overview on how to create interfaces check the corresponding part of the nipype tutorial)
use DCM within a function node (for examples on how to use functions node, check here)
you can use a matlab kernel within a
As you were also mentioning
docker: you should use the standalone version of SPM within the
docker (or rather
singularity image, as you want to run DCM analyses on a server system rather than your local machine). Otherwise, reproducibility would become more difficult as matlab licenses and versions need to be addressed. For example
docker images that include the standalone version of SPM have a look here, here or here.
Nipype supports this version of SPM without problems (please see here).
To create a
docker image with the standalone version of
SPM , just use neurodocker, for example like this:
docker run --rm kaczmarj/neurodocker:master generate docker \
--base neurodebian:stretch-non-free \
--pkg-manager apt \
--spm12 version=dev \
conda_install="python=3.6 jupyter jupyterlab jupyter_contrib_nbextensions
nbformat nb_conda" \
--run-bash 'source activate neuro && jupyter nbextension enable exercise2/main && jupyter nbextension enable spellchecker/main' \
--run 'mkdir -p ~/.jupyter && echo c.NotebookApp.ip = \"0.0.0.0\" > ~/.jupyter/jupyter_notebook_config.py' \
--workdir /home/dcm_repro/dcm_nipype \
--cmd jupyter-notebook | docker build -
@Guillaume, do you have any other ideas and/or more insights?
HTH, cheers, Peer
Edit: for a nice thread on
docker please have a look here.