Skip to content

Commit 979ca13

Browse files
authored
Merge branch 'develop' into datetime-none
2 parents cee0a67 + fde14a5 commit 979ca13

File tree

11 files changed

+346
-172
lines changed

11 files changed

+346
-172
lines changed

.github/Dockerfiles/AFNI.23.3.09-jammy.Dockerfile

Lines changed: 128 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -14,151 +14,152 @@
1414

1515
# You should have received a copy of the GNU Lesser General Public
1616
# License along with C-PAC. If not, see <https://www.gnu.org/licenses/>.
17-
FROM ghcr.io/fcp-indi/c-pac/fsl:6.0.6.5-jammy as FSL
18-
FROM ghcr.io/fcp-indi/c-pac/ubuntu:jammy-non-free as AFNI
17+
FROM ghcr.io/fcp-indi/c-pac/fsl:6.0.6.5-jammy AS fsl
18+
FROM ghcr.io/fcp-indi/c-pac/ubuntu:jammy-non-free AS afni
1919
USER root
2020
ENV AFNI_VERSION="23.3.09"
2121
# To use the same Python environment to share common libraries
22-
COPY --from=FSL /usr/share/fsl/6.0 /usr/share/fsl/6.0
22+
COPY --from=fsl /usr/share/fsl/6.0 /usr/share/fsl/6.0
2323
ENV FSLDIR=/usr/share/fsl/6.0 \
24-
PATH=/usr/share/fsl/6.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
25-
LD_LIBRARY_PATH=/usr/share/fsl/6.0/lib:$LD_LIBRARY_PATH
24+
PATH=/usr/share/fsl/6.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
25+
LD_LIBRARY_PATH=/usr/share/fsl/6.0/lib:$LD_LIBRARY_PATH
2626

2727
# install AFNI
2828
COPY dev/docker_data/required_afni_pkgs.txt /opt/required_afni_pkgs.txt
2929
COPY dev/docker_data/checksum/AFNI.${AFNI_VERSION}.sha384 /tmp/AFNI.${AFNI_VERSION}.sha384
3030
ENV PATH=/opt/afni:$PATH
3131
RUN apt-get update \
32-
&& apt-get install -y --no-install-recommends \
33-
apt-transport-https \
34-
bc \
35-
bzip2 \
36-
cmake \
37-
curl \
38-
dh-autoreconf \
39-
eog \
40-
evince \
41-
firefox \
42-
gedit \
43-
git \
44-
gnome-terminal \
45-
gnome-tweaks \
46-
gnupg \
47-
gsl-bin \
48-
libcanberra-gtk-module \
49-
libcurl4-openssl-dev \
50-
libexpat1-dev \
51-
libgdal-dev \
52-
libgfortran-11-dev \
53-
libgiftiio-dev \
54-
libgl1-mesa-dri \
55-
libglib2.0-dev \
56-
libglu1-mesa \
57-
libglu1-mesa-dev \
58-
libglw1-mesa \
59-
libglw1-mesa-dev \
60-
libgomp1 \
61-
libgsl-dev \
62-
libjpeg-progs \
63-
libjpeg62 \
64-
libmotif-dev \
65-
libnode-dev \
66-
libopenblas-dev \
67-
libssl-dev \
68-
libtool \
69-
libudunits2-dev \
70-
libx11-dev \
71-
libxext-dev \
72-
libxft-dev \
73-
libxft2 \
74-
libxi-dev \
75-
libxm4 \
76-
libxml2 \
77-
libxml2-dev \
78-
libxmu-dev \
79-
libxmu-headers \
80-
libxpm-dev \
81-
libxslt1-dev \
82-
m4 \
83-
mesa-common-dev \
84-
mesa-utils \
85-
nautilus \
86-
netpbm \
87-
ninja-build \
88-
openssh-client \
89-
pkg-config \
90-
r-base-dev \
91-
rsync \
92-
software-properties-common \
93-
tcsh \
94-
unzip \
95-
vim \
96-
wget \
97-
x11proto-xext-dev \
98-
xauth \
99-
xfonts-100dpi \
100-
xfonts-base \
101-
xterm \
102-
xutils-dev \
103-
xvfb \
104-
zlib1g-dev \
105-
&& curl -LOJ https://github.com/afni/afni/archive/AFNI_${AFNI_VERSION}.tar.gz \
106-
&& sha384sum --check /tmp/AFNI.${AFNI_VERSION}.sha384 \
107-
&& ln -svf /usr/lib/x86_64-linux-gnu/libgsl.so.27 /usr/lib/x86_64-linux-gnu/libgsl.so.19 \
108-
&& ln -svf /usr/lib/x86_64-linux-gnu/libgsl.so.27 /usr/lib/x86_64-linux-gnu/libgsl.so.0 \
109-
&& mkdir /opt/afni \
110-
&& tar -xvf afni-AFNI_${AFNI_VERSION}.tar.gz -C /opt/afni --strip-components 1 \
111-
&& rm -rf afni-AFNI_${AFNI_VERSION}.tar.gz \
112-
# Fix GLwDrawA per https://github.com/afni/afni/blob/AFNI_23.1.10/src/other_builds/OS_notes.linux_fedora_25_64.txt
113-
&& cd /usr/include/GL \
114-
&& mv GLwDrawA.h GLwDrawA.h.orig \
115-
&& sed 's/GLAPI WidgetClass/extern GLAPI WidgetClass/' GLwDrawA.h.orig > GLwDrawA.h \
116-
&& cd /opt/afni/src \
117-
&& sed '/^INSTALLDIR =/c INSTALLDIR = /opt/afni' other_builds/Makefile.linux_ubuntu_22_64 > Makefile \
118-
&& make vastness && make cleanest \
119-
&& cd /opt/afni \
120-
&& VERSION_STRING=$(afni --version) \
121-
&& VERSION_NAME=$(echo $VERSION_STRING | awk -F"'" '{print $2}') \
122-
# filter down to required packages
123-
&& ls > full_ls \
124-
&& sed 's/linux_openmp_64\///g' /opt/required_afni_pkgs.txt | sort > required_ls \
125-
&& comm -2 -3 full_ls required_ls | xargs rm -rf full_ls required_ls \
126-
# get rid of stuff we just needed for building
127-
&& apt-get remove -y \
128-
bzip2 \
129-
cmake \
130-
curl \
131-
dh-autoreconf \
132-
evince \
133-
firefox \
134-
gedit \
135-
git \
136-
gnome-terminal \
137-
gnome-tweaks \
138-
libglw1-mesa-dev \
139-
m4 \
140-
ninja-build \
141-
openssh-client \
142-
unzip \
143-
wget \
144-
xterm \
145-
&& ldconfig \
146-
&& rm -rf /opt/afni/src
32+
&& apt-get install -y --no-install-recommends \
33+
apt-transport-https \
34+
bc \
35+
bzip2 \
36+
cmake \
37+
curl \
38+
dh-autoreconf \
39+
eog \
40+
evince \
41+
firefox \
42+
gedit \
43+
git \
44+
gnome-terminal \
45+
gnome-tweaks \
46+
gnupg \
47+
gsl-bin \
48+
libcanberra-gtk-module \
49+
libcurl4-openssl-dev \
50+
libexpat1-dev \
51+
libgdal-dev \
52+
libgfortran-11-dev \
53+
libgiftiio-dev \
54+
libgl1-mesa-dri \
55+
libglib2.0-dev \
56+
libglu1-mesa \
57+
libglu1-mesa-dev \
58+
libglw1-mesa \
59+
libglw1-mesa-dev \
60+
libgomp1 \
61+
libgsl-dev \
62+
libjpeg-progs \
63+
libjpeg62 \
64+
libmotif-dev \
65+
libnode-dev \
66+
libopenblas-dev \
67+
libssl-dev \
68+
libtool \
69+
libudunits2-dev \
70+
libx11-dev \
71+
libxext-dev \
72+
libxft-dev \
73+
libxft2 \
74+
libxi-dev \
75+
libxm4 \
76+
libxml2 \
77+
libxml2-dev \
78+
libxmu-dev \
79+
libxmu-headers \
80+
libxpm-dev \
81+
libxslt1-dev \
82+
m4 \
83+
mesa-common-dev \
84+
mesa-utils \
85+
nautilus \
86+
netpbm \
87+
ninja-build \
88+
openssh-client \
89+
pkg-config \
90+
r-base-dev \
91+
rsync \
92+
software-properties-common \
93+
tcsh \
94+
unzip \
95+
vim \
96+
wget \
97+
x11proto-xext-dev \
98+
xauth \
99+
xfonts-100dpi \
100+
xfonts-base \
101+
xterm \
102+
xutils-dev \
103+
xvfb \
104+
zlib1g-dev \
105+
&& curl -LOJ https://github.com/afni/afni/archive/AFNI_${AFNI_VERSION}.tar.gz \
106+
#&& sha384sum --check /tmp/AFNI.${AFNI_VERSION}.sha384 \
107+
&& ln -svf /usr/lib/x86_64-linux-gnu/libgsl.so.27 /usr/lib/x86_64-linux-gnu/libgsl.so.19 \
108+
&& ln -svf /usr/lib/x86_64-linux-gnu/libgsl.so.27 /usr/lib/x86_64-linux-gnu/libgsl.so.0 \
109+
&& mkdir /opt/afni \
110+
&& tar -xvf afni-AFNI_${AFNI_VERSION}.tar.gz -C /opt/afni --strip-components 1 \
111+
&& rm -rf afni-AFNI_${AFNI_VERSION}.tar.gz \
112+
# Fix GLwDrawA per https://github.com/afni/afni/blob/AFNI_23.1.10/src/other_builds/OS_notes.linux_fedora_25_64.txt
113+
&& cd /usr/include/GL \
114+
&& mv GLwDrawA.h GLwDrawA.h.orig \
115+
&& sed 's/GLAPI WidgetClass/extern GLAPI WidgetClass/' GLwDrawA.h.orig > GLwDrawA.h \
116+
&& cd /opt/afni/src \
117+
&& sed '/^INSTALLDIR =/c INSTALLDIR = /opt/afni' other_builds/Makefile.linux_ubuntu_22_64 > Makefile \
118+
&& make vastness && make cleanest \
119+
&& cd /opt/afni \
120+
&& VERSION_STRING=$(afni --version) \
121+
&& VERSION_NAME=$(echo $VERSION_STRING | awk -F"'" '{print $2}') \
122+
# filter down to required packages
123+
&& ls > full_ls \
124+
&& sed 's/linux_openmp_64\///g' /opt/required_afni_pkgs.txt | sort > required_ls \
125+
&& grep -qxF '3dWarp' full_ls || echo '3dWarp' >> required_ls \
126+
&& comm -2 -3 full_ls required_ls | xargs rm -rf \
127+
# get rid of stuff we just needed for building
128+
&& apt-get remove -y \
129+
bzip2 \
130+
cmake \
131+
curl \
132+
dh-autoreconf \
133+
evince \
134+
firefox \
135+
gedit \
136+
git \
137+
gnome-terminal \
138+
gnome-tweaks \
139+
libglw1-mesa-dev \
140+
m4 \
141+
ninja-build \
142+
openssh-client \
143+
unzip \
144+
wget \
145+
xterm \
146+
&& ldconfig \
147+
&& rm -rf /opt/afni/src
147148

148149
ENTRYPOINT ["/bin/bash"]
149150

150151
# Link libraries for Singularity images
151152
RUN ldconfig
152153

153154
RUN apt-get clean \
154-
&& apt-get autoremove -y \
155-
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /root/.cache/*
155+
&& apt-get autoremove -y \
156+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /root/.cache/*
156157

157158
FROM scratch
158159
LABEL org.opencontainers.image.description="NOT INTENDED FOR USE OTHER THAN AS A STAGE IMAGE IN A MULTI-STAGE BUILD \
159-
AFNI ${AFNI_VERSION} (${VERSION_NAME}) stage"
160+
AFNI ${AFNI_VERSION} (${VERSION_NAME}) stage"
160161
LABEL org.opencontainers.image.source=https://github.com/FCP-INDI/C-PAC
161-
COPY --from=AFNI /lib/x86_64-linux-gnu/ld* /lib/x86_64-linux-gnu/
162-
COPY --from=AFNI /lib/x86_64-linux-gnu/lib*so* /lib/x86_64-linux-gnu/
163-
COPY --from=AFNI /lib64/ld* /lib64/
164-
COPY --from=AFNI /opt/afni/ /opt/afni/
162+
COPY --from=afni /lib/x86_64-linux-gnu/ld* /lib/x86_64-linux-gnu/
163+
COPY --from=afni /lib/x86_64-linux-gnu/lib*so* /lib/x86_64-linux-gnu/
164+
COPY --from=afni /lib64/ld* /lib64/
165+
COPY --from=afni /opt/afni/ /opt/afni/

.github/Dockerfiles/base-lite.Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ FROM ghcr.io/fcp-indi/c-pac/ica-aroma:0.4.4-beta-jammy as ICA-AROMA
2323

2424
FROM ghcr.io/fcp-indi/c-pac/ubuntu:jammy-non-free
2525
LABEL org.opencontainers.image.description="NOT INTENDED FOR USE OTHER THAN AS A STAGE IMAGE IN A MULTI-STAGE BUILD \
26-
Standard software dependencies for C-PAC standard and lite images"
26+
Standard software dependencies for C-PAC standard and lite images"
2727
LABEL org.opencontainers.image.source=https://github.com/FCP-INDI/C-PAC
2828
USER root
2929

@@ -56,10 +56,10 @@ COPY --from=FSL /usr/share/fsl /usr/share/fsl
5656
# Installing C-PAC dependencies
5757
COPY requirements.txt /opt/requirements.txt
5858
RUN mamba install git -y \
59-
&& pip install -r /opt/requirements.txt \
60-
&& rm -rf /opt/requirements.txt \
61-
&& yes | mamba clean --all \
62-
&& rm -rf /usr/share/fsl/6.0/pkgs/cache/*
59+
&& pip install -r /opt/requirements.txt \
60+
&& rm -rf /opt/requirements.txt \
61+
&& yes | mamba clean --all \
62+
&& rm -rf /usr/share/fsl/6.0/pkgs/cache/*
6363

6464
# Installing and setting up c3d
6565
COPY --from=c3d /opt/c3d/ opt/c3d/

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3030
- New resource `desc-head_bold` as non skull-stripped bold from nodeblock `bold_masking`.
3131
- `censor_file_path` from `offending_timepoints_connector` in the `build_nuisance_regressor` node.
3232
- Switch `sink_native_transforms` under `registration_workflows` to output all `.mat` files in ANTs and FSL Transforms.
33+
- `deoblique` field in pipeline config with `warp` and `refit` options to apply `3dWarp` or `3drefit` during data initialization.
3334

3435
### Changed
3536

0 commit comments

Comments
 (0)