@@ -765,3 +765,129 @@ class MRResize(MRTrix3Base):
765
765
_cmd = "mrresize"
766
766
input_spec = MRResizeInputSpec
767
767
output_spec = MRResizeOutputSpec
768
+
769
+
770
+ class SHConvInputSpec (TraitedSpec ):
771
+ in_file = File (
772
+ exists = True ,
773
+ argstr = "%s" ,
774
+ mandatory = True ,
775
+ position = - 3 ,
776
+ desc = "input ODF image" ,
777
+ )
778
+
779
+ # General options
780
+ response = File (
781
+ exists = True ,
782
+ mandatory = True ,
783
+ argstr = "%s" ,
784
+ position = - 2 ,
785
+ desc = ("The response function" ),
786
+ )
787
+
788
+ out_file = File (
789
+ "sh.mif" ,
790
+ argstr = "%s" ,
791
+ mandatory = True ,
792
+ position = - 1 ,
793
+ usedefault = True ,
794
+ desc = "the output spherical harmonics" ,
795
+ )
796
+
797
+
798
+ class SHConvOutputSpec (TraitedSpec ):
799
+ out_file = File (exists = True ,
800
+ desc = "the output convoluted spherical harmonics file" )
801
+
802
+
803
+ class SHConv (CommandLine ):
804
+ """
805
+ Convert diffusion-weighted images to tensor images
806
+
807
+
808
+ Example
809
+ -------
810
+
811
+ >>> import nipype.interfaces.mrtrix3 as mrt
812
+ >>> tsr = mrt.SHConv()
813
+ >>> tsr.inputs.in_file = 'odf.mif'
814
+ >>> tsr.inputs.response = 'response.txt'
815
+ >>> tsr.inputs.grad_fsl = ('bvecs', 'bvals')
816
+ >>> tsr.cmdline # doctest: +ELLIPSIS
817
+ 'dwi2tensor -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif dti.mif'
818
+ >>> tsr.run() # doctest: +SKIP
819
+ """
820
+
821
+ _cmd = "shconv"
822
+ input_spec = SHConvInputSpec
823
+ output_spec = SHConvOutputSpec
824
+
825
+ def _list_outputs (self ):
826
+ outputs = self .output_spec ().get ()
827
+ outputs ["out_file" ] = op .abspath (self .inputs .out_file )
828
+ return outputs
829
+
830
+
831
+
832
+ class SH2AmpInputSpec (MRTrix3BaseInputSpec ):
833
+ in_file = File (
834
+ exists = True ,
835
+ argstr = "%s" ,
836
+ mandatory = True ,
837
+ position = - 3 ,
838
+ desc = "input ODF image" ,
839
+ )
840
+
841
+ # General options
842
+ directions = File (
843
+ exists = True ,
844
+ mandatory = True ,
845
+ argstr = "%s" ,
846
+ position = - 2 ,
847
+ desc = ("The directions along which to sample the function" ),
848
+ )
849
+
850
+ out_file = File (
851
+ "amp.mif" ,
852
+ argstr = "%s" ,
853
+ mandatory = True ,
854
+ position = - 1 ,
855
+ usedefault = True ,
856
+ desc = "the output spherical harmonics" ,
857
+ )
858
+
859
+ nonnegative = traits .Bool (
860
+ argstr = '-nonnegative' ,
861
+ desc = "cap all negative amplitudes to zero" )
862
+
863
+
864
+ class SH2AmpOutputSpec (TraitedSpec ):
865
+ out_file = File (exists = True ,
866
+ desc = "the output convoluted spherical harmonics file" )
867
+
868
+
869
+ class SH2Amp (MRTrix3Base ):
870
+ """
871
+ Convert diffusion-weighted images to tensor images
872
+
873
+
874
+ Example
875
+ -------
876
+
877
+ >>> import nipype.interfaces.mrtrix3 as mrt
878
+ >>> sha = mrt.SH2Amp()
879
+ >>> sha.inputs.in_file = 'odf.mif'
880
+ >>> sha.inputs.response = 'response.txt'
881
+ >>> sha.cmdline # doctest: +ELLIPSIS
882
+ 'dwi2tensor -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif dti.mif'
883
+ >>> sha.run() # doctest: +SKIP
884
+ """
885
+
886
+ _cmd = "sh2amp"
887
+ input_spec = SH2AmpInputSpec
888
+ output_spec = SH2AmpOutputSpec
889
+
890
+ def _list_outputs (self ):
891
+ outputs = self .output_spec ().get ()
892
+ outputs ["out_file" ] = op .abspath (self .inputs .out_file )
893
+ return outputs
0 commit comments