Skip to content

Commit 14f8192

Browse files
committed
fix: deprecated interfaces and tests
1 parent f316b8b commit 14f8192

File tree

5 files changed

+3
-478
lines changed

5 files changed

+3
-478
lines changed

nipype/interfaces/fsl/dti.py

Lines changed: 2 additions & 255 deletions
Original file line numberDiff line numberDiff line change
@@ -406,261 +406,8 @@ class XFibres5(FSLXCommand):
406406
input_spec = XFibres5InputSpec
407407
output_spec = FSLXCommandOutputSpec
408408

409-
410-
class XFibres4InputSpec(FSLCommandInputSpec):
411-
dwi = File(exists=True, argstr="--data=%s", mandatory=True)
412-
mask = File(exists=True, argstr="--mask=%s", mandatory=True)
413-
gradnonlin = File(exists=True, argstr="--gradnonlin=%s")
414-
bvecs = File(exists=True, argstr="--bvecs=%s", mandatory=True)
415-
bvals = File(exists=True, argstr="--bvals=%s", mandatory=True)
416-
logdir = Directory("logdir", argstr="--logdir=%s", usedefault=True)
417-
n_fibres = traits.Range(low=1, argstr="--nfibres=%d",
418-
desc="Maximum nukmber of fibres to fit in each voxel")
419-
fudge = traits.Int(argstr="--fudge=%d",
420-
desc="ARD fudge factor")
421-
n_jumps = traits.Range(low=1, argstr="--njumps=%d",
422-
desc="Num of jumps to be made by MCMC")
423-
burn_in = traits.Range(low=0, argstr="--burnin=%d",
424-
desc="Total num of jumps at start of MCMC to be discarded")
425-
burn_in_no_ard = traits.Range(low=0, argstr="--burninnoard=%d",
426-
desc="num of burnin jumps before the ard is imposed")
427-
sample_every = traits.Range(low=0, argstr="--sampleevery=%d",
428-
desc="Num of jumps for each sample (MCMC)")
429-
update_proposal_every = traits.Range(low=1, argstr="--updateproposalevery=%d",
430-
desc="Num of jumps for each update to the proposal density std (MCMC)")
431-
seed = traits.Int(argstr="--seed=%d", desc="seed for pseudo random number generator")
432-
model = traits.Int(argstr="--model=%d", desc="Which model to use. \
433-
1=mono-exponential (default and required for single shell). 2=continous \
434-
exponential (for multi-shell experiments)")
435-
436-
_xor_inputs1 = ('no_ard', 'all_ard')
437-
no_ard = traits.Bool(argstr="--noard", desc="Turn ARD off on all fibres", xor=_xor_inputs1)
438-
all_ard = traits.Bool(argstr="--allard", desc="Turn ARD on on all fibres", xor=_xor_inputs1)
439-
440-
_xor_inputs2 = ('no_spat', 'non_linear')
441-
no_spat = traits.Bool(argstr="--nospat", desc="Initialise with tensor, not spatially", xor=_xor_inputs2)
442-
non_linear = traits.Bool(argstr="--nonlinear", desc="Initialise with nonlinear fitting", xor=_xor_inputs2)
443-
force_dir = traits.Bool(True,
444-
desc='use the actual directory name given - i.e. ' +
445-
'do not add + to make a new directory',
446-
argstr='--forcedir', usedefault=True)
447-
448-
449-
class XFibres4OutputSpec(TraitedSpec):
450-
dyads = OutputMultiPath(File(exists=True), desc="Mean of PDD distribution in vector form.")
451-
fsamples = OutputMultiPath(File(exists=True), desc="Samples from the distribution on anisotropic volume fraction")
452-
mean_dsamples = File(exists=True, desc="Mean of distribution on diffusivity d")
453-
mean_fsamples = OutputMultiPath(File(exists=True), desc="Mean of distribution on f anisotropy")
454-
mean_S0samples = File(exists=True, desc="Samples from S0 distribution")
455-
phsamples = OutputMultiPath(File(exists=True), desc="Samples from the distribution on phi")
456-
thsamples = OutputMultiPath(File(exists=True), desc="Samples from the distribution on theta")
457-
458-
459-
class XFibres4(FSLCommand):
460-
"""
461-
Perform model parameters estimation for local (voxelwise) diffusion
462-
parameters
463-
464-
.. deprecated:: 0.9.2
465-
Use :class:`.XFibres5` instead.
466-
467-
468-
"""
469-
_cmd = "xfibres"
470-
input_spec = XFibres4InputSpec
471-
output_spec = XFibres4OutputSpec
472-
473-
def __init__(self, **inputs):
474-
warnings.warn(('Deprecated: Please use XFIBERS5 instead. This '
475-
'interface will be removed in version 0.11.'),
476-
DeprecationWarning)
477-
super(XFibres4, self).__init__(**inputs)
478-
479-
def _list_outputs(self):
480-
outputs = self.output_spec().get()
481-
outputs["mean_dsamples"] = self._gen_fname("mean_dsamples",
482-
cwd=self.inputs.logdir)
483-
outputs["mean_S0samples"] = self._gen_fname("mean_S0samples",
484-
cwd=self.inputs.logdir)
485-
outputs["dyads"] = []
486-
outputs["fsamples"] = []
487-
outputs["mean_fsamples"] = []
488-
outputs["phsamples"] = []
489-
outputs["thsamples"] = []
490-
for i in range(1, self.inputs.n_fibres + 1):
491-
outputs["dyads"].append(self._gen_fname("dyads%d" % i,
492-
cwd=self.inputs.logdir))
493-
outputs["fsamples"].append(self._gen_fname("f%dsamples" % i,
494-
cwd=self.inputs.logdir))
495-
outputs["mean_fsamples"].append(self._gen_fname("mean_f%dsamples" % i,
496-
cwd=self.inputs.logdir))
497-
outputs["phsamples"].append(self._gen_fname("ph%dsamples" % i,
498-
cwd=self.inputs.logdir))
499-
outputs["thsamples"].append(self._gen_fname("th%dsamples" % i,
500-
cwd=self.inputs.logdir))
501-
502-
return outputs
503-
504-
505-
class BEDPOSTX4InputSpec(XFibres4InputSpec):
506-
dwi = File(exists=True, desc='diffusion weighted image data file',
507-
mandatory=True)
508-
mask = File(exists=True, desc='bet binary mask file', mandatory=True)
509-
bvecs = File(exists=True, desc='b vectors file', mandatory=True)
510-
bvals = File(exists=True, desc='b values file', mandatory=True)
511-
bpx_directory = Directory('bedpostx', argstr='%s', usedefault=True,
512-
desc=('the name for this subject\'s bedpostx'
513-
' folder'))
514-
fibres = traits.Int(2, argstr='-n %d', desc='number of fibres per voxel')
515-
weight = traits.Float(1.00, argstr='-w %.2f',
516-
desc=('ARD weight, more weight means less'
517-
' secondary fibres per voxel'))
518-
burn_period = traits.Int(1000, argstr='-b %d', desc='burnin period')
519-
jumps = traits.Int(1250, argstr='-j %d', desc='number of jumps')
520-
sampling = traits.Int(25, argstr='-s %d', desc='sample every')
521-
model = traits.Enum(1, 2, argstr='-model %d',
522-
desc=('model choice: monoexponential (1) or '
523-
'multiexponential (2). '))
524-
nlgradient = traits.Bool(False, argstr='-g', desc=('consider gradient'
525-
'nonlinearities, default off'))
526-
no_cuda = traits.Bool(False, argstr='-c',
527-
desc=('do not use CUDA capable hardware/queue '
528-
'(if found)'))
529-
530-
531-
class BEDPOSTX4OutputSpec(TraitedSpec):
532-
bpx_out_directory = Directory(exists=True,
533-
desc='path/name of directory with all ' +
534-
'bedpostx output files for this subject')
535-
xfms_directory = Directory(exists=True,
536-
desc='path/name of directory with the ' +
537-
'tranformation matrices')
538-
merged_thsamples = traits.List(File(exists=True),
539-
desc='a list of path/name of 4D volume ' +
540-
'with samples from the distribution ' +
541-
'on theta')
542-
merged_phsamples = traits.List(File(exists=True),
543-
desc='a list of path/name of file with '
544-
'samples from the distribution on phi')
545-
merged_fsamples = traits.List(File(exists=True),
546-
desc='a list of path/name of 4D volume ' +
547-
'with samples from the distribution ' +
548-
'on anisotropic volume fraction')
549-
mean_thsamples = traits.List(File(exists=True),
550-
desc='a list of path/name of 3D volume with mean of distribution on theta')
551-
mean_phsamples = traits.List(File(exists=True),
552-
desc='a list of path/name of 3D volume with mean of distribution on phi')
553-
mean_fsamples = traits.List(File(exists=True),
554-
desc='a list of path/name of 3D volume with mean of distribution on f anisotropy')
555-
dyads = traits.List(File(exists=True), desc='a list of path/name of mean of PDD distribution in vector form')
556-
557-
558-
class BEDPOSTX4(FSLCommand):
559-
"""
560-
bedpostx has an old interface, implemented here
561-
562-
563-
Example
564-
-------
565-
566-
>>> from nipype.interfaces import fsl
567-
>>> bedp = fsl.BEDPOSTX4(bpx_directory='subjdir', bvecs='bvecs', \
568-
bvals='bvals', dwi='diffusion.nii', mask='mask.nii', fibres=1)
569-
>>> bedp.cmdline
570-
'bedpostx subjdir -n 1 --forcedir --logdir=logdir'
571-
572-
"""
573-
574-
_cmd = 'bedpostx'
575-
input_spec = BEDPOSTX4InputSpec
576-
output_spec = BEDPOSTX4OutputSpec
577-
_can_resume = True
578-
579-
def __init__(self, **inputs):
580-
warnings.warn(('Deprecated: Please use BEDPOSTX5 or '
581-
'create_bedpostx_pipeline instead. This interface will '
582-
'be removed in version 0.11.'), DeprecationWarning)
583-
super(BEDPOSTX4, self).__init__(**inputs)
584-
585-
def _get_bedpostx_dir(self):
586-
return os.path.join(os.getcwd(), self.inputs.bpx_directory)
587-
588-
def _run_interface(self, runtime, correct_return_codes=[0]):
589-
590-
# create the subject specific bpx_directory
591-
bpx_directory = self._get_bedpostx_dir()
592-
if not os.path.exists(bpx_directory):
593-
os.makedirs(bpx_directory)
594-
595-
_, _, ext = split_filename(self.inputs.mask)
596-
shutil.copyfile(self.inputs.mask,
597-
os.path.join(self.inputs.bpx_directory,
598-
'nodif_brain_mask' + ext))
599-
_, _, ext = split_filename(self.inputs.dwi)
600-
shutil.copyfile(self.inputs.dwi,
601-
os.path.join(self.inputs.bpx_directory, 'data' + ext))
602-
shutil.copyfile(self.inputs.bvals,
603-
os.path.join(self.inputs.bpx_directory, 'bvals'))
604-
shutil.copyfile(self.inputs.bvecs,
605-
os.path.join(self.inputs.bpx_directory, 'bvecs'))
606-
607-
runtime = super(BEDPOSTX4, self)._run_interface(runtime,
608-
correct_return_codes)
609-
if runtime.stderr:
610-
self.raise_exception(runtime)
611-
return runtime
612-
613-
def _list_outputs(self):
614-
outputs = self.output_spec().get()
615-
bpx_directory = self._get_bedpostx_dir()
616-
outputs['bpx_out_directory'] = os.path.join(bpx_directory + '.bedpostX')
617-
outputs['xfms_directory'] = os.path.join(bpx_directory + '.bedpostX',
618-
'xfms')
619-
620-
for k in list(outputs.keys()):
621-
if k not in ('outputtype', 'environ', 'args', 'bpx_out_directory',
622-
'xfms_directory'):
623-
outputs[k] = []
624-
625-
for n in range(self.inputs.fibres):
626-
outputs['merged_thsamples'].append(self._gen_fname(
627-
'merged_th' + repr(n + 1) + 'samples',
628-
suffix='', cwd=outputs['bpx_out_directory']))
629-
outputs['merged_phsamples'].append(self._gen_fname(
630-
'merged_ph' + repr(n + 1) + 'samples',
631-
suffix='', cwd=outputs['bpx_out_directory']))
632-
outputs['merged_fsamples'].append(self._gen_fname(
633-
'merged_f' + repr(n + 1) + 'samples',
634-
suffix='', cwd=outputs['bpx_out_directory']))
635-
outputs['mean_thsamples'].append(self._gen_fname(
636-
'mean_th' + repr(n + 1) + 'samples',
637-
suffix='', cwd=outputs['bpx_out_directory']))
638-
outputs['mean_phsamples'].append(self._gen_fname(
639-
'mean_ph' + repr(n + 1) + 'samples',
640-
suffix='', cwd=outputs['bpx_out_directory']))
641-
outputs['mean_fsamples'].append(self._gen_fname(
642-
'mean_f' + repr(n + 1) + 'samples',
643-
suffix='', cwd=outputs['bpx_out_directory']))
644-
outputs['dyads'].append(self._gen_fname(
645-
'dyads' + repr(n + 1),
646-
suffix='', cwd=outputs['bpx_out_directory']))
647-
return outputs
648-
649-
650-
if (Info.version() and LooseVersion(Info.version()) >= LooseVersion('5.0.0')):
651-
CurrentXFibres = XFibres5
652-
CurrentBEDPOST = BEDPOSTX5
653-
else:
654-
CurrentXFibres = XFibres4
655-
CurrentBEDPOST = BEDPOSTX4
656-
657-
658-
class XFibres(CurrentXFibres):
659-
pass
660-
661-
662-
class BEDPOSTX(CurrentBEDPOST):
663-
pass
409+
XFibres = XFibres5
410+
BEDPOSTX = BEDPOSTX5
664411

665412

666413
class ProbTrackXBaseInputSpec(FSLCommandInputSpec):

nipype/interfaces/fsl/tests/test_auto_BEDPOSTX4.py

Lines changed: 0 additions & 104 deletions
This file was deleted.

0 commit comments

Comments
 (0)