3
Xd)                 @   s@  d dl Z d dlZd dlZd dlZd dljjj	Zd dl
mZmZ d dlmZ ejje dddd Zejje dddd	 Zejje ddd
d Zejje dddd Zejje dddd Zdd Zejje dddd Zejje dddd Zejje dddd Zejje dddd ZdS )    N)no_fslInfo)*create_files_in_directory_plus_output_typezfsl is not installed)reasonc             C   s   | \}}}t j }|jdks ttjt |j  W d Q R X |d |j_	d|j_
d|j_d|j_|jd|d  ksxtt j|d dddd	d
ddddd
}|jd|d  kstd S )NZfslroir   zfoo_roi.nii
      zfslroi %s foo_roi.nii 10 20zfoo2_roi.nii(            )
in_fileroi_filet_mint_sizeZx_minZx_sizeZy_minZy_sizeZz_minZz_sizez,fslroi %s foo2_roi.nii 3 30 40 10 5 20 20 40)fslZ
ExtractROIcmdAssertionErrorpytestraises
ValueErrorruninputsr   r   r   r   cmdline)r   filelistoutdir_ZroiZroi2 r   X/var/www/html/virt/lib/python3.6/site-packages/nipype/interfaces/fsl/tests/test_utils.pytest_fslroi   s,    
r   c             C   s   | \}}}t j }|jdks ttjt |j  W d Q R X ||j_	d|j_
d|j_d|j_|jddj| ksvtd|j_|jddj|df kstt j|ddddd	}|jddj|df kstd S )
NZfslmergezfoo_merged.niitZNIFTIzfslmerge -t foo_merged.nii %s g      @z#fslmerge -tr foo_merged.nii %s %.2f)in_filesmerged_file	dimensionoutput_typetr)r   ZMerger   r   r   r   r   r   r   r!   r"   r#   r$   r   joinr%   )r   r   r   r   ZmergerZmerger2r   r   r   test_fslmerge8   s.    
r'   c             C   s   | \}}}t j }|jdks ttjt |j  W d Q R X |d |j_	d|j_
d|j_|jd|d  ksptt j|d ddd}|jd	|d  kstd S )
NZfslmathsr   z-add 2.5 -mul input_volume2zfoo_math.niiz4fslmaths %s -add 2.5 -mul input_volume2 foo_math.niiz-add 2.5zfoo2_math.nii)r   	op_stringout_filez"fslmaths %s -add 2.5 foo2_math.nii)r   Z
ImageMathsr   r   r   r   r   r   r   r   r(   r)   r   )r   r   r   r   mathZmath2r   r   r   test_fslmathsh   s    
r+   c             C   s   | \}}}t j }|jdks ttjt |j  W d Q R X |d |j_	d|j_
|d |j_d|j_d|j_d|j_|jd|d |d |d f kstt j|d d|d dd	d
}|jd|d |d f kstd S )Noverlayr         @r      Tzfoo_overlay.niiz?overlay 1 0 %s -a %s 2.50 10.00 %s -2.50 -10.00 foo_overlay.niizfoo2_overlay.nii)
stat_imagestat_threshbackground_imageauto_thresh_bgr)   z0overlay 1 0 %s -a %s 2.50 10.00 foo2_overlay.nii)r-   r   )r-   r   )r   ZOverlayr   r   r   r   r   r   r   r/   r0   r1   r2   Zshow_negative_statsr)   r   )r   r   r   r   r,   Zoverlay2r   r   r   test_overlay   s.    
r3   c             C   s   | \}}}t j }|jdks ttjt |j  W d Q R X |d |j_	|d |j_
d|j_d|j_d|j_d|j_|jd	|d |d f kstt j|d dd
dd}|jd|d  kstd S )Nslicerr   r.         $@      4@Ti  zfoo_bar.pngz4slicer %s %s -L -i 10.000 20.000  -A 750 foo_bar.pngFzfoo_bar2.png)r   Zmiddle_slicesZlabel_slicesr)   zslicer %s   -a foo_bar2.png)r5   r6   )r   ZSlicerr   r   r   r   r   r   r   r   Zimage_edgesZintensity_rangeZ	all_axialZimage_widthr)   r   )r   r   r   r   r4   Zslicer2r   r   r   test_slicer   s(    
r7   c               C   s4   t jdt jjdd t jdt jjdd ddgS )Nza.par   r	   zb.par)npZsavetxtrandomZrandr   r   r   r   create_parfiles   s    r;   c             C   s   | \}}}t  }tj }|jdks&ttjt |j  W d Q R X |d |j	_
dddg|j	_d|j	_d|j	_d|j	_|jd	|d  ksttj|d
ddd}|jdt| kstd S )N
fsl_tsplotr   xyzr.   z	test plotzfoo.pngzJfsl_tsplot -i %s -a x,y,z -o foo.png -t 'test plot' -u 1 --ymin=0 --ymax=1z
test2 plot   r   zbar.png)r   titleZ
plot_ranger)   zHfsl_tsplot -i %s,%s -o bar.png --start=2 --finish=5 -t 'test2 plot' -u 1)r   r.   )r@   r   )r;   r   ZPlotTimeSeriesr   r   r   r   r   r   r   r   labelsZy_rangerA   r)   r   tuple)r   r   r   r   parfilesplotterplotter2r   r   r   test_plottimeseries   s&    
rG   c             C   s   | \}}}t  }tj }|jdks&ttjt |j  W d Q R X |d |j	_
d|j	_d|j	_d|j	_|jd|d  ks~ttj|d dd	d
d}|jd|d  kstd S )Nr<   r   r   Z	rotationszfoo.pngzdfsl_tsplot -i %s -o foo.png -t 'MCFLIRT estimated rotations (radians)' --start=1 --finish=3 -a x,y,zr.   ZspmZtranslationszbar.png)r   	in_source	plot_typer)   zbfsl_tsplot -i %s -o bar.png -t 'Realign estimated translations (mm)' --start=1 --finish=3 -a x,y,z)r;   r   ZPlotMotionParamsr   r   r   r   r   r   r   r   rH   rI   r)   r   )r   r   r   r   rD   rE   rF   r   r   r   test_plotmotionparams  s*    
rJ   c             C   s   | \}}}t j }|jdks ttjt |j  W d Q R X |d |j_	d|j_
d|j_|jd|d  ksptt j|d |d ddd}|jd	|d |d f kstd S )
NZconvert_xfmr   Tzfoo.matz%convert_xfm -omat foo.mat -inverse %sr.   zbar.mat)r   Zin_file2Z
concat_xfmr)   z'convert_xfm -omat bar.mat -concat %s %s)r   Z
ConvertXFMr   r   r   r   r   r   r   r   Z
invert_xfmr)   r   )r   r   r   r   cvtZcvt2r   r   r   test_convertxfm&  s    
rL   c          
   C   s   | \}}}t j }|jdks tt|d dtddg}x6|D ].}t jf |}tjt |j  W d Q R X q>W |d |j	_
d|j	_|jdtjjtjj|d	|  kstd
|j	_|jdkstd S )NZ
fslswapdimr   )r   r=   r>   r?   )new_dimszfslswapdim a.nii x y z %sza_newdims%szb.niizfslswapdim a.nii x y z b.nii)r=   r>   r?   )r=   r>   r?   )r   ZSwapDimensionsr   r   dictr   r   r   r   r   r   rM   r   ospathrealpathr&   r)   )r   filesZtestdirZout_extZswapargsargZwontrunr   r   r   test_swapdimsB  s    

rU   )rO   Znumpyr9   Znibabelnbr   Znipype.interfaces.fsl.utilsZ
interfacesr   utilsZnipype.interfaces.fslr   r   Znipype.testing.fixturesr   markZskipifr   r'   r+   r3   r7   r;   rG   rJ   rL   rU   r   r   r   r   <module>   s    '0"*"	#$