nipy / nipype

Workflows and interfaces for neuroimaging packages
https://nipype.readthedocs.org/en/latest/
Other
745 stars 529 forks source link

Possible bug in create_bedpostx_pipeline workflow #1209

Open mattfeld opened 9 years ago

mattfeld commented 9 years ago

In the create_bedpostx_pipeline function on lines 59 and 60

The following lines are skull stripping rather than creating a binarized mask.

mask_dwi = pe.MapNode(fsl.ImageMaths(op_string='-mas'), iterfield=['in_file', 'in_file2'], name='mask_dwi')

This is causing some (but not all) of my slices to crash with the following error:

File: /home/data/madlab/scripts/prob_trak/crash-20150909-152521-amattfel-_xfibres99.pklz Node: _xfibres99 Working directory: /scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/_n_fibres_3/xfibres/mapflow/_xfibres99

Node inputs:

all_ard = args = burn_in = 1000 burn_in_no_ard = bvals = /home/data/hcp/100307/T1w/Diffusion/bvals bvecs = /home/data/hcp/100307/T1w/Diffusion/bvecs cnlinear = True dwi = /scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/slice_dwi/vol0099.nii.gz environ = {'FSLOUTPUTTYPE': 'NIFTI_GZ'} f0_ard = f0_noard = force_dir = True fudge = 1 gradnonlin = ignore_exception = False logdir = . mask = /scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/mask_dwi/mapflow/_mask_dwi99/vol0099_maths.nii.gz model = 1 n_fibres = 3 n_jumps = 1250 no_ard = no_spat = non_linear = output_type = NIFTI_GZ rician = sample_every = 25 seed = terminal_output = stream update_proposal_every =

Traceback: Traceback (most recent call last): File "/scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/_n_fibres_3/xfibres/mapflow/batch/pyscript_20150909_152407__xfibres99.py", line 32, in result = info['node'].run(updatehash=info['updatehash']) File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/pipeline/engine.py", line 1428, in run self._run_interface() File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/pipeline/engine.py", line 1538, in _run_interface self._result = self._run_command(execute) File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/pipeline/engine.py", line 1664, in _run_command result = self._interface.run() File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1024, in run runtime = self._run_wrapper(runtime) File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1448, in _run_wrapper runtime = self._run_interface(runtime) File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/interfaces/fsl/dti.py", line 196, in _run_interface self.raise_exception(runtime) File "/home/data/madlab/envs/hcp_madlab_env/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1406, in raise_exception raise RuntimeError(message) RuntimeError: Command: xfibres --burnin=1000 --bvals=/home/data/hcp/100307/T1w/Diffusion/bvals --bvecs=/home/data/hcp/100307/T1w/Diffusion/bvecs --cnonlinear --data=/scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/slice_dwi/vol0099.nii.gz --forcedir --fudge=1 --logdir=. --mask=/scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/mask_dwi/mapflow/_mask_dwi99/vol0099_maths.nii.gz --model=1 --nfibres=3 --njumps=1250 --sampleevery=25 Standard output: Log directory is: . Standard error:

An exception has been thrown Logic error:- detected by Newmat: index error: requested indices = 1, 4721

MatrixType = Rect # Rows = 288; # Cols = 4720

Return code: 0 Interface XFibres failed to run.

When I rerun the xfibres function with the mask file from the slice_msk node everything works fine: mask=/scratch/madlab/hcp/probtrack/hcp_dwi_wf/bedpostx/_subject_id_100307/slice_msk/vol0099.nii.gz

Would it be more appropriate to change the op_string='-mas' to '-bin'?

Alternatively, you could remove the mask_dwi node and use the out_files from the slice_msk node as the input for the xfibres node mask input?

djarecka commented 6 years ago

@mattfeld - sorry that you didn't get an answer sooner. Please let me know if you still have this issue with the current version of nipype.

djarecka commented 6 years ago

@satra @oesteban any suggestion if the op_string should be changed?

djarecka commented 6 years ago

@satra @effigies - any suggestions? is this an issue and should be changed? otherwise I'll close it.

oesteban commented 6 years ago

I'll have a look, but can't promise when.

mattfeld commented 6 years ago

@djarecka I could make the change and submit a pull request

djarecka commented 6 years ago

@mattfeld that would be great, please do! I'm not familiar with the interface, so I'm a bit hesitate to touch it.