Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 11 additions & 22 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ FROM pennlinc/qsiprep-dsistudio:${TAG_DSISTUDIO} as build_dsistudio
FROM pennlinc/qsiprep-micromamba:${TAG_MICROMAMBA} as build_micromamba
FROM pennlinc/qsiprep-afni:${TAG_AFNI} as build_afni
FROM pennlinc/qsiprep-drbuddi:${TAG_TORTOISE} as build_tortoise
FROM pennlinc/qsiprep-drbuddicuda:${TAG_TORTOISE} as build_tortoisecuda
FROM pennlinc/qsiprep-drbuddicuda:${TAG_TORTOISECUDA} as build_tortoisecuda
FROM pennlinc/qsiprep-synb0:${TAG_SYNB0} as build_synb0
FROM pennlinc/atlaspack:0.1.0 as atlaspack
FROM nvidia/cuda:11.1.1-runtime-ubuntu18.04 as ubuntu
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04 as ubuntu

# Make a dummy fsl image containing no FSL
FROM ubuntu as no_fsl
Expand Down Expand Up @@ -58,12 +58,8 @@ ENV ANTSPATH="/opt/ants/bin" \
ANTS_DEPS="zlib1g-dev"

## DSI Studio
ENV QT_BASE_DIR="/opt/qt512"
ENV QTDIR="$QT_BASE_DIR" \
LD_LIBRARY_PATH="$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH" \
PKG_CONFIG_PATH="$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_PATH" \
PATH="$QT_BASE_DIR/bin:$PATH:/opt/dsi-studio" \
DSI_STUDIO_DEPS="qt512base qt512charts-no-lgpl"
ENV PATH="$PATH:/opt/dsi-studio-cpu" \
DSI_STUDIO_DEPS="qt6-base-dev libqt6charts6-dev"

## MRtrix3
COPY --from=build_mrtrix3 /opt/mrtrix3-latest /opt/mrtrix3-latest
Expand Down Expand Up @@ -107,7 +103,6 @@ ENV PATH="$PATH:/opt/afni-latest" \
## TORTOISE
COPY --from=build_tortoise /src/TORTOISEV4/bin /src/TORTOISEV4/bin
COPY --from=build_tortoise /src/TORTOISEV4/settings /src/TORTOISEV4/settings
COPY --from=build_tortoise /usr/local/boost176 /usr/local/boost176
COPY --from=build_tortoisecuda /src/TORTOISEV4/bin/*cuda /src/TORTOISEV4/bin/
ENV PATH="$PATH:/src/TORTOISEV4/bin" \
TORTOISE_DEPS="fftw3"
Expand Down Expand Up @@ -140,6 +135,7 @@ RUN apt-get update -qq \
libxm4 \
libxmu6 \
libxt6 \
libboost-all-dev \
perl \
libtiff5 \
netpbm \
Expand All @@ -153,9 +149,6 @@ RUN apt-get update -qq \
&& curl -sSL --retry 5 -o /tmp/libxp6.deb https://upenn.box.com/shared/static/reyyundn0l3guvjzghrrv6t4w6md2tjd.deb \
&& dpkg -i /tmp/libxp6.deb \
&& rm /tmp/libxp6.deb \
&& curl -sSL --retry 5 -o /tmp/libpng.deb http://snapshot.debian.org/archive/debian-security/20160113T213056Z/pool/updates/main/libp/libpng/libpng12-0_1.2.49-1%2Bdeb7u2_amd64.deb \
&& dpkg -i /tmp/libpng.deb \
&& rm /tmp/libpng.deb \
&& apt-get install -f --no-install-recommends \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
Expand Down Expand Up @@ -193,13 +186,12 @@ RUN curl -o pandoc-2.2.2.1-1-amd64.deb -sSL "https://github.com/jgm/pandoc/relea
dpkg -i pandoc-2.2.2.1-1-amd64.deb && \
rm pandoc-2.2.2.1-1-amd64.deb

# Install qt5.12.8
RUN add-apt-repository ppa:beineri/opt-qt-5.12.8-bionic \
&& apt-get update \
# Install qt6
RUN apt-get update \
&& apt install -y --no-install-recommends \
${DSI_STUDIO_DEPS} ${MRTRIX3_DEPS} ${TORTOISE_DEPS} wget git binutils \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY --from=build_dsistudio /opt/dsi-studio /opt/dsi-studio
COPY --from=build_dsistudio /opt/dsi-studio-cpu /opt/dsi-studio-cpu

# Install gcc-9
RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
Expand All @@ -226,10 +218,6 @@ ENV \
IS_DOCKER_8395080871=1 \
ARTHOME="/opt/art" \
DIPY_HOME=/home/qsiprep/.dipy \
QTDIR=$QT_BASE_DIR \
PATH=$QT_BASE_DIR/bin:$PATH \
LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH \
PKG_CONFIG_PATH=$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_PATH \
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nvidia/cudnn/lib:/opt/freesurfer/lib

WORKDIR /root/
Expand All @@ -241,8 +229,9 @@ RUN python fetch_templates.py && \
find $HOME/.cache/templateflow -type f -exec chmod go=u {} +

# Make it ok for singularity on CentOS
RUN strip --remove-section=.note.ABI-tag /opt/qt512/lib/libQt5Core.so.5.12.8 \
&& ldconfig
RUN for lib in /usr/lib/x86_64-linux-gnu/libQt?Core.so.* ; do \
strip --remove-section=.note.ABI-tag "$lib" 2>/dev/null || true ; \
done && ldconfig

# Make singularity mount directories
RUN mkdir -p /sngl/data \
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile_3Tissue
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM nvidia/cuda:11.1.1-devel-ubuntu18.04
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04
ARG TAG_ANTS

RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl git g++ python libeigen3-dev zlib1g-dev libqt5opengl5-dev libqt5svg5-dev libgl1-mesa-dev libfftw3-dev libtiff5-dev libpng-dev unzip
curl git g++ python3 python-is-python3 libeigen3-dev zlib1g-dev libqt6opengl6-dev libqt6svg6-dev libgl1-mesa-dev libfftw3-dev libtiff5-dev libpng-dev unzip

ARG MRTRIX_SHA=5f4c31bc93008520c61d59b94af0db3f17b4ab76
ENV PATH="/opt/mrtrix3-latest/bin:$PATH"
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile_AFNI
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copied from: fMRIPrep Docker Container Image distribution
# Copied and Modified from: fMRIPrep Docker Container Image distribution
#
# MIT License
#
Expand All @@ -21,12 +21,13 @@
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
FROM ubuntu:18.04
FROM ubuntu:22.04
ARG TAG_ANTS

# AFNI latest (neurodocker build)
RUN apt-get update -qq \
&& apt-get install -y -q --no-install-recommends \
ca-certificates \
apt-utils \
ed \
gsl-bin \
Expand Down
18 changes: 10 additions & 8 deletions Dockerfile_ANTs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nvidia/cuda:11.2.2-devel-ubuntu18.04 as base
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04 as base
ARG TAG_ANTS
FROM base as builder

Expand All @@ -11,7 +11,6 @@ RUN apt-get update && \
gnupg \
software-properties-common \
wget \
ninja-build \
git \
g++ \
zlib1g-dev \
Expand All @@ -24,10 +23,12 @@ RUN apt-get update && \

RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \
| apt-key add - \
&& apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ bionic main' \
&& apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ jammy main' \
&& apt-get update \
&& apt-get -y install cmake=3.23.2-0kitware1ubuntu18.04.1 cmake-data=3.23.2-0kitware1ubuntu18.04.1
&& apt-get -y install cmake=3.30.2-0kitware1ubuntu22.04.1 \
cmake-data=3.30.2-0kitware1ubuntu22.04.1

# Version 2.4.3 : last version using ITK 5.3
ARG ANTS_SHA=caa60eb4ad53d561f9ddd72b71a6baf2acac0078
RUN mkdir /tmp/ants \
&& cd /tmp \
Expand All @@ -40,18 +41,19 @@ RUN mkdir /tmp/ants \
&& mkdir -p /opt/ants \
&& git config --global url."https://".insteadOf git:// \
&& cmake \
-GNinja \
-DBUILD_TESTING=OFF \
-G "Unix Makefiles" \
-DBUILD_TESTING:BOOL=OFF \
-DBUILD_EXAMPLES:BOOL=OFF \
-DCMAKE_C_COMPILER=/usr/bin/gcc-9 \
-DCMAKE_CXX_COMPILER=/usr/bin/g++-9 \
-DBUILD_SHARED_LIBS=ON \
-DSuperBuild_ANTS_C_OPTIMIZATION_FLAGS="-mtune=x86-64 -march=x86-64" \
-DSuperBuild_ANTS_CXX_OPTIMIZATION_FLAGS="-mtune=x86-64 -march=x86-64" \
-DCMAKE_INSTALL_PREFIX=/opt/ants \
/tmp/ants/source \
&& cmake --build . --parallel 1 \
&& make -j 1 \
&& cd ANTS-build \
&& cmake --install . \
&& make install \
&& cd /opt/ants/bin \
&& rm \
ANTSUseLandmarkImagesToGetAffineTransform \
Expand Down
59 changes: 19 additions & 40 deletions Dockerfile_DSIStudio
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
FROM nvidia/cuda:11.2.2-devel-ubuntu18.04
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04
ARG TAG_ANTS
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub

RUN apt update && apt full-upgrade -y && \
apt install --no-install-recommends -y software-properties-common && \
add-apt-repository -y ppa:beineri/opt-qt-5.12.8-bionic && \
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
apt install -y --no-install-recommends \
unzip \
Expand All @@ -15,8 +14,8 @@ RUN apt update && apt full-upgrade -y && \
libboost-all-dev \
zlib1g-dev \
ca-certificates \
qt512base \
qt512charts-no-lgpl \
qt6-base-dev \
libqt6charts6-dev \
mesa-common-dev \
libglu1-mesa-dev \
build-essential \
Expand All @@ -31,47 +30,27 @@ RUN apt update && apt full-upgrade -y && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \
| apt-key add - \
&& apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ bionic main' \
&& apt-get update \
&& apt-get -y install cmake=3.23.2-0kitware1ubuntu18.04.1 cmake-data=3.23.2-0kitware1ubuntu18.04.1

| apt-key add - \
&& apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ jammy main' \
&& apt-get update \
&& apt-get -y install cmake=3.30.2-0kitware1ubuntu22.04.1 \
cmake-data=3.30.2-0kitware1ubuntu22.04.1
#Need to use a different shell so the QT ENV script works
SHELL ["/bin/bash", "-c"]
ENV PATH="$PATH:/opt/qt512/bin"

ARG DSI_SHA=03476a67bc96a1d0c90928001b5dd1c490539ee0
ARG TIPL_SHA=ebd2d8b1ee13d6f87e78db62f2f1a1400b353898
ARG DSI_DATE=2025.04.16

ARG TIPL_SHA=1f89c676df1e3577fe524833d2e67063eebb24f3

RUN source /opt/qt512/bin/qt512-env.sh \
&& mkdir /opt/dsi-studio \
&& cd /opt/dsi-studio \
&& curl -sSLO https://github.com/frankyeh/DSI-Studio/archive/${DSI_SHA}.zip \
&& unzip ${DSI_SHA}.zip \
&& mv DSI-Studio-${DSI_SHA} src \
&& rm -rf ${DSI_SHA}.zip \
RUN cd /opt/ \
&& curl -sSLO https://github.com/frankyeh/DSI-Studio/releases/download/${DSI_DATE}/dsi_studio_ubuntu2204_cpu.zip \
&& unzip dsi_studio_ubuntu2204_cpu.zip \
&& rm -rf dsi_studio_ubuntu2204_cpu.zip \
&& curl -sSLO https://github.com/frankyeh/TIPL/archive/${TIPL_SHA}.zip \
&& unzip ${TIPL_SHA}.zip \
&& mv TIPL-${TIPL_SHA} src/TIPL \
&& mv TIPL-${TIPL_SHA} dsi-studio-cpu/TIPL \
&& rm ${TIPL_SHA}.zip \
&& mkdir build && cd build \
&& qmake ../src && make -j 1
&& chmod 755 dsi-studio-cpu/dsi_studio

ARG ATLAS_SHA=bf5afab9b2405f076b1acdf4706c9688525eb713
ARG UNET_SHA=2e839aae744883983974194dcf6aeff154a82197
ENV PATH="$PATH:/opt/dsi-studio-cpu"

RUN cd /opt/dsi-studio \
&& mv build/dsi_studio . \
&& chmod 755 dsi_studio \
&& cp -R src/other/* . \
&& rm -rf src build \
&& curl -sSLO https://github.com/frankyeh/UNet-Studio-Data/archive/${UNET_SHA}.zip \
&& unzip ${UNET_SHA}.zip \
&& rm ${UNET_SHA}.zip \
&& mv UNet-Studio-Data-${UNET_SHA}/network/ . \
&& rm -rf mv UNet-Studio-Data-${UNET_SHA} \
&& curl -sSLO https://github.com/frankyeh/DSI-Studio-atlas/archive/${ATLAS_SHA}.zip \
&& unzip ${ATLAS_SHA}.zip \
&& rm -rf DSI-Studio-atlas-${ATLAS_SHA}/.git \
&& mv DSI-Studio-atlas-${ATLAS_SHA} atlas \
&& rm ${ATLAS_SHA}.zip
2 changes: 1 addition & 1 deletion Dockerfile_FSLconda
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nvidia/cuda:11.2.2-devel-ubuntu18.04
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04
ARG TAG_ANTS

RUN apt-get update && \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile_FreeSurfer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM freesurfer/freesurfer:7.3.1 AS freesurfer
FROM ubuntu:18.04
FROM ubuntu:22.04
ARG TAG_ANTS

COPY --from=freesurfer \
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile_MRtrix3
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM nvidia/cuda:11.2.2-devel-ubuntu18.04
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04
ARG TAG_ANTS

RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl git g++ python libeigen3-dev zlib1g-dev libqt5opengl5-dev libqt5svg5-dev libgl1-mesa-dev libfftw3-dev libtiff5-dev libpng-dev unzip
curl git g++ python3 python-is-python3 libeigen3-dev zlib1g-dev libqt6opengl6-dev libqt6svg6-dev libgl1-mesa-dev libfftw3-dev libtiff5-dev libpng-dev unzip

ARG MRTRIX_SHA=670e7b0625572f8b1f13b2793bde506526985d55
ENV PATH="/opt/mrtrix3-latest/bin:$PATH"
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile_Micromamba
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copied from: fMRIPrep Docker Container Image distribution
# Copied and Modified from: fMRIPrep Docker Container Image distribution
#
# MIT License
#
Expand All @@ -22,7 +22,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

FROM nvidia/cuda:11.2.2-devel-ubuntu18.04
FROM nvidia/cuda:12.2.2-runtime-ubuntu22.04
ARG TAG_ANTS

RUN apt-get update && \
Expand Down Expand Up @@ -55,7 +55,7 @@ COPY qsiprep_env.yml /tmp/env.yml

WORKDIR /tmp
RUN micromamba config set extract_threads 1
RUN micromamba create -vv -y -f /tmp/env.yml
RUN micromamba create -c conda-forge -vvv -y -f /tmp/env.yml
ENV PATH=/opt/conda/envs/qsiprep/bin:$PATH
RUN micromamba clean -y -a

Expand Down
4 changes: 2 additions & 2 deletions Dockerfile_SynB0
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
FROM leonyichencai/synb0-disco:v3.1 AS synb0
FROM ubuntu:18.04 AS base
FROM ubuntu:22.04 AS base
ARG TAG_ANTS

FROM alpine AS builder
RUN mkdir -p /opt/synb0 \
&& cd /opt/synb0 \
&& wget https://raw.githubusercontent.com/MASILab/Synb0-DISCO/master/synb0-license-ccby4.0.txt
&& wget https://raw.githubusercontent.com/MASILab/Synb0-DISCO/68f2ba1cae32e2499db585c3eb1b195db4dc2d96/synb0-license-ccby4.0.txt

FROM base
# Get the SyNb0 models and python executables
Expand Down
21 changes: 6 additions & 15 deletions Dockerfile_TORTOISE
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ARG TAG_ANTS

FROM pennlinc/qsiprep-ants:${TAG_ANTS} as base
FROM base as builder
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub

RUN apt update && apt full-upgrade -y && \
apt install --no-install-recommends -y software-properties-common && \
Expand All @@ -17,26 +17,17 @@ RUN apt update && apt full-upgrade -y && \

RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \
| apt-key add - \
&& apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ bionic main' \
&& apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ jammy main' \
&& apt-get update \
&& apt-get -y install cmake=3.23.2-0kitware1ubuntu18.04.1 cmake-data=3.23.2-0kitware1ubuntu18.04.1
&& apt-get -y install cmake=3.30.2-0kitware1ubuntu22.04.1 \
cmake-data=3.30.2-0kitware1ubuntu22.04.1

RUN apt install -y libboost-all-dev

ARG TORTOISE_SHA=cea83b5bef845b54c079072f385a087768a60ded
RUN \
mkdir /src \
&& cd /src \
&& wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz \
&& tar -xvf boost_1_77_0.tar.gz \
&& cd boost_1_77_0 \
&& rm /usr/bin/g++ \
&& ln -s /usr/bin/g++-9 /usr/bin/g++ \
&& ./bootstrap.sh --with-libraries=iostreams,filesystem,system,regex --prefix=/usr/local/boost176 \
&& ./b2 install


ARG TORTOISE_SHA=5d0c688e85fd12a974d2ecbd8b567913a0b46c4f
RUN \
cd /src \
&& git clone https://github.com/eurotomania/TORTOISEV4.git \
&& cd TORTOISEV4/TORTOISEV4 \
&& git checkout ${TORTOISE_SHA} \
Expand Down
Loading