Skip to content

Commit 1a28ec3

Browse files
committed
enh: revise some of the tests, add afni module import
1 parent 1b0b9f4 commit 1a28ec3

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

nipype/interfaces/afni/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@
2121
LocalBistat, Localstat, MaskTool, Merge, Notes, NwarpApply, NwarpAdjust,
2222
NwarpCat, OneDToolPy, Refit, ReHo, Resample, TCat, TCatSubBrick, TStat,
2323
To3D, Unifize, Undump, ZCutUp, GCOR, Zcat, Zeropad)
24-
from .model import (Deconvolve, Remlfit, Synthesize)
24+
from .model import (Deconvolve, Remlfit, Synthesize, Mema)

nipype/interfaces/afni/model.py

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ class MemaInputSpec(AFNICommandInputSpec):
678678
)
679679

680680
sets = traits.List(
681-
traits.Tuple(Str(minlen=1), traits.List(_subject_trait, minlen=2)),
681+
traits.Tuple(Str(minlen=1), traits.List(_subject_trait, minlen=1)),
682682
desc="""\
683683
Specify the data for one of two test variables (either group, contrast/GLTs) A & B.
684684
@@ -698,7 +698,7 @@ class MemaInputSpec(AFNICommandInputSpec):
698698
notation, which, in addition to sub-brick indices, now allows for
699699
the use of sub-brick labels as selectors
700700
e.g: -set Placebo Jane pb05.Jane.Regression+tlrc'[face#0_Beta]'
701-
pb05.Jane.Regression+tlrc'[face#0_Tstat]'
701+
pb05.Jane.Regression+tlrc'[face#0_Tstat]'
702702
""",
703703
argstr='-set %s...',
704704
mandatory=True,
@@ -932,17 +932,26 @@ class Mema(AFNICommand):
932932
933933
>>> from nipype.interfaces import afni
934934
>>> mema = afni.Mema()
935-
>>> mema.inputs.sets = ['analysis_name', [[subject_1, s1_betas, s1_t, numb1, numt1], [subject2, s2_bets, s2_ts, numb2, numt2], ...]]
936-
>>> mema.inputs.max_zeros = 4
937-
>>> mema.inputs.model_outliers = True
938-
>>> mema.inputs.residual_z = True
939-
>>> mema.inputs.out_file = 'Results.BRIK'
940-
941-
>>> from nipype.interfaces import afni
942-
>>> mema = afni.Mema()
943-
>>> mema.inputs.missing_data['File1', 'File2']
944-
>>> mema.inputs.sets = ['analysis_name', [[subject_1, s1_betas, s1_ts], [subject2, s2_bets, s2_ts], ...]]
945-
>>> mema.inputs.out_file = 'Results.BRIK'
935+
>>> mema.inputs.sets = [('Placebo', [
936+
... ('Jane', 'pb05.Jane.betas.nii', 'pb05.Jane.tvals.nii'),
937+
... ('John', 'pb05.John.betas.nii', 'pb05.John.tvals.nii'),
938+
... ('Lisa', 'pb05.Lisa.betas.nii', 'pb05.Lisa.tvals.nii')])]
939+
>>> mema.cmdline
940+
"3dMEMA -equal_variance -no_model_outliers -no_residual_Z -set Placebo Jane \
941+
pb05.betas.nii pb05.Jane.tvals.nii John pb05.John.betas.nii pb05.John.tvals.nii \
942+
Lisa pb05.Lisa.betas.nii pb05.Lisa.tvals.nii -verb 1"
943+
944+
>>> mema.inputs.sets = [('Placebo', [
945+
... ('Jane', 'pb05.Jane.Regression+tlrc', 'pb05.Jane.Regression+tlrc',
946+
... '[face#0_Beta]', '[face#0_Tstat]')
947+
... ])]
948+
>>> mema.cmdline
949+
"3dMEMA -equal_variance -no_model_outliers -no_residual_Z -set Placebo Jane \
950+
pb05.Jane.Regression+tlrc'[face#0_Beta]' pb05.Jane.Regression+tlrc'[face#0_Tstat]' -verb 1"
951+
952+
>>> mema.inputs.missing_data = 0
953+
"3dMEMA -equal_variance -missing_data 0 -no_model_outliers -no_residual_Z -set Placebo \
954+
Jane pb05.Jane.Regression+tlrc'[face#0_Beta]' pb05.Jane.Regression+tlrc'[face#0_Tstat]' -verb 1"
946955
947956
>>> from nipype.interfaces import afni
948957
>>> mema = afni.Mema()
@@ -972,7 +981,7 @@ def _format_arg(self, name, trait_spec, value):
972981
for setname, setopts in value:
973982
formatted_subject = []
974983
for this_set in setopts:
975-
if len(this_set) == 4:
984+
if len(this_set) == 5:
976985
subid, beta_file, ttst_file, beta_opts, ttst_opts = this_set
977986
if beta_opts:
978987
beta_file = "%s'%s'" % (beta_file, beta_opts)
@@ -986,11 +995,13 @@ def _format_arg(self, name, trait_spec, value):
986995

987996
return super(Mema, self)._format_arg(name, trait_spec, value)
988997

989-
990998
def _parse_inputs(self, skip=None):
991999
if skip is None:
9921000
skip = []
993-
return super(Mema, self)._parse_inputs(skip)
1001+
parsed = super(Mema, self)._parse_inputs(skip)
1002+
1003+
# TODO: Check groups
1004+
return parsed
9941005

9951006
def _list_outputs(self):
9961007
outputs = self.output_spec().get()

0 commit comments

Comments
 (0)