@@ -587,7 +587,7 @@ class EddyInputSpec(FSLCommandInputSpec):
587
587
default_value = "eddy_corrected" ,
588
588
usedefault = True ,
589
589
argstr = "--out=%s" ,
590
- desc = "basename for output (warped) image" ,
590
+ desc = "Basename for output image" ,
591
591
)
592
592
session = File (
593
593
exists = True ,
@@ -598,45 +598,39 @@ class EddyInputSpec(FSLCommandInputSpec):
598
598
exists = True ,
599
599
argstr = "--topup=%s" ,
600
600
requires = ["in_topup_movpar" ],
601
- desc = "topup file containing the field coefficients" ,
601
+ desc = "Topup results file containing the field coefficients" ,
602
602
)
603
603
in_topup_movpar = File (
604
- exists = True , requires = ["in_topup_fieldcoef" ], desc = "topup movpar.txt file"
605
- )
606
- field = File (
607
- argstr = "--field=%s" ,
608
- desc = (
609
- "NonTOPUP fieldmap scaled in Hz - filename has "
610
- "to be provided without an extension. TOPUP is "
611
- "strongly recommended"
612
- ),
613
- )
614
- field_mat = File (
615
- exists = True , requires = ["in_topup_fieldcoef" ], desc = "topup movpar.txt file"
616
- )
617
- field = File (
618
- argstr = "--field=%s" ,
619
- desc = (
620
- "NonTOPUP fieldmap scaled in Hz - filename has "
621
- "to be provided without an extension. TOPUP is "
622
- "strongly recommended"
623
- ),
604
+ exists = True ,
605
+ requires = ["in_topup_fieldcoef" ],
606
+ desc = "Topup results file containing the movement parameters" ,
624
607
)
608
+ field = File (argstr = "--field=%s" , desc = ("Non-topup derived fieldmap scaled in Hz" ))
625
609
field_mat = File (
626
610
exists = True ,
627
611
argstr = "--field_mat=%s" ,
628
612
desc = (
629
- "Matrix that specifies the relative locations of "
630
- "the field specified by --field and first volume "
631
- "in file --imain"
613
+ "Matrix specifying the relative positions of "
614
+ "the fieldmap, --field, and the first volume "
615
+ "of the input file, --imain"
632
616
),
633
617
)
634
618
635
619
flm = traits .Enum (
636
- "linear" , "quadratic" , "cubic" , argstr = "--flm=%s" , desc = "First level EC model"
620
+ "quadratic" ,
621
+ "linear" ,
622
+ "cubic" ,
623
+ usedefault = True ,
624
+ argstr = "--flm=%s" ,
625
+ desc = "First level EC model" ,
637
626
)
638
627
slm = traits .Enum (
639
- "none" , "linear" , "quadratic" , argstr = "--slm=%s" , desc = "Second level EC model"
628
+ "none" ,
629
+ "linear" ,
630
+ "quadratic" ,
631
+ usedefault = True ,
632
+ argstr = "--slm=%s" ,
633
+ desc = "Second level EC model" ,
640
634
)
641
635
fep = traits .Bool (
642
636
False , argstr = "--fep" , desc = "Fill empty planes in x- or y-directions"
@@ -650,6 +644,7 @@ class EddyInputSpec(FSLCommandInputSpec):
650
644
interp = traits .Enum (
651
645
"spline" ,
652
646
"trilinear" ,
647
+ usedefault = True ,
653
648
argstr = "--interp=%s" ,
654
649
desc = "Interpolation model for estimation step" ,
655
650
)
@@ -676,6 +671,8 @@ class EddyInputSpec(FSLCommandInputSpec):
676
671
desc = "Do NOT perform a post-eddy alignment of " "shells" ,
677
672
)
678
673
fwhm = traits .Float (
674
+ default_value = 0.0 ,
675
+ usedefault = True ,
679
676
desc = ("FWHM for conditioning filter when estimating " "the parameters" ),
680
677
argstr = "--fwhm=%s" ,
681
678
)
@@ -685,6 +682,7 @@ class EddyInputSpec(FSLCommandInputSpec):
685
682
method = traits .Enum (
686
683
"jac" ,
687
684
"lsr" ,
685
+ usedefault = True ,
688
686
argstr = "--resamp=%s" ,
689
687
desc = ("Final resampling method (jacobian/least " "squares)" ),
690
688
)
@@ -743,40 +741,41 @@ class EddyInputSpec(FSLCommandInputSpec):
743
741
mporder = traits .Int (
744
742
argstr = "--mporder=%s" ,
745
743
desc = "Order of slice-to-vol movement model" ,
746
- requires = ["slspec" ],
747
744
min_ver = "5.0.11" ,
748
745
)
749
746
s2v_niter = traits .Int (
750
747
argstr = "--s2v_niter=%s" ,
751
748
desc = "Number of iterations for slice-to-vol" ,
752
- requires = ["slspec " ],
749
+ requires = ["mporder " ],
753
750
min_ver = "5.0.11" ,
754
751
)
755
752
s2v_lambda = traits .Int (
756
753
agstr = "--s2v_lambda" ,
757
754
desc = "Regularisation weight for slice-to-vol movement (reasonable range 1-10)" ,
758
- requires = ["slspec " ],
755
+ requires = ["mporder " ],
759
756
min_ver = "5.0.11" ,
760
757
)
761
758
s2v_interp = traits .Enum (
762
759
"trilinear" ,
763
760
"spline" ,
764
761
argstr = "--s2v_interp=%s" ,
765
762
desc = "Slice-to-vol interpolation model for estimation step" ,
766
- requires = ["slspec " ],
763
+ requires = ["mporder " ],
767
764
min_ver = "5.0.11" ,
768
765
)
769
766
slspec = traits .File (
770
767
exists = True ,
771
768
argstr = "--slspec=%s" ,
772
769
desc = "Name of text file completely specifying slice/group acquisition" ,
770
+ requires = ["mporder" ],
773
771
xor = ["json" ],
774
772
min_ver = "5.0.11" ,
775
773
)
776
774
json = traits .File (
777
775
exists = True ,
778
776
argstr = "--json=%s" ,
779
777
desc = "Name of .json text file with information about slice timing" ,
778
+ requires = ["mporder" ],
780
779
xor = ["slspec" ],
781
780
min_ver = "6.0.1" ,
782
781
)
@@ -955,14 +954,18 @@ class Eddy(FSLCommand):
955
954
Running eddy on an Nvidia GPU using cuda:
956
955
>>> eddy.inputs.use_cuda = True
957
956
>>> eddy.cmdline # doctest: +ELLIPSIS
958
- 'eddy_cuda --ff=10.0 --fwhm=0 --acqp=epi_acqp.txt --bvals=bvals.scheme \
959
- --bvecs=bvecs.scheme --imain=epi.nii --index=epi_index.txt \
960
- --mask=epi_mask.nii --niter=5 --nvoxhp=1000 --out=.../eddy_corrected'
957
+ 'eddy_cuda --flm=quadratic --ff=10.0 --fwhm=0.0 \
958
+ --acqp=epi_acqp.txt --bvals=bvals.scheme --bvecs=bvecs.scheme \
959
+ --imain=epi.nii --index=epi_index.txt --mask=epi_mask.nii \
960
+ --interp=spline --resamp=jac --niter=5 --nvoxhp=1000 \
961
+ --out=.../eddy_corrected --slm=none'
961
962
>>> eddy.inputs.use_cuda = False
962
963
>>> eddy.cmdline # doctest: +ELLIPSIS
963
- 'eddy_openmp --ff=10.0 --fwhm=0 --acqp=epi_acqp.txt --bvals=bvals.scheme \
964
- --bvecs=bvecs.scheme --imain=epi.nii --index=epi_index.txt \
965
- --mask=epi_mask.nii --niter=5 --nvoxhp=1000 --out=.../eddy_corrected'
964
+ 'eddy_openmp --flm=quadratic --ff=10.0 --fwhm=0.0 \
965
+ --acqp=epi_acqp.txt --bvals=bvals.scheme --bvecs=bvecs.scheme \
966
+ --imain=epi.nii --index=epi_index.txt --mask=epi_mask.nii \
967
+ --interp=spline --resamp=jac --niter=5 --nvoxhp=1000 \
968
+ --out=.../eddy_corrected --slm=none'
966
969
>>> res = eddy.run() # doctest: +SKIP
967
970
"""
968
971
0 commit comments