123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- Node: workflow_enumerator.funcMRIQC.ReportsWorkflow.SpikesMask
- Working directory: /pasteur/projets/policy01/cinq/rto/data/abide2all/src/work/workflow_enumerator/funcMRIQC/ReportsWorkflow/_in_file_..pasteur..projets..policy01..cinq..rto..data..abide2all..data..RawData..ABIDEII-OHSU_1..sub-28934..ses-1..func..sub-28934_ses-1_task-rest_run-2_bold.nii.gz/SpikesMask
- Node inputs:
- function_str = def spikes_mask(in_file, in_mask=None, out_file=None):
- """
- Utility function to calculate a mask in which check
- for :abbr:`EM (electromagnetic)` spikes.
- """
- import os.path as op
- import nibabel as nb
- import numpy as np
- from nilearn.image import mean_img
- from nilearn.plotting import plot_roi
- from scipy import ndimage as nd
- if out_file is None:
- fname, ext = op.splitext(op.basename(in_file))
- if ext == '.gz':
- fname, ext2 = op.splitext(fname)
- ext = ext2 + ext
- out_file = op.abspath('{}_spmask{}'.format(fname, ext))
- out_plot = op.abspath('{}_spmask.pdf'.format(fname))
- in_4d_nii = nb.load(in_file)
- orientation = nb.aff2axcodes(in_4d_nii.affine)
- if in_mask:
- mask_data = nb.load(in_mask).get_data()
- a = np.where(mask_data != 0)
- bbox = np.max(a[0]) - np.min(a[0]), np.max(a[1]) - \
- np.min(a[1]), np.max(a[2]) - np.min(a[2])
- longest_axis = np.argmax(bbox)
- # Input here is a binarized and intersected mask data from previous section
- dil_mask = nd.binary_dilation(
- mask_data, iterations=int(mask_data.shape[longest_axis] / 9))
- rep = list(mask_data.shape)
- rep[longest_axis] = -1
- new_mask_2d = dil_mask.max(axis=longest_axis).reshape(rep)
- rep = [1, 1, 1]
- rep[longest_axis] = mask_data.shape[longest_axis]
- new_mask_3d = np.logical_not(np.tile(new_mask_2d, rep))
- else:
- new_mask_3d = np.zeros(in_4d_nii.shape[:3]) == 1
- if orientation[0] in ['L', 'R']:
- new_mask_3d[0:2, :, :] = True
- new_mask_3d[-3:-1, :, :] = True
- else:
- new_mask_3d[:, 0:2, :] = True
- new_mask_3d[:, -3:-1, :] = True
- mask_nii = nb.Nifti1Image(new_mask_3d.astype(np.uint8), in_4d_nii.affine,
- in_4d_nii.header)
- mask_nii.to_filename(out_file)
- plot_roi(mask_nii, mean_img(in_4d_nii), output_file=out_plot)
- return out_file, out_plot
- in_file = <undefined>
- in_mask = <undefined>
- Traceback (most recent call last):
- File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/linear.py", line 48, in run
- node.run(updatehash=updatehash)
- File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 472, in run
- result = self._run_interface(execute=True)
- File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 563, in _run_interface
- return self._run_command(execute)
- File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 643, in _run_command
- result = self._interface.run(cwd=outdir)
- File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 375, in run
- runtime = self._run_interface(runtime)
- File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/utility/wrappers.py", line 144, in _run_interface
- out = function_handle(**args)
- TypeError: spikes_mask() missing 1 required positional argument: 'in_file'
|