Skip to content

Commit 46ba744

Browse files
authored
Merge pull request #468 from effigies/chore/environment
chore(deps): Update pinned environment, use conda-forge connectome-workbench
2 parents ba657db + 6bdc5bb commit 46ba744

File tree

3 files changed

+103
-81
lines changed

3 files changed

+103
-81
lines changed

Dockerfile

-14
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,6 @@ COPY docker/files/freesurfer7.3.2-exclude.txt /usr/local/etc/freesurfer7.3.2-exc
5656
RUN curl -sSL https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/7.3.2/freesurfer-linux-ubuntu22_amd64-7.3.2.tar.gz \
5757
| tar zxv --no-same-owner -C /opt --exclude-from=/usr/local/etc/freesurfer7.3.2-exclude.txt
5858

59-
# Connectome Workbench 1.5.0
60-
FROM downloader as workbench
61-
RUN mkdir /opt/workbench && \
62-
curl -sSLO https://www.humanconnectome.org/storage/app/media/workbench/workbench-linux64-v1.5.0.zip && \
63-
unzip workbench-linux64-v1.5.0.zip -d /opt && \
64-
rm workbench-linux64-v1.5.0.zip && \
65-
rm -rf /opt/workbench/libs_linux64_software_opengl /opt/workbench/plugins_linux64 && \
66-
strip --remove-section=.note.ABI-tag /opt/workbench/libs_linux64/libQt5Core.so.5
67-
6859
# Micromamba
6960
FROM downloader as micromamba
7061

@@ -122,7 +113,6 @@ RUN apt-get update && \
122113

123114
# Install files from stages
124115
COPY --from=freesurfer /opt/freesurfer /opt/freesurfer
125-
COPY --from=workbench /opt/workbench /opt/workbench
126116

127117
# Simulate SetUpFreeSurfer.sh
128118
ENV OS="Linux" \
@@ -141,10 +131,6 @@ ENV PERL5LIB="$MINC_LIB_DIR/perl5/5.8.5" \
141131
MNI_PERL5LIB="$MINC_LIB_DIR/perl5/5.8.5" \
142132
PATH="$FREESURFER_HOME/bin:$FREESURFER_HOME/tktools:$MINC_BIN_DIR:$PATH"
143133

144-
# Workbench config
145-
ENV PATH="/opt/workbench/bin_linux64:$PATH" \
146-
LD_LIBRARY_PATH="/opt/workbench/lib_linux64:$LD_LIBRARY_PATH"
147-
148134
# Create a shared $HOME directory
149135
RUN useradd -m -s /bin/bash -G users smriprep
150136
WORKDIR /home/smriprep

env.yml

+19-13
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,36 @@ name: smriprep
22
channels:
33
- https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/
44
- conda-forge
5-
# Update this ~yearly; last updated March 2024
5+
# Update this ~yearly; last updated Mar 2025
66
dependencies:
7-
- python=3.11
7+
- python=3.12
88
# Needed for svgo and bids-validator; consider moving to deno
99
- nodejs=20
1010
# Intel Math Kernel Library for numpy
11-
- mkl=2023.2
12-
- mkl-service=2.4
11+
- mkl=2024.2.2
12+
- mkl-service=2.4.2
1313
# Base scientific python stack; required by FSL, so pinned here
1414
- numpy=1.26
15-
- scipy=1.13
16-
- matplotlib=3.8
15+
- scipy=1.15
16+
- matplotlib=3.9
1717
- pandas=2.2
18-
- h5py=3.11
18+
- h5py=3.13
1919
# Dependencies compiled against numpy, best to stick with conda
20-
- scikit-image=0.23
21-
- scikit-learn=1.4
20+
- scikit-image=0.25
21+
- scikit-learn=1.6
2222
# Utilities
23-
- graphviz=9.0
24-
- pandoc=3.1
23+
- graphviz=11.0
24+
- pandoc=3.6
2525
# Workflow dependencies: ANTs
2626
- ants=2.5
27-
# Workflow dependencies: FSL (versions pinned in 6.0.7.7)
28-
- fsl-bet2=2111.4
27+
# 5.4.1 and 5.4.2 cause segfaults with ants
28+
# Try to remove this ASAP
29+
# https://github.com/conda-forge/ants-feedstock/issues/19
30+
- libitk=5.4.0
31+
# Workflow dependencies: Connectome Workbench
32+
- connectome-workbench-cli=2.0
33+
# Workflow dependencies: FSL (versions pinned in 6.0.7.13)
34+
- fsl-bet2=2111.8
2935
- fsl-flirt=2111.2
3036
- fsl-fast4=2111.3
3137
- fsl-miscmaths=2203.2

requirements.txt

+84-54
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,73 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --strip-extras pyproject.toml -o requirements.txt -p 3.11 -c -
3-
astor==0.8.1
4-
# via formulaic
5-
attrs==23.2.0
6-
# via niworkflows
7-
bids-validator==1.14.6
2+
# uv pip compile --strip-extras pyproject.toml -o requirements.txt -p 3.12 -c-
3+
acres==0.3.0
4+
# via
5+
# smriprep (pyproject.toml)
6+
# nipype
7+
# niworkflows
8+
attrs==25.1.0
9+
# via
10+
# jsonschema
11+
# niworkflows
12+
# referencing
13+
bids-validator==1.14.7.post0
814
# via pybids
9-
certifi==2024.7.4
15+
bidsschematools==1.0.3
16+
# via bids-validator
17+
certifi==2025.1.31
1018
# via requests
11-
charset-normalizer==3.3.2
19+
charset-normalizer==3.4.1
1220
# via requests
1321
ci-info==0.3.0
1422
# via etelemetry
15-
click==8.1.7
23+
click==8.1.8
1624
# via
25+
# bidsschematools
1726
# nipype
1827
# pybids
19-
contourpy==1.2.1
28+
contourpy==1.3.1
2029
# via matplotlib
2130
cycler==0.12.1
2231
# via matplotlib
2332
docopt==0.6.2
2433
# via num2words
2534
etelemetry==0.3.1
2635
# via nipype
27-
filelock==3.15.4
36+
filelock==3.17.0
2837
# via nipype
29-
fonttools==4.53.1
38+
fonttools==4.56.0
3039
# via matplotlib
31-
formulaic==0.5.2
40+
formulaic==1.1.1
41+
# via pybids
42+
frozendict==2.4.6
3243
# via pybids
33-
greenlet==3.0.3
44+
fsspec==2025.2.0
45+
# via universal-pathlib
46+
greenlet==3.1.1
3447
# via sqlalchemy
35-
h5py==3.11.0
48+
h5py==3.13.0
3649
# via nitransforms
37-
idna==3.7
50+
idna==3.10
3851
# via requests
39-
imageio==2.34.2
52+
imageio==2.37.0
4053
# via scikit-image
41-
indexed-gzip==1.8.7
54+
indexed-gzip==1.9.4
4255
# via smriprep (pyproject.toml)
4356
interface-meta==1.3.0
4457
# via formulaic
4558
isodate==0.6.1
4659
# via rdflib
47-
jinja2==3.1.4
60+
jinja2==3.1.6
4861
# via niworkflows
4962
joblib==1.4.2
5063
# via
5164
# nilearn
5265
# scikit-learn
53-
kiwisolver==1.4.5
66+
jsonschema==4.23.0
67+
# via bidsschematools
68+
jsonschema-specifications==2024.10.1
69+
# via jsonschema
70+
kiwisolver==1.4.8
5471
# via matplotlib
5572
lazy-loader==0.4
5673
# via scikit-image
@@ -61,42 +78,42 @@ looseversion==1.3.0
6178
# smriprep (pyproject.toml)
6279
# nipype
6380
# niworkflows
64-
lxml==5.2.2
81+
lxml==5.3.1
6582
# via
6683
# nilearn
6784
# prov
6885
# svgutils
69-
markupsafe==2.1.5
86+
markupsafe==3.0.2
7087
# via jinja2
71-
matplotlib==3.9.1
88+
matplotlib==3.9.4
7289
# via
7390
# smriprep (pyproject.toml)
7491
# niworkflows
7592
# seaborn
76-
networkx==3.3
93+
networkx==3.4.2
7794
# via
7895
# nipype
7996
# prov
8097
# scikit-image
81-
nibabel==5.2.1
98+
nibabel==5.3.2
8299
# via
83100
# smriprep (pyproject.toml)
84101
# nilearn
85102
# nipype
86103
# nitransforms
87104
# niworkflows
88105
# pybids
89-
nilearn==0.10.4
106+
nilearn==0.11.1
90107
# via niworkflows
91-
nipype==1.8.6
108+
nipype==1.9.2
92109
# via
93110
# smriprep (pyproject.toml)
94111
# niworkflows
95-
nitransforms==23.0.1
112+
nitransforms==24.1.1
96113
# via niworkflows
97-
niworkflows==1.10.2
114+
niworkflows==1.12.2
98115
# via smriprep (pyproject.toml)
99-
num2words==0.5.13
116+
num2words==0.5.14
100117
# via pybids
101118
numpy==1.26.4
102119
# via
@@ -119,7 +136,7 @@ numpy==1.26.4
119136
# seaborn
120137
# tifffile
121138
# transforms3d
122-
packaging==24.1
139+
packaging==24.2
123140
# via
124141
# smriprep (pyproject.toml)
125142
# etelemetry
@@ -130,28 +147,30 @@ packaging==24.1
130147
# nipype
131148
# niworkflows
132149
# scikit-image
133-
pandas==2.2.2
150+
pandas==2.2.3
134151
# via
135152
# formulaic
136153
# nilearn
137154
# niworkflows
138155
# pybids
139156
# seaborn
140-
pillow==10.4.0
157+
pillow==11.1.0
141158
# via
142159
# imageio
143160
# matplotlib
144161
# scikit-image
145162
prov==2.0.1
146163
# via nipype
147-
pybids==0.16.5
164+
puremagic==1.28
165+
# via nipype
166+
pybids==0.19.0
148167
# via
149168
# smriprep (pyproject.toml)
150169
# niworkflows
151170
# templateflow
152-
pydot==3.0.1
171+
pydot==3.0.4
153172
# via nipype
154-
pyparsing==3.1.2
173+
pyparsing==3.2.1
155174
# via
156175
# matplotlib
157176
# pydot
@@ -162,26 +181,35 @@ python-dateutil==2.9.0.post0
162181
# nipype
163182
# pandas
164183
# prov
165-
pytz==2024.1
184+
pytz==2025.1
166185
# via pandas
167-
pyyaml==6.0.1
186+
pyyaml==6.0.2
168187
# via
169188
# smriprep (pyproject.toml)
189+
# bidsschematools
170190
# niworkflows
171191
rdflib==6.3.2
172192
# via
173193
# nipype
174194
# prov
195+
referencing==0.36.2
196+
# via
197+
# jsonschema
198+
# jsonschema-specifications
175199
requests==2.32.3
176200
# via
177201
# etelemetry
178202
# nilearn
179203
# templateflow
180-
scikit-image==0.23.2
204+
rpds-py==0.23.1
205+
# via
206+
# jsonschema
207+
# referencing
208+
scikit-image==0.25.2
181209
# via niworkflows
182-
scikit-learn==1.4.2
210+
scikit-learn==1.6.1
183211
# via nilearn
184-
scipy==1.13.1
212+
scipy==1.15.2
185213
# via
186214
# formulaic
187215
# nilearn
@@ -193,39 +221,41 @@ scipy==1.13.1
193221
# scikit-learn
194222
seaborn==0.13.2
195223
# via niworkflows
196-
simplejson==3.19.2
224+
simplejson==3.20.1
197225
# via nipype
198-
six==1.16.0
226+
six==1.17.0
199227
# via
200228
# isodate
201229
# python-dateutil
202-
sqlalchemy==2.0.31
230+
sqlalchemy==2.0.38
203231
# via pybids
204232
svgutils==0.3.4
205233
# via niworkflows
206-
templateflow==24.2.0
234+
templateflow==24.2.2
207235
# via
208236
# smriprep (pyproject.toml)
209237
# niworkflows
210238
threadpoolctl==3.5.0
211239
# via scikit-learn
212-
tifffile==2024.7.2
240+
tifffile==2025.2.18
213241
# via scikit-image
214-
tqdm==4.66.4
242+
tqdm==4.67.1
215243
# via templateflow
216-
traits==6.3.2
217-
# via
218-
# nipype
219-
# niworkflows
244+
traits==7.0.2
245+
# via nipype
220246
transforms3d==0.4.2
221247
# via niworkflows
222248
typing-extensions==4.12.2
223249
# via
224250
# formulaic
251+
# nibabel
252+
# referencing
225253
# sqlalchemy
226-
tzdata==2024.1
254+
tzdata==2025.1
227255
# via pandas
228-
urllib3==2.2.2
256+
universal-pathlib==0.2.6
257+
# via pybids
258+
urllib3==2.3.0
229259
# via requests
230-
wrapt==1.16.0
260+
wrapt==1.17.2
231261
# via formulaic

0 commit comments

Comments
 (0)