3
Xd8                 @   s  d dl Z d dljjjZd dlmZmZ d dlm	Z	 d dl
Z
d dlmZ e
jje dddd Ze
jjd	dd
d Ze
jjd	ddd Ze
jjd	ddd Ze
jjd	ddd Ze
jj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)Infono_fsl)	Undefined)create_files_in_directoryz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_|d |j_d|j_d|j_|jd|d |d |d |d f kstd S )NZdtifitr   zfoo.dti.nii   
   2   z9dtifit -k %s -o foo.dti.nii -m %s -r %s -b %s -Z 50 -z 10)fslZDTIFitcmdAssertionErrorpytestraises
ValueErrorruninputsZdwi	base_namemaskZbvecsZbvalsZmin_zZmax_zcmdline)r   filelistZoutdirdti r   V/var/www/html/virt/lib/python3.6/site-packages/nipype/interfaces/fsl/tests/test_dti.pytest_dtifit2   s    r   z;These tests are skipped until we clean up some of this codec           $   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_t| jj }d}t|j }||ks~tt jddd	d
dd}t|jj }d}t|j }||kstt j }|jddd}|jjdkstdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d<}xVt|j D ]F\}}	t jf d=d>d||	d? i}
|
j|
jd@ |	dA  ks.tq.W d S )^NZ	randomisez
infile.niioutfile
design.matz
infile.conz>randomise -i infile.nii -o outfile -d design.mat -t infile.coninfile2outfile2zinfile.fT   )input_4Doutput_rootname
f_contrastone_sample_gmeanint_seedz8randomise -i infile2 -o outfile2 -1 -f infile.f --seed=4infile3outfile3)r   r    z randomise -i infile3 -o outfile3-D-1-m inp_maskinp_mask-d design.mat-t input.con	input.con-f input.fts	input.fts-e design.grp
design.grp-q-Q-n 10r   -x--fonly-T--T2-c 0.20皙?-C 0.40皙?-F 0.10皙?-S 0.30333333?-v 0.20--quiet-R-P	--seed=20   --tfce_H=0.11)\(?--tfce_E=0.50      ?--tfce_C=0.30--vxl=1,2,3,41,2,3,4--vxf=6,7,8,9,3	6,7,8,9,3)demean_datar"   
mask_imagedesign_matrix
t_contrastr!   xchange_block_labelsprint_unique_permprint_info_parallelModenum_permutations
vox_pvalusfstats_onlythresh_free_clusterthresh_free_cluster_2Doptcluster_thresholdingcluster_mass_thresholdingfcluster_thresholdingfcluster_mass_thresholdingvariance_smoothingdiagnostics_off
output_rawoutput_perm_vectr#   TFCE_height_paramTFCE_extent_paramTFCE_connectivitylist_num_voxel_EVs_poslist_img_voxel_EVsinfilerootr   z -i infile -o root r   )r&   T)r'   T)r(   r)   )r*   r   )r+   r,   )r-   r.   )r/   r0   )r1   T)r2   T)r3   r   )r4   T)r5   T)r6   T)r7   T)r8   r9   )r:   r;   )r<   r=   )r>   r?   )r@   r9   )rA   T)rB   T)rC   T)rD   rE   )rF   rG   )rH   rI   )rJ   r?   )rK   rL   )rM   rN   )r
   Z	Randomiser   r   r   r   r   r   r   r   r    rQ   rR   sortedr   splitruntimelistitems)randactualCmdliner   desiredCmdlinerand2rand3resultsopt_mapnamesettingsrand4r   r   r   test_randomise2*   sr    ry   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_t| jj }d}t|j }||ks~tt jddd	d
dd}t|jj }d}t|j }||kstt j }|jddd}|jjdkstdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d8td9d:d;dg td9d:d;dgfd<td=d>d?d@d;g td=d>d?d@d;gfdA}xVt|j D ]F\}}	t jf dBdCd||	d9 i}
|
j|
jdD |	dE  ksrtqrW d S )`NZrandomise_parallelz
infile.niir   
design.matz
infile.conzGrandomise_parallel -i infile.nii -o outfile -d design.mat -t infile.conr   r   zinfile.fTr   )r   r    r!   r"   r#   zArandomise_parallel -i infile2 -o outfile2 -1 -f infile.f --seed=4r$   r%   )r   r    z)randomise_parallel -i infile3 -o outfile3-D-1-m inp_maskr)   -d design.mat-t input.con	input.con-f input.fts	input.fts-e design.grp
design.grp-q-Q-n 10r   -x--fonly-T--T2-c 0.20皙?-C 0.40皙?-F 0.10皙?-S 0.30333333?-v 0.20--quiet-R-P	--seed=20rE   --tfce_H=0.11)\(?--tfce_E=0.50      ?--tfce_C=0.30z--vxl=r         z--vxf=         	   )rO   r"   rP   rQ   rR   r!   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   r#   rc   rd   re   rf   rg   rh   ri   z -i infile -o root r   )r{   T)r|   T)r}   r)   )r~   rz   )r   r   )r   r   )r   r   )r   T)r   T)r   r   )r   T)r   T)r   T)r   T)r   r   )r   r   )r   r   )r   r   )r   r   )r   T)r   T)r   T)r   rE   )r   r   )r   r   )r   r   )r
   ZRandomise_parallelr   r   r   r   r   r   r   r   r    rQ   rR   rj   r   rk   rl   reprrm   rn   )ro   rp   r   rq   rr   rs   rt   ru   rv   rw   rx   r   r   r   test_Randomise_parallelz   sr    ",r   c              C   s   t j } | jdksttjt | j  W d Q R X dddg| j_	d| j_
| jdksXtt jddd	gd
}|jdksxtt j }|jdddgdd}|jjdkst|jjdkstt|jjj	tst|jjj
dkstd S )NZproj_threshZvol1Zvol2Zvol3r   zproj_thresh vol1 vol2 vol3 3r   ZvolaZvolb)	thresholdvolumeszproj_thresh vola volb 10Zinp1Zinp3Zinp2r   )r   r   zproj_thresh inp1 inp3 inp2 2r   )r
   Z
ProjThreshr   r   r   r   r   r   r   r   r   r   rl   
returncode
isinstance	interfacerm   )ZprojZproj2Zproj3rt   r   r   r   test_Proj_thresh   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_| jdksbtt jdddd	d
d}t|jj }d}t|j }||kstt j }|jddddd}|jjdkst|jjdkst|jjj	dkst|jjj
dkst|jjjdkst|jjjdks&td#d$d%d&d'd(d)d}xXt|j D ]H\}}	t jf dddd ||	d! i}
|
j|
jd" |	d  ksHtqHW d S )*NZvecregrh   r   ZMNI152ztmat.matz1vecreg -i infile -o outfile -r MNI152 -t tmat.matr   r   z	tmat2.matZnodif_brain_mask)rh   r   
refVolName
affineTmat	brainMaskzHvecreg -i infile2 -o outfile2 -r MNI152 -t tmat2.mat -m nodif_brain_maskr$   r%   z	tmat3.mat)rh   r   r   r   z4vecreg -i infile3 -o outfile3 -r MNI152 -t tmat3.matr   -vT-h--tensor-t TmatTmat
-w wrpFilewrpFile--interp=sincsinc-m maskr   )verboseZhelpDocZtensorr   ZwarpFileinterpolationr   )rh   r   r   r   z  -i infile -o outfile -r MNI152 )r   T)r   T)r   T)r   r   )r   r   )r   r   )r   r   )r
   ZVecRegr   r   r   r   r   r   r   rh   r   r   r   r   rj   rk   rl   r   r   rm   rn   )ZvrgZvrg2rp   r   rq   Zvrg3rt   ru   rv   rw   Zvrg4r   r   r   test_Vec_reg   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_
| jdksRtt jddd}|jdksntt j }|jd	d
d}|jjdkstd S )NZfind_the_biggestzseed*Zfbgfilezfind_the_biggest seed* fbgfilezseed2*Zfbgfile2)infilesr   z find_the_biggest seed2* fbgfile2Zseed3Zout3zfind_the_biggest seed3 out3)r
   ZFindTheBiggestr   r   r   r   r   r   r   r   r   r   rl   )ZfbgZfbg2Zfbg3rt   r   r   r   test_Find_the_biggest5  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_
|jdtjj|d ksltd|j_
|jdkstt jddd	}tjt |j  W d Q R X d
|j_d|j_d|j_|jdtjdtjj|df kstt|j_d|j_|jdtjj|d kstd S )NZtbss_skeletonr   Tztbss_skeleton -i a.nii -o %sza_skeleton.niizold_boney.niiz'tbss_skeleton -i a.nii -o old_boney.niiza.nii)in_fileZproject_datag?zb.niiz1tbss_skeleton -i a.nii -p 0.200 b.nii %s b.nii %szLowerCingulum_1mm.nii.gzzb_skeletonised.niiz4tbss_skeleton -i a.nii -p 0.200 b.nii a.nii b.nii %s)r
   ZTractSkeletonr   r   r   r   r   r   r   r   Zskeleton_filer   ospathjoinr   Zdistance_mapZ	data_filer   Zstandard_imager   Zuse_cingulum_maskZsearch_mask_file)r   ZskeletorfilesnewdirZbonesr   r   r   test_tbss_skeletonQ  s2    r   c             C   s   t j }| \}}|jdksttjt |j  W d Q R X d|j_	|j
dtjj|d ks`td|j_|j
dtjj|dtjj|df kstd|j_|j
d	tjj|d kstd S )
NZdistancemapza.niizdistancemap --out=%s --in=a.niiza_dstmap.niiTz-distancemap --out=%s --in=a.nii --localmax=%sza_lclmax.niizmax.niiz2distancemap --out=%s --in=a.nii --localmax=max.nii)r
   ZDistanceMapr   r   r   r   r   r   r   r   r   r   r   r   Zlocal_max_file)r   Zmapperr   r   r   r   r   test_distancemap  s     r   )r   Znipype.interfaces.fsl.dtiZ
interfacesr
   r   Znipype.interfaces.fslr   r   Znipype.interfaces.baser   r   Znipype.testing.fixturesr   markZskipifr   Zxfailry   r   r   r   r   r   r   r   r   r   r   <module>   s   PP K6