Skip to content

Commit 6768734

Browse files
committed
RF: Purge get_data from algorithms.confounds
Selecting dtype=float32 for loading full time series
1 parent ab0a18e commit 6768734

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

nipype/algorithms/confounds.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -623,12 +623,10 @@ def _run_interface(self, runtime):
623623
skip_vols = self.inputs.ignore_initial_volumes
624624
if skip_vols:
625625
imgseries = imgseries.__class__(
626-
imgseries.get_data()[..., skip_vols:],
627-
imgseries.affine,
628-
imgseries.header,
626+
imgseries.dataobj[..., skip_vols:], imgseries.affine, imgseries.header
629627
)
630628

631-
mask_images = self._process_masks(mask_images, imgseries.get_data())
629+
mask_images = self._process_masks(mask_images, imgseries.dataobj)
632630

633631
TR = 0
634632
if self.inputs.pre_filter == "cosine":
@@ -664,7 +662,7 @@ def _run_interface(self, runtime):
664662
)
665663

666664
components, filter_basis, metadata = compute_noise_components(
667-
imgseries.get_data(),
665+
imgseries.get_fdata(dtype=np.float32),
668666
mask_images,
669667
components_criterion,
670668
self.inputs.pre_filter,
@@ -837,8 +835,9 @@ def __init__(self, *args, **kwargs):
837835
def _process_masks(self, mask_images, timeseries=None):
838836
out_images = []
839837
self._mask_files = []
838+
timeseries = np.asanyarray(timeseries)
840839
for i, img in enumerate(mask_images):
841-
mask = img.get_data().astype(np.bool)
840+
mask = np.asanyarray(img.dataobj).astype(np.bool)
842841
imgseries = timeseries[mask, :]
843842
imgseries = regress_poly(2, imgseries)[0]
844843
tSTD = _compute_tSTD(imgseries, 0, axis=-1)
@@ -924,7 +923,11 @@ def _run_interface(self, runtime):
924923
nb.load(filename, mmap=NUMPY_MMAP) for filename in self.inputs.in_file
925924
]
926925
data = np.concatenate(
927-
[vol.get_data().reshape(vol.shape[:3] + (-1,)) for vol in vollist], axis=3
926+
[
927+
vol.get_fdata(dtype=np.float32).reshape(vol.shape[:3] + (-1,))
928+
for vol in vollist
929+
],
930+
axis=3,
928931
)
929932
data = np.nan_to_num(data)
930933

@@ -985,7 +988,7 @@ class NonSteadyStateDetector(BaseInterface):
985988
def _run_interface(self, runtime):
986989
in_nii = nb.load(self.inputs.in_file)
987990
global_signal = (
988-
in_nii.get_data()[:, :, :, :50].mean(axis=0).mean(axis=0).mean(axis=0)
991+
in_nii.dataobj[:, :, :, :50].mean(axis=0).mean(axis=0).mean(axis=0)
989992
)
990993

991994
self._results = {"n_volumes_to_discard": is_outlier(global_signal)}
@@ -1032,8 +1035,8 @@ def compute_dvars(
10321035
from nitime.algorithms import AR_est_YW
10331036
import warnings
10341037

1035-
func = nb.load(in_file, mmap=NUMPY_MMAP).get_data().astype(np.float32)
1036-
mask = nb.load(in_mask, mmap=NUMPY_MMAP).get_data().astype(np.uint8)
1038+
func = nb.load(in_file, mmap=NUMPY_MMAP).get_fdata(dtype=np.float32)
1039+
mask = np.asanyarray(nb.load(in_mask, mmap=NUMPY_MMAP).dataobj).astype(np.uint8)
10371040

10381041
if len(func.shape) != 4:
10391042
raise RuntimeError("Input fMRI dataset should be 4-dimensional")
@@ -1280,8 +1283,8 @@ def combine_mask_files(mask_files, mask_method=None, mask_index=None):
12801283
for filename in mask_files:
12811284
img = nb.load(filename, mmap=NUMPY_MMAP)
12821285
if mask is None:
1283-
mask = img.get_data() > 0
1284-
np.logical_or(mask, img.get_data() > 0, mask)
1286+
mask = img.get_fdata() > 0
1287+
np.logical_or(mask, img.get_fdata() > 0, mask)
12851288
img = nb.Nifti1Image(mask, img.affine, header=img.header)
12861289
return [img]
12871290

@@ -1290,8 +1293,8 @@ def combine_mask_files(mask_files, mask_method=None, mask_index=None):
12901293
for filename in mask_files:
12911294
img = nb.load(filename, mmap=NUMPY_MMAP)
12921295
if mask is None:
1293-
mask = img.get_data() > 0
1294-
np.logical_and(mask, img.get_data() > 0, mask)
1296+
mask = img.get_fdata() > 0
1297+
np.logical_and(mask, img.get_fdata() > 0, mask)
12951298
img = nb.Nifti1Image(mask, img.affine, header=img.header)
12961299
return [img]
12971300

@@ -1374,7 +1377,7 @@ def compute_noise_components(
13741377
md_retained = []
13751378

13761379
for name, img in zip(mask_names, mask_images):
1377-
mask = nb.squeeze_image(img).get_data().astype(np.bool)
1380+
mask = nb.squeeze_image(img).dataobj.astype(np.bool)
13781381
if imgseries.shape[:3] != mask.shape:
13791382
raise ValueError(
13801383
"Inputs for CompCor, timeseries and mask, do not have "

0 commit comments

Comments
 (0)