Skip to content

Commit 3820f9f

Browse files
committed
replace all nibabel imports and the nibabel.load to have the NUMPY_MMAP
1 parent f3ebcc5 commit 3820f9f

28 files changed

+130
-130
lines changed

examples/dmri_camino_dti.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def get_vox_dims(volume):
3838
import nibabel as nb
3939
if isinstance(volume, list):
4040
volume = volume[0]
41-
nii = nb.load(volume)
41+
nii = nb.load(volume, mmap=NUMPY_MMAP)
4242
hdr = nii.header
4343
voxdims = hdr.get_zooms()
4444
return [float(voxdims[0]), float(voxdims[1]), float(voxdims[2])]
@@ -48,15 +48,15 @@ def get_data_dims(volume):
4848
import nibabel as nb
4949
if isinstance(volume, list):
5050
volume = volume[0]
51-
nii = nb.load(volume)
51+
nii = nb.load(volume, mmap=NUMPY_MMAP)
5252
hdr = nii.header
5353
datadims = hdr.get_data_shape()
5454
return [int(datadims[0]), int(datadims[1]), int(datadims[2])]
5555

5656

5757
def get_affine(volume):
5858
import nibabel as nb
59-
nii = nb.load(volume)
59+
nii = nb.load(volume, mmap=NUMPY_MMAP)
6060
return nii.affine
6161

6262
subject_list = ['subj1']

examples/dmri_connectivity.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def get_vox_dims(volume):
7676
import nibabel as nb
7777
if isinstance(volume, list):
7878
volume = volume[0]
79-
nii = nb.load(volume)
79+
nii = nb.load(volume, mmap=NUMPY_MMAP)
8080
hdr = nii.header
8181
voxdims = hdr.get_zooms()
8282
return [float(voxdims[0]), float(voxdims[1]), float(voxdims[2])]
@@ -86,15 +86,15 @@ def get_data_dims(volume):
8686
import nibabel as nb
8787
if isinstance(volume, list):
8888
volume = volume[0]
89-
nii = nb.load(volume)
89+
nii = nb.load(volume, mmap=NUMPY_MMAP)
9090
hdr = nii.header
9191
datadims = hdr.get_data_shape()
9292
return [int(datadims[0]), int(datadims[1]), int(datadims[2])]
9393

9494

9595
def get_affine(volume):
9696
import nibabel as nb
97-
nii = nb.load(volume)
97+
nii = nb.load(volume, mmap=NUMPY_MMAP)
9898
return nii.affine
9999

100100

examples/fmri_ants_openfmri.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def median(in_files):
6868
"""
6969
average = None
7070
for idx, filename in enumerate(filename_to_list(in_files)):
71-
img = nb.load(filename)
71+
img = nb.load(filename, mmap=NUMPY_MMAP)
7272
data = np.median(img.get_data(), axis=3)
7373
if average is None:
7474
average = data

examples/fmri_spm_auditory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def get_vox_dims(volume):
122122
import nibabel as nb
123123
if isinstance(volume, list):
124124
volume = volume[0]
125-
nii = nb.load(volume)
125+
nii = nb.load(volume, mmap=NUMPY_MMAP)
126126
hdr = nii.header
127127
voxdims = hdr.get_zooms()
128128
return [float(voxdims[0]), float(voxdims[1]), float(voxdims[2])]

examples/fmri_spm_face.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def get_vox_dims(volume):
116116
import nibabel as nb
117117
if isinstance(volume, list):
118118
volume = volume[0]
119-
nii = nb.load(volume)
119+
nii = nb.load(volume, mmap=NUMPY_MMAP)
120120
hdr = nii.header
121121
voxdims = hdr.get_zooms()
122122
return [float(voxdims[0]), float(voxdims[1]), float(voxdims[2])]

examples/rsfmri_vol_surface_preprocessing.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def median(in_files):
119119
import nibabel as nb
120120
average = None
121121
for idx, filename in enumerate(filename_to_list(in_files)):
122-
img = nb.load(filename)
122+
img = nb.load(filename, mmap=NUMPY_MMAP)
123123
data = np.median(img.get_data(), axis=3)
124124
if average is None:
125125
average = data
@@ -149,7 +149,7 @@ def bandpass_filter(files, lowpass_freq, highpass_freq, fs):
149149
for filename in filename_to_list(files):
150150
path, name, ext = split_filename(filename)
151151
out_file = os.path.join(os.getcwd(), name + '_bp' + ext)
152-
img = nb.load(filename)
152+
img = nb.load(filename, mmap=NUMPY_MMAP)
153153
timepoints = img.shape[-1]
154154
F = np.zeros((timepoints))
155155
lowidx = int(timepoints / 2) + 1
@@ -261,10 +261,10 @@ def extract_noise_components(realigned_file, mask_file, num_components=5,
261261
import numpy as np
262262
import nibabel as nb
263263
import os
264-
imgseries = nb.load(realigned_file)
264+
imgseries = nb.load(realigned_file, mmap=NUMPY_MMAP)
265265
components = None
266266
for filename in filename_to_list(mask_file):
267-
mask = nb.load(filename).get_data()
267+
mask = nb.load(filename, mmap=NUMPY_MMAP).get_data()
268268
if len(np.nonzero(mask > 0)[0]) == 0:
269269
continue
270270
voxel_timecourses = imgseries.get_data()[mask > 0]
@@ -330,9 +330,9 @@ def extract_subrois(timeseries_file, label_file, indices):
330330
from nipype.utils.filemanip import split_filename
331331
import nibabel as nb
332332
import os
333-
img = nb.load(timeseries_file)
333+
img = nb.load(timeseries_file, mmap=NUMPY_MMAP)
334334
data = img.get_data()
335-
roiimg = nb.load(label_file)
335+
roiimg = nb.load(label_file, mmap=NUMPY_MMAP)
336336
rois = roiimg.get_data()
337337
prefix = split_filename(timeseries_file)[1]
338338
out_ts_file = os.path.join(os.getcwd(), '%s_subcortical_ts.txt' % prefix)
@@ -352,8 +352,8 @@ def combine_hemi(left, right):
352352
"""
353353
import os
354354
import numpy as np
355-
lh_data = nb.load(left).get_data()
356-
rh_data = nb.load(right).get_data()
355+
lh_data = nb.load(left, mmap=NUMPY_MMAP).get_data()
356+
rh_data = nb.load(right, mmap=NUMPY_MMAP).get_data()
357357

358358
indices = np.vstack((1000000 + np.arange(0, lh_data.shape[0])[:, None],
359359
2000000 + np.arange(0, rh_data.shape[0])[:, None]))

examples/rsfmri_vol_surface_preprocessing_nipy.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def median(in_files):
116116
"""
117117
average = None
118118
for idx, filename in enumerate(filename_to_list(in_files)):
119-
img = nb.load(filename)
119+
img = nb.load(filename, mmap=NUMPY_MMAP)
120120
data = np.median(img.get_data(), axis=3)
121121
if average is None:
122122
average = data
@@ -143,7 +143,7 @@ def bandpass_filter(files, lowpass_freq, highpass_freq, fs):
143143
for filename in filename_to_list(files):
144144
path, name, ext = split_filename(filename)
145145
out_file = os.path.join(os.getcwd(), name + '_bp' + ext)
146-
img = nb.load(filename)
146+
img = nb.load(filename, mmap=NUMPY_MMAP)
147147
timepoints = img.shape[-1]
148148
F = np.zeros((timepoints))
149149
lowidx = int(timepoints / 2) + 1
@@ -268,9 +268,9 @@ def extract_subrois(timeseries_file, label_file, indices):
268268
The first four columns are: freesurfer index, i, j, k positions in the
269269
label file
270270
"""
271-
img = nb.load(timeseries_file)
271+
img = nb.load(timeseries_file, mmap=NUMPY_MMAP)
272272
data = img.get_data()
273-
roiimg = nb.load(label_file)
273+
roiimg = nb.load(label_file, mmap=NUMPY_MMAP)
274274
rois = roiimg.get_data()
275275
prefix = split_filename(timeseries_file)[1]
276276
out_ts_file = os.path.join(os.getcwd(), '%s_subcortical_ts.txt' % prefix)
@@ -288,8 +288,8 @@ def extract_subrois(timeseries_file, label_file, indices):
288288
def combine_hemi(left, right):
289289
"""Combine left and right hemisphere time series into a single text file
290290
"""
291-
lh_data = nb.load(left).get_data()
292-
rh_data = nb.load(right).get_data()
291+
lh_data = nb.load(left, mmap=NUMPY_MMAP).get_data()
292+
rh_data = nb.load(right, mmap=NUMPY_MMAP).get_data()
293293

294294
indices = np.vstack((1000000 + np.arange(0, lh_data.shape[0])[:, None],
295295
2000000 + np.arange(0, rh_data.shape[0])[:, None]))

nipype/algorithms/icc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def _run_interface(self, runtime):
3737
maskdata = nb.load(self.inputs.mask).get_data()
3838
maskdata = np.logical_not(np.logical_or(maskdata == 0, np.isnan(maskdata)))
3939

40-
session_datas = [[nb.load(fname).get_data()[maskdata].reshape(-1, 1) for fname in sessions] for sessions in self.inputs.subjects_sessions]
40+
session_datas = [[nb.load(fname, mmap=NUMPY_MMAP).get_data()[maskdata].reshape(-1, 1) for fname in sessions] for sessions in self.inputs.subjects_sessions]
4141
list_of_sessions = [np.dstack(session_data) for session_data in session_datas]
4242
all_data = np.hstack(list_of_sessions)
4343
icc = np.zeros(session_datas[0][0].shape)

nipype/algorithms/metrics.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,8 @@ def _run_interface(self, runtime):
410410
assert(ncomp == len(self.inputs.in_tst))
411411
weights = np.ones(shape=ncomp)
412412

413-
img_ref = np.array([nb.load(fname).get_data() for fname in self.inputs.in_ref])
414-
img_tst = np.array([nb.load(fname).get_data() for fname in self.inputs.in_tst])
413+
img_ref = np.array([nb.load(fname, mmap=NUMPY_MMAP).get_data() for fname in self.inputs.in_ref])
414+
img_tst = np.array([nb.load(fname, mmap=NUMPY_MMAP).get_data() for fname in self.inputs.in_tst])
415415

416416
msk = np.sum(img_ref, axis=0)
417417
msk[msk > 0] = 1.0

nipype/algorithms/misc.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class SimpleThreshold(BaseInterface):
140140

141141
def _run_interface(self, runtime):
142142
for fname in self.inputs.volumes:
143-
img = nb.load(fname)
143+
img = nb.load(fname, mmap=NUMPY_MMAP)
144144
data = np.array(img.get_data())
145145

146146
active_map = data > self.inputs.threshold
@@ -196,7 +196,7 @@ def _gen_output_filename(self, name):
196196

197197
def _run_interface(self, runtime):
198198
for fname in self.inputs.volumes:
199-
img = nb.load(fname)
199+
img = nb.load(fname, mmap=NUMPY_MMAP)
200200

201201
affine = img.affine
202202
affine = np.dot(self.inputs.transformation_matrix, affine)
@@ -1158,7 +1158,7 @@ def normalize_tpms(in_files, in_mask=None, out_files=[]):
11581158
Returns the input tissue probability maps (tpms, aka volume fractions)
11591159
normalized to sum up 1.0 at each voxel within the mask.
11601160
"""
1161-
import nibabel as nib
1161+
import nibabel as nb
11621162
import numpy as np
11631163
import os.path as op
11641164

@@ -1174,15 +1174,15 @@ def normalize_tpms(in_files, in_mask=None, out_files=[]):
11741174
out_file = op.abspath('%s_norm_%02d%s' % (fname, i, fext))
11751175
out_files += [out_file]
11761176

1177-
imgs = [nib.load(fim) for fim in in_files]
1177+
imgs = [nb.load(fim, mmap=NUMPY_MMAP) for fim in in_files]
11781178

11791179
if len(in_files) == 1:
11801180
img_data = imgs[0].get_data()
11811181
img_data[img_data > 0.0] = 1.0
11821182
hdr = imgs[0].header.copy()
11831183
hdr['data_type'] = 16
11841184
hdr.set_data_dtype(np.float32)
1185-
nib.save(nib.Nifti1Image(img_data.astype(np.float32), imgs[0].affine,
1185+
nb.save(nb.Nifti1Image(img_data.astype(np.float32), imgs[0].affine,
11861186
hdr), out_files[0])
11871187
return out_files[0]
11881188

@@ -1195,7 +1195,7 @@ def normalize_tpms(in_files, in_mask=None, out_files=[]):
11951195
msk[weights <= 0] = 0
11961196

11971197
if in_mask is not None:
1198-
msk = nib.load(in_mask).get_data()
1198+
msk = nb.load(in_mask, mmap=NUMPY_MMAP).get_data()
11991199
msk[msk <= 0] = 0
12001200
msk[msk > 0] = 1
12011201

@@ -1207,7 +1207,7 @@ def normalize_tpms(in_files, in_mask=None, out_files=[]):
12071207
hdr = imgs[i].header.copy()
12081208
hdr['data_type'] = 16
12091209
hdr.set_data_dtype('float32')
1210-
nib.save(nib.Nifti1Image(probmap.astype(np.float32), imgs[i].affine,
1210+
nb.save(nb.Nifti1Image(probmap.astype(np.float32), imgs[i].affine,
12111211
hdr), out_file)
12121212

12131213
return out_files
@@ -1225,15 +1225,15 @@ def split_rois(in_file, mask=None, roishape=None):
12251225
if roishape is None:
12261226
roishape = (10, 10, 1)
12271227

1228-
im = nb.load(in_file)
1228+
im = nb.load(in_file, mmap=NUMPY_MMAP)
12291229
imshape = im.shape
12301230
dshape = imshape[:3]
12311231
nvols = imshape[-1]
12321232
roisize = roishape[0] * roishape[1] * roishape[2]
12331233
droishape = (roishape[0], roishape[1], roishape[2], nvols)
12341234

12351235
if mask is not None:
1236-
mask = nb.load(mask).get_data()
1236+
mask = nb.load(mask, mmap=NUMPY_MMAP).get_data()
12371237
mask[mask > 0] = 1
12381238
mask[mask < 1] = 0
12391239
else:
@@ -1314,7 +1314,7 @@ def merge_rois(in_files, in_idxs, in_ref,
13141314
except:
13151315
pass
13161316

1317-
ref = nb.load(in_ref)
1317+
ref = nb.load(in_ref, mmap=NUMPY_MMAP)
13181318
aff = ref.affine
13191319
hdr = ref.header.copy()
13201320
rsh = ref.shape
@@ -1335,7 +1335,7 @@ def merge_rois(in_files, in_idxs, in_ref,
13351335
for cname, iname in zip(in_files, in_idxs):
13361336
f = np.load(iname)
13371337
idxs = np.squeeze(f['arr_0'])
1338-
cdata = nb.load(cname).get_data().reshape(-1, ndirs)
1338+
cdata = nb.load(cname, mmap=NUMPY_MMAP).get_data().reshape(-1, ndirs)
13391339
nels = len(idxs)
13401340
idata = (idxs, )
13411341
try:
@@ -1363,15 +1363,15 @@ def merge_rois(in_files, in_idxs, in_ref,
13631363
idxs = np.squeeze(f['arr_0'])
13641364

13651365
for d, fname in enumerate(nii):
1366-
data = nb.load(fname).get_data().reshape(-1)
1367-
cdata = nb.load(cname).get_data().reshape(-1, ndirs)[:, d]
1366+
data = nb.load(fname, mmap=NUMPY_MMAP).get_data().reshape(-1)
1367+
cdata = nb.load(cname, mmap=NUMPY_MMAP).get_data().reshape(-1, ndirs)[:, d]
13681368
nels = len(idxs)
13691369
idata = (idxs, )
13701370
data[idata] = cdata[0:nels]
13711371
nb.Nifti1Image(data.reshape(rsh[:3]),
13721372
aff, hdr).to_filename(fname)
13731373

1374-
imgs = [nb.load(im) for im in nii]
1374+
imgs = [nb.load(im, mmap=NUMPY_MMAP) for im in nii]
13751375
allim = nb.concat_images(imgs)
13761376
allim.to_filename(out_file)
13771377

0 commit comments

Comments
 (0)