diff --git a/MDT/Dockerfile b/MDT/Dockerfile new file mode 100644 index 0000000..9279b3f --- /dev/null +++ b/MDT/Dockerfile @@ -0,0 +1,28 @@ +FROM ubuntu:16.04 + +RUN mkdir -p /src +COPY silent.cfg /src + +# install dependencies +RUN apt-get update && apt-get install -y lsb-core wget + +# install Intel OpenCL runtime +RUN cd /src && \ + wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz && \ + tar -xvzf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz && \ + mv silent.cfg opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 && \ + cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 && \ + ./install.sh --silent silent.cfg --cli-mode + +# install mdt +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get install -y software-properties-common && add-apt-repository ppa:robbert-harms/cbclab +RUN apt-get update && apt-get install -y python3-mdt python3-pip +RUN pip3 install tatsu==4.2.6 + + +# Copy the source files (only this layer will have to be built after the first time) +COPY mdt_script.py /scripts/ + + +ENTRYPOINT ["/usr/bin/python3", "/scripts/mdt_script.py"] diff --git a/MDT/mdt_script.py b/MDT/mdt_script.py new file mode 100644 index 0000000..bed731f --- /dev/null +++ b/MDT/mdt_script.py @@ -0,0 +1,37 @@ +""" +Simple script that runs CHARMED model from MDT. + + +""" + +import numpy as np +import nibabel as nib +import sys + +import mdt + + +def doCHARMED(input_data_filename, bval_filename, bvec_filename, mask_data_filename,TE): + protocol = mdt.create_protocol( + bvecs=bvec_filename, bvals=bval_filename, + out_file='/data/mdt.prtcl', + TE=TE) + + input_data = mdt.load_input_data( + input_data_filename, + '/data/mdt.prtcl', + mask_data_filename) + + mdt.fit_model('CHARMED_r1', input_data, '/data/charmed_') + +if __name__ == '__main__': + data_path = '/data/' + #data_path = '/home/ricardo/brainhack-variations' + + input_data_filename = data_path + str(sys.argv[1]) + bval_filename = data_path + str(sys.argv[2]) + bvec_filename = data_path + str(sys.argv[3]) + mask_data_filename = data_path + str(sys.argv[4]) + TE = float(sys.argv[5]) + + doCHARMED(input_data_filename, bval_filename, bvec_filename, mask_data_filename, TE) diff --git a/MDT/silent.cfg b/MDT/silent.cfg new file mode 100644 index 0000000..2b7255b --- /dev/null +++ b/MDT/silent.cfg @@ -0,0 +1,37 @@ +# Patterns used to check silent configuration file +# +# anythingpat - any string +# filepat - the file location pattern (/file/location/to/license.lic) +# lspat - the license server address pattern (0123@hostname) +# snpat - the serial number pattern (ABCD-01234567) + +# accept EULA, valid values are: {accept, decline} +ACCEPT_EULA=accept + +# install mode for RPM system, valid values are: {RPM, NONRPM} +INSTALL_MODE=NONRPM + +# optional error behavior, valid values are: {yes, no} +CONTINUE_WITH_OPTIONAL_ERROR=yes + +# install location, valid values are: {/opt, filepat} +PSET_INSTALL_DIR=/opt + +# continue with overwrite of existing installation directory, valid values are: {yes, no} +CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes + +# list of components to install, valid values are: {ALL, DEFAULTS, anythingpat} +COMPONENTS=DEFAULTS + +# installation mode, valid values are: {install, modify, repair, uninstall} +PSET_MODE=install + +# directory for non-RPM database, valid values are: {filepat} +#NONRPM_DB_DIR=filepat + +# Intel(R) Software Improvement Program opt-in, valid values are: {yes, no} +PHONEHOME_SEND_USAGE_DATA=no + +# Perform validation of digital signatures of RPM files, valid values are: {yes, no} +SIGNING_ENABLED=yes +