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
jupyter notebook
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 \
--user=dcm_repro \
--miniconda \
conda_install="python=3.6 jupyter jupyterlab jupyter_contrib_nbextensions
nbformat nb_conda" \
pip_install="https://github.com/nipy/nipype/tarball/master" \
create_env="dcm_repro" \
activate=true \
--run-bash 'source activate neuro && jupyter nbextension enable exercise2/main && jupyter nbextension enable spellchecker/main' \
--user=dcm_repro \
--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 SPM and docker please have a look here.