3
XdP                 @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 ej
jej dddd	 Zej
jej ddd
d Zej
jej dddd Zej
jej dddd Zej
jej dddd Zdd ZdS )    N)create_files_in_directory)
freesurfer)Info)LooseVersionzfreesurfer is not installed)reasonc             C   s   | \}}t j }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 d d |d |d f kstt j|d |d dddd	}|jd
tjj||d d d |d |d f kstd S )NZmri_robust_registerr      TzGmri_robust_register --satit --lta %s/%s_robustreg.lta --mov %s --dst %s   g      @zfoo.lta)source_filetarget_fileZoutlier_sensZout_reg_fileZ	half_targzYmri_robust_register --halfdst %s_halfway.nii --lta foo.lta --sat 3.0000 --mov %s --dst %sr   )r   ZRobustRegisterosgetcwdcmdAssertionErrorpytestraises
ValueErrorruninputsr	   r
   Z	auto_senscmdlinepathjoin)r   filelistoutdirregcwdZreg2 r   d/var/www/html/virt/lib/python3.6/site-packages/nipype/interfaces/freesurfer/tests/test_preprocess.pytest_robustregister   s*    (r   c             C   s   | \}}t j }|jdksttjt |j  W d Q R X ||j_	||j_
|jd|d |d |f ksltt j|ddgddg|d	}|jd
dd|d dd|d |f kstd S )NZmri_ms_fitparmszmri_ms_fitparms  %s %s %sr   r   g      ?g      @      )in_filesZte_listZ	flip_listout_dirz=mri_ms_fitparms  -te %.3f -fa %.1f %s -te %.3f -fa %.1f %s %sg      4@g      >@)r   ZFitMSParamsr   r   r   r   r   r   r   r!   r"   r   )r   r   r   ZfitZfit2r   r   r   test_fitmsparams5   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_|jd|d |d tjj|df kstt j|d |d dd	d
d}|jd|d |d tjj|df kstd S )NZmri_synthesizer   r   r    g      @r   z)mri_synthesize 20.00 30.00 4.500 %s %s %szsynth-flash_30.mgz      )t1_imagepd_image
flip_angletetrz)mri_synthesize 25.00 20.00 5.000 %s %s %szsynth-flash_20.mgz)r   ZSynthesizeFLASHr   r   r   r   r   r   r   r&   r'   r(   r)   r*   r   r   r   r   )r   r   r   ZsynZsyn2r   r   r   test_synthesizeflashU   s$    $r+   c             C   s   | \}}t j }|jdksttjt |j W d Q R X |d |j_	t
jjt
jj|d \}}|dkrt
jj|\}}|| }|jd|d ||f kstd|j_|jd|d  kstt j|d ddd	}|jd
|d  kstd S )Nzmri_nu_correct.mnir   z.gzz/mri_nu_correct.mni --i %s --n 4 --o %s_output%sznew_corrected_file.mgzz:mri_nu_correct.mni --i %s --n 4 --o new_corrected_file.mgzZbias_corrected_output   )in_fileout_fileZ
iterationsz9mri_nu_correct.mni --i %s --n 2 --o bias_corrected_output)r   ZMNIBiasCorrectionr   r   r   r   r   r   r   r-   r   r   splitextbasenamer.   )r   r   r   ZmnibaseextZext2Zmni2r   r   r   test_mandatory_outvolx   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_tj tdk rtjt |j W d Q R X n|j d|j_tjjtjj|d \}}|dkrtjj|\}}|jdj|d |d	kstd S )
NZ
bbregisterZ	fsaverager   t2z6.0.0Zfslz.gzzVbbregister --t2 --init-fsl --reg {base}_bbreg_fsaverage.dat --mov {full} --s fsaverage)fullr1   )r   Z
BBRegisterr   r   r   r   r   r   r   Z
subject_idr	   Zcontrast_typer   Zlooseversionr   initr   r   r/   r0   format)r   r   r   Zbbrr1   r2   _r   r   r   test_bbregister   s&    r9   c               C   s.   t tjjtstttjjtdks*tdS )zGCheck that FSVersion is a string that can be compared with LooseVersion0N)
isinstancer   
preprocessZ	FSVersionstrr   r   r   r   r   r   test_FSVersion   s    r>   )r   r   Znipype.testing.fixturesr   Znipype.interfacesr   Znipype.interfaces.freesurferr   Znipyper   markZskipifZno_freesurferr   r#   r+   r3   r9   r>   r   r   r   r   <module>   s   ' #&$