Skip to content

Commit c52c7f0

Browse files
committed
Fix path and acq and rec search
1 parent 6d40956 commit c52c7f0

File tree

4 files changed

+76
-62
lines changed

4 files changed

+76
-62
lines changed

Dockerfile

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Generated by Neurodocker version 0.4.2-3-gf7055a1
2-
# Timestamp: 2020-06-26 19:59:46 UTC
2+
# Timestamp: 2020-06-29 16:04:34 UTC
33
#
44
# Thank you for using Neurodocker. If you discover any issues
55
# or ways to improve this software, please submit an issue or
@@ -131,8 +131,6 @@ ENV FSLDIR="/usr/share/fsl/5.0" \
131131
FSLTCLSH="/usr/bin/tclsh" \
132132
FSLWISH="/usr/bin/wish"
133133

134-
RUN bash -c 'PATH=/usr/lib/fsl/5.0:$PATH'
135-
136134
ENV OS="Linux" \
137135
FS_OVERRIDE="0" \
138136
FIX_VERTEX_AREA="" \
@@ -148,7 +146,7 @@ ENV OS="Linux" \
148146
FMRI_ANALYSIS_DIR="/opt/freesurfer/fsfast" \
149147
PERL5LIB="/opt/freesurfer/mni/share/perl5" \
150148
MNI_PERL5LIB="/opt/freesurfer/mni/share/perl5/" \
151-
PATH="/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
149+
PATH="/opt/miniconda-latest/bin:/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/lib/fsl/5.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
152150
PYTHONPATH=""
153151

154152
RUN mkdir root/matlab && touch root/matlab/startup.m
@@ -239,10 +237,6 @@ RUN echo '{ \
239237
\n } \
240238
\n ], \
241239
\n [ \
242-
\n "run_bash", \
243-
\n "PATH=/usr/lib/fsl/5.0:$PATH" \
244-
\n ], \
245-
\n [ \
246240
\n "env", \
247241
\n { \
248242
\n "OS": "Linux", \
@@ -260,7 +254,7 @@ RUN echo '{ \
260254
\n "FMRI_ANALYSIS_DIR": "/opt/freesurfer/fsfast", \
261255
\n "PERL5LIB": "/opt/freesurfer/mni/share/perl5", \
262256
\n "MNI_PERL5LIB": "/opt/freesurfer/mni/share/perl5/", \
263-
\n "PATH": "/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", \
257+
\n "PATH": "/opt/miniconda-latest/bin:/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/lib/fsl/5.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", \
264258
\n "PYTHONPATH": "" \
265259
\n } \
266260
\n ], \

Singularity

Lines changed: 43 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Generated by Neurodocker version 0.4.2-3-gf7055a1
2-
# Timestamp: 2020-06-26 19:59:47 UTC
2+
# Timestamp: 2020-06-29 16:04:35 UTC
33
#
44
# Thank you for using Neurodocker. If you discover any issues
55
# or ways to improve this software, please submit an issue or
@@ -43,11 +43,6 @@ apt-get install -y -q --no-install-recommends \
4343
perl-modules \
4444
wget \
4545
curl \
46-
python3 \
47-
python3-pip \
48-
python3-pandas \
49-
python-pip \
50-
python3-setuptools \
5146
libsm-dev \
5247
libx11-dev \
5348
libxt-dev \
@@ -85,7 +80,30 @@ curl -fsSL --retry 5 ftp://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/6.0.1/
8580
--exclude='freesurfer/trctrain'
8681
sed -i '$isource "/opt/freesurfer/SetUpFreeSurfer.sh"' "$ND_ENTRYPOINT"
8782

88-
bash -c 'pip3 install nibabel pandas==0.21.0'
83+
export PATH="/opt/miniconda-latest/bin:$PATH"
84+
echo "Downloading Miniconda installer ..."
85+
conda_installer="/tmp/miniconda.sh"
86+
curl -fsSL --retry 5 -o "$conda_installer" https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
87+
bash "$conda_installer" -b -p /opt/miniconda-latest
88+
rm -f "$conda_installer"
89+
conda update -yq -nbase conda
90+
conda config --system --prepend channels conda-forge
91+
conda config --system --set auto_update_conda false
92+
conda config --system --set show_channel_urls true
93+
sync && conda clean -tipsy && sync
94+
conda install -y -q --name base \
95+
'python=3' \
96+
'pip' \
97+
'pandas' \
98+
'setuptools' \
99+
'pandas=0.21.0'
100+
sync && conda clean -tipsy && sync
101+
bash -c "source activate base
102+
pip install --no-cache-dir \
103+
'nibabel'"
104+
rm -rf ~/.cache/pip/*
105+
sync
106+
89107

90108
bash -c 'curl -sL https://deb.nodesource.com/setup_6.x | bash -'
91109

@@ -97,8 +115,6 @@ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
97115

98116
bash -c 'npm install -g bids-validator@0.19.8'
99117

100-
bash -c 'PATH=/usr/lib/fsl/5.0:$PATH'
101-
102118
mkdir root/matlab && touch root/matlab/startup.m
103119

104120
mkdir /scratch
@@ -131,11 +147,6 @@ echo '{
131147
\n "perl-modules",
132148
\n "wget",
133149
\n "curl",
134-
\n "python3",
135-
\n "python3-pip",
136-
\n "python3-pandas",
137-
\n "python-pip",
138-
\n "python3-setuptools",
139150
\n "libsm-dev",
140151
\n "libx11-dev",
141152
\n "libxt-dev",
@@ -151,8 +162,20 @@ echo '{
151162
\n }
152163
\n ],
153164
\n [
154-
\n "run_bash",
155-
\n "pip3 install nibabel pandas==0.21.0"
165+
\n "miniconda",
166+
\n {
167+
\n "use_env": "base",
168+
\n "conda_install": [
169+
\n "python=3",
170+
\n "pip",
171+
\n "pandas",
172+
\n "setuptools",
173+
\n "pandas=0.21.0"
174+
\n ],
175+
\n "pip_install": [
176+
\n "nibabel"
177+
\n ]
178+
\n }
156179
\n ],
157180
\n [
158181
\n "run_bash",
@@ -181,10 +204,6 @@ echo '{
181204
\n }
182205
\n ],
183206
\n [
184-
\n "run_bash",
185-
\n "PATH=/usr/lib/fsl/5.0:$PATH"
186-
\n ],
187-
\n [
188207
\n "env",
189208
\n {
190209
\n "OS": "Linux",
@@ -202,7 +221,7 @@ echo '{
202221
\n "FMRI_ANALYSIS_DIR": "/opt/freesurfer/fsfast",
203222
\n "PERL5LIB": "/opt/freesurfer/mni/share/perl5",
204223
\n "MNI_PERL5LIB": "/opt/freesurfer/mni/share/perl5/",
205-
\n "PATH": "/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
224+
\n "PATH": "/opt/miniconda-latest/bin:/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/lib/fsl/5.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
206225
\n "PYTHONPATH": ""
207226
\n }
208227
\n ],
@@ -249,6 +268,8 @@ export LC_ALL="en_US.UTF-8"
249268
export ND_ENTRYPOINT="/neurodocker/startup.sh"
250269
export FREESURFER_HOME="/opt/freesurfer"
251270
export PATH="/opt/freesurfer/bin:$PATH"
271+
export CONDA_DIR="/opt/miniconda-latest"
272+
export PATH="/opt/miniconda-latest/bin:$PATH"
252273
export FSLDIR="/usr/share/fsl/5.0"
253274
export FSLOUTPUTTYPE="NIFTI_GZ"
254275
export FSLMULTIFILEQUIT="TRUE"
@@ -271,7 +292,7 @@ export MNI_DATAPATH="/opt/freesurfer/mni/data"
271292
export FMRI_ANALYSIS_DIR="/opt/freesurfer/fsfast"
272293
export PERL5LIB="/opt/freesurfer/mni/share/perl5"
273294
export MNI_PERL5LIB="/opt/freesurfer/mni/share/perl5/"
274-
export PATH="/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
295+
export PATH="/opt/miniconda-latest/bin:/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/lib/fsl/5.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
275296
export PYTHONPATH=""
276297

277298
%files

generate_freesurfer_images.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,13 @@ docker run --rm ${image} generate docker \
5555
--env FSLDIR=/usr/share/fsl/5.0 FSLOUTPUTTYPE=NIFTI_GZ \
5656
FSLMULTIFILEQUIT=TRUE POSSUMDIR=/usr/share/fsl/5.0 LD_LIBRARY_PATH=/usr/lib/fsl/5.0:$LD_LIBRARY_PATH \
5757
FSLTCLSH=/usr/bin/tclsh FSLWISH=/usr/bin/wish FSLOUTPUTTYPE=NIFTI_GZ \
58-
--run-bash 'PATH=/usr/lib/fsl/5.0:$PATH' \
5958
--env OS=Linux FS_OVERRIDE=0 FIX_VERTEX_AREA= SUBJECTS_DIR=/opt/freesurfer/subjects \
6059
FSF_OUTPUT_FORMAT=nii.gz MNI_DIR=/opt/freesurfer/mni LOCAL_DIR=/opt/freesurfer/local \
6160
FREESURFER_HOME=/opt/freesurfer FSFAST_HOME=/opt/freesurfer/fsfast MINC_BIN_DIR=/opt/freesurfer/mni/bin \
6261
MINC_LIB_DIR=/opt/freesurfer/mni/lib MNI_DATAPATH=/opt/freesurfer/mni/data \
6362
FMRI_ANALYSIS_DIR=/opt/freesurfer/fsfast PERL5LIB=/opt/freesurfer/mni/share/perl5 \
6463
MNI_PERL5LIB=/opt/freesurfer/mni/share/perl5/ \
65-
PATH=/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
64+
PATH=/opt/miniconda-latest/bin:/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/lib/fsl/5.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
6665
PYTHONPATH="" \
6766
--run 'mkdir root/matlab && touch root/matlab/startup.m' \
6867
--run 'mkdir /scratch' \
@@ -88,14 +87,13 @@ docker run --rm ${image} generate singularity \
8887
--env FSLDIR=/usr/share/fsl/5.0 FSLOUTPUTTYPE=NIFTI_GZ \
8988
FSLMULTIFILEQUIT=TRUE POSSUMDIR=/usr/share/fsl/5.0 LD_LIBRARY_PATH=/usr/lib/fsl/5.0:$LD_LIBRARY_PATH \
9089
FSLTCLSH=/usr/bin/tclsh FSLWISH=/usr/bin/wish FSLOUTPUTTYPE=NIFTI_GZ \
91-
--run-bash 'PATH=/usr/lib/fsl/5.0:$PATH' \
9290
--env OS=Linux FS_OVERRIDE=0 FIX_VERTEX_AREA= SUBJECTS_DIR=/opt/freesurfer/subjects \
9391
FSF_OUTPUT_FORMAT=nii.gz MNI_DIR=/opt/freesurfer/mni LOCAL_DIR=/opt/freesurfer/local \
9492
FREESURFER_HOME=/opt/freesurfer FSFAST_HOME=/opt/freesurfer/fsfast MINC_BIN_DIR=/opt/freesurfer/mni/bin \
9593
MINC_LIB_DIR=/opt/freesurfer/mni/lib MNI_DATAPATH=/opt/freesurfer/mni/data \
9694
FMRI_ANALYSIS_DIR=/opt/freesurfer/fsfast PERL5LIB=/opt/freesurfer/mni/share/perl5 \
9795
MNI_PERL5LIB=/opt/freesurfer/mni/share/perl5/ \
98-
PATH=/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
96+
PATH=/opt/miniconda-latest/bin:/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:/usr/lib/fsl/5.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
9997
PYTHONPATH="" \
10098
--run 'mkdir root/matlab && touch root/matlab/startup.m' \
10199
--run 'mkdir /scratch' \

run.py

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,25 @@ def run(command, env={}, ignore_errors=False):
127127

128128
subject_dirs = glob(os.path.join(args.bids_dir, "sub-*"))
129129

130-
if args.acquisition_label:
131-
acq_tpl = "*acq-%s*" % args.acquisition_label
130+
#Got to combine acq_tpl and rec_tpl
131+
if args.acquisition_label and not args.reconstruction_label:
132+
ar_tpl = "*acq-%s*" % args.acquisition_label
133+
elif args.reconstruction_label and not args.acquisition_label:
134+
ar_tpl = "*rec-%s*" % args.reconstruction_label
135+
elif args.reconstruction_label and args.acquisition_label:
136+
ar_tpl = "*acq-%s*_rec-%s*" % (args.acquisition_label, args.reconstruction_label)
132137
else:
133-
acq_tpl = "*"
134-
135-
if args.reconstruction_label:
136-
rec_tpl = "*rec-%s*" % args.reconstruction_label
138+
ar_tpl = "*"
139+
140+
#Got to combine acq_tpl and rec_tpl
141+
if args.refine_pial_acquisition_label and not args.refine_pial_reconstruction_label:
142+
ar_t2 = "*acq-%s*" % args.refine_pial_acquisition_label
143+
elif args.refine_pial_reconstruction_label and not args.refine_pial_acquisition_label:
144+
ar_t2 = "*rec-%s*" % args.refine_pial_reconstruction_label
145+
elif args.refine_pial_reconstruction_label and args.refine_pial_acquisition_label:
146+
ar_t2 = "*acq-%s*_rec-%s*" % (args.refine_pial_acquisition_label, args.refine_pial_reconstruction_label)
137147
else:
138-
rec_tpl = "*"
148+
ar_t2 = "*"
139149

140150
# if there are session folders, check if study is truly longitudinal by
141151
# searching for the first subject with more than one valid sessions
@@ -150,7 +160,7 @@ def run(command, env={}, ignore_errors=False):
150160
if glob(os.path.join(args.bids_dir, "sub-%s" % subject_label,
151161
"ses-%s" % session_label,
152162
"anat",
153-
"%s_T1w.nii*" % acq_tpl)):
163+
"%s_T1w.nii*" % ar_tpl)):
154164
n_valid_sessions += 1
155165
if n_valid_sessions > 1:
156166
multi_session_study = True
@@ -161,15 +171,6 @@ def run(command, env={}, ignore_errors=False):
161171
else:
162172
longitudinal_study = False
163173

164-
if args.refine_pial_acquisition_label:
165-
acq_t2 = "*acq-%s*" % args.refine_pial_acquisition_label
166-
else:
167-
acq_t2 = "*"
168-
169-
if args.refine_pial_reconstruction_label:
170-
rec_t2 = "*rec-%s*" % args.refine_pial_reconstruction_label
171-
else:
172-
rec_t2 = "*"
173174

174175
subjects_to_analyze = []
175176
# only for a subset of subjects
@@ -208,7 +209,7 @@ def run(command, env={}, ignore_errors=False):
208209
"sub-%s" % subject_label,
209210
"ses-*",
210211
"anat",
211-
"%s_%s_T1w.nii*" % (acq_tpl, rec_tpl)))
212+
"%s_T1w.nii*" % (ar_tpl)))
212213
sessions = set([os.path.normpath(t1).split(os.sep)[-3].split("-")[-1] for t1 in T1s])
213214
if args.session_label:
214215
sessions = sessions.intersection(args.session_label)
@@ -222,7 +223,7 @@ def run(command, env={}, ignore_errors=False):
222223
"sub-%s" % subject_label,
223224
"ses-%s" % session_label,
224225
"anat",
225-
"%s_%s_T1w.nii*" % (acq_tpl, rec_tpl)))
226+
"%s_T1w.nii*" % (ar_tpl)))
226227
input_args = ""
227228

228229
if three_T == 'true':
@@ -238,10 +239,10 @@ def run(command, env={}, ignore_errors=False):
238239

239240
T2s = glob(os.path.join(args.bids_dir, "sub-%s" % subject_label,
240241
"ses-%s" % session_label, "anat",
241-
"%s_%s_T2w.nii*" % (acq_t2, rec_t2)))
242+
"%s_T2w.nii*" % (ar_t2)))
242243
FLAIRs = glob(os.path.join(args.bids_dir, "sub-%s" % subject_label,
243244
"ses-%s" % session_label, "anat",
244-
"%s_%s_FLAIR.nii*" % (acq_t2, rec_t2)))
245+
"%s_FLAIR.nii*" % (ar_t2)))
245246
if args.refine_pial == "T2":
246247
for T2 in T2s:
247248
if (max(nibabel.load(T2).header.get_zooms()) < 1.2) | args.allow_lowresT2:
@@ -338,7 +339,7 @@ def run(command, env={}, ignore_errors=False):
338339
"sub-%s" % subject_label,
339340
"ses-*",
340341
"anat",
341-
"%s_%s_T1w.nii*" % (acq_tpl, rec_tpl)))
342+
"%s_T1w.nii*" % (ar_tpl)))
342343
input_args = ""
343344

344345
if three_T == 'true':
@@ -356,12 +357,12 @@ def run(command, env={}, ignore_errors=False):
356357
"sub-%s" % subject_label,
357358
"ses-*",
358359
"anat",
359-
"%s_%s_T2w.nii*" % (acq_t2, rec_t2)))
360+
"%s_T2w.nii*" % (ar_t2)))
360361
FLAIRs = glob(os.path.join(args.bids_dir,
361362
"sub-%s" % subject_label,
362363
"ses-*",
363364
"anat",
364-
"%s_%s_FLAIR.nii*" % (acq_t2, rec_t2)))
365+
"%s_FLAIR.nii*" % (ar_t2)))
365366
if args.refine_pial == "T2":
366367
for T2 in T2s:
367368
if (max(nibabel.load(T2).header.get_zooms()) < 1.2) | args.allow_lowresT2:
@@ -408,7 +409,7 @@ def run(command, env={}, ignore_errors=False):
408409
T1s = glob(os.path.join(args.bids_dir,
409410
"sub-%s" % subject_label,
410411
"anat",
411-
"%s_%s_T1w.nii*" % (acq_tpl, rec_tpl)))
412+
"%s_T1w.nii*" % (ar_tpl)))
412413
if not T1s:
413414
print("No T1w nii files found for subject %s. Skipping subject." % subject_label)
414415
continue
@@ -426,9 +427,9 @@ def run(command, env={}, ignore_errors=False):
426427
input_args += " -hires"
427428
input_args += " -i %s" % T1
428429
T2s = glob(os.path.join(args.bids_dir, "sub-%s" % subject_label, "anat",
429-
"%s_%s_T2w.nii*" % (acq_t2, rec_t2)))
430+
"%s_T2w.nii*" % (ar_t2)))
430431
FLAIRs = glob(os.path.join(args.bids_dir, "sub-%s" % subject_label, "anat",
431-
"%s_%s_FLAIR.nii*" % (acq_t2, rec_t2)))
432+
"%s_FLAIR.nii*" % (ar_t2)))
432433
if args.refine_pial == "T2":
433434
for T2 in T2s:
434435
if max(nibabel.load(T2).header.get_zooms()) < 1.2:

0 commit comments

Comments
 (0)