#!/usr/bin/python """ This is the main program used to run the registration methods for the paper (http://www.mindboggle.info/papers/): "Evaluation of 14 nonlinear deformation algorithms applied to human brain MRI registration" NeuroImage (2009), doi:10.1016/j.neuroimage.2008.12.037 by Arno Klein, Jesper Andersson, Babak A. Ardekani, John Ashburner, Brian Avants, Ming-Chang Chiang, Gary E. Christensen, D. Louis Collins, James Gee, Pierre Hellier, Joo Hyun Song, Mark Jenkinson, Claude Lepage, Daniel Rueckert, Paul Thompson, Tom Vercauteren, Roger P. Woods, J. John Mann, and Ramin V. Parsey. (c) 2008, @rno klein """ import sys import os import os.path #-------------------------------------------------------------------------------------------------------- # Prepare each brain/atlas (resulting files are moved to different folders before running registrations): #-------------------------------------------------------------------------------------------------------- # See PREPREP scripts in Utilities/prep_utilities.py for original atlas prep # create masks: Run Utilities/fill_atlases.m to create atlas masks # extract brains: Run Utilities/mask_brains.m to mask heads to extract brains datapath = '/Users/arno/Desktop/piece-of-mind/registration_study/' coreg_brain = os.path.join( datapath, 'Atlases/Atlas_coreg/MNI152_T1_1mm_brain' ) #'/usr/local/fsl/etc/standard/MNI152_T1_1mm_brain.nii'; fix_pixdim = 0 # FSL makes the x pixdim negative, even if the image is LR -- fix fix_pixdim2 = 0 # FSL makes the x pixdim negative, even if the image is LR -- fix flip_atlas2 = 0 # (not necessary: HAMMER pairwise consistent and SPM (delete) orientation okay) flip_brain = 0 # (not necessary: HAMMER pairwise consistent and SPM (delete) orientation okay) flip_reg_brain = 0 # (not necessary: HAMMER pairwise consistent and SPM (delete) orientation okay) mri_surf2vol = 0 # convert Freesurfer surface to volume xfm_surfs = 0 #----------------- # PREP conversions (ANIMAL) #----------------- convert_mnc = 0 # ANIMAL: convert brains to minc (after running run_flirt2MNI below) convert_reg_mnc = 0 # ANIMAL: convert linearly registered brains to minc (after running run_flirt below) convert_atlas_mnc = 0 # ANIMAL atlases convert_uint8 = 0 # convert datatype to uint8 #----------- # PREP Romeo #----------- convert_intcorr = 0 # intensity correction convert_intcorr2 = 0 # intensity correction #--------- # PREP SPM (Normalize direct) #--------- smooth_brain = 0 # SPM: smooth brains (after running run_flirt2MNI below) #----------- # PREP SICLE #----------- # pad brains: Run Utilities/pad_brains.m prep_sicle = 0; # Prepare a parameter file for each image pair (Christensen's SICLE) if prep_sicle==1: cmd='output = open('+datapath+'\'SICLE/data_aliases\',\'a\')'; os.system(cmd) #------------ # PREP HAMMER #------------ # pad brains: Run Utilities/pad_brains.m # segmentations: Run Utilities/combine_segmentations.m to combine SPM2/manual segmentations for HAMMER seg_brain = 0 # FSL's FAST (on Mensh brains) xfm_seg_brain1 = 0 # Apply FLIRT xfms (to MNI space) to segmented brains (from run_flirt2MNI) # OR Apply AIR xfms (to MNI "delineation" space) to segmented brains if LONI brains xfm_seg_brain2 = 0 # Apply FLIRT xfms (to MNI space) to segmented & registered brains (from run_flirt) convert_analyze1 = 0 # Convert files to Analyze format (modify path & file in code to specify) convert_analyze2 = 0 # Convert registered files to Analyze format (modify path & file in code to specify) pad_brain1 = 0 # USED UTILITIES/PAD_BRAINS.M INSTEAD... TEST FIRST! Pad brain with zeros pad_brain2 = 0 # USED UTILITIES/PAD_BRAINS.M INSTEAD... Pad brain with zeros (registered brains from run_flirt) #-------------------------------------------------------------------------------------------------------- # LABEL HEADS/BRAINS IN MNI SPACE #-------------------------------------------------------------------------------------------------------- run_first = 0 run_freesurfer = 0 run_freesurfer_brain = 0 #-------------------------------------------------------------------------------------------------------- # REGISTER BRAINS TO MNI SPACE (and inverse) #-------------------------------------------------------------------------------------------------------- run_flirt2MNI = 0 run_flirt2MNI_inv = 0 #-------------------------------------------------------------------------------------------------------- # REGISTER BRAINS IN MNI SPACE #-------------------------------------------------------------------------------------------------------- run_flirt = 0 run_air = 0 run_air2 = 0 # 2nd attempt without alignlinear for failed registrations run_animal = 0 run_itk = 0 # (l by Rueckert, confirmed) run_sicle = 0 # Run "run_warps_local.py" from within the ./SICLE directory (symbolic link to this file) run_art = 0 # (Linux) run_hammer = 0 # (Linux) fix_hammer_xfm = 0 # (Linux) - Apply transform (only if accidentally transformed wrong labels) run_hammer_correctlabel = 0 # (Linux) - run correctlabel on hammer results run_fluid = 0 # (all at LONI) run_fluid_hdr = 0 # copy header files after xfm_atlas_fluid finished run_fnirt = 0 run_romeo = 0 run_pasha = 0 run_demons = 0 run_syn = 1 pre_syn = 1 # (=1 for failures (in l)) #-------------------------------------------------------------------------------------------------------- # TRANSFORM HEADS TO MNI SPACE (SPM) #-------------------------------------------------------------------------------------------------------- xfm_head_flirt2MNI = 0 #-------------------------------------------------------------------------------------------------------- # TRANSFORM LABELS TO MNI SPACE #-------------------------------------------------------------------------------------------------------- xfm_atlas_flirt2MNI = 0 # All below use these results #-------------------------------------------------------------------------------------------------------- # TRANSFORM HEADS IN MNI SPACE #-------------------------------------------------------------------------------------------------------- # Did not compose flirt transforms (to & in MNIspace, except for 'l' brains) xfm_head_flirt = 0 xfm_head_flirt2 = 0 #-------------------------------------------------------------------------------------------------------- # TRANSFORM LABELS IN MNI SPACE #-------------------------------------------------------------------------------------------------------- # Did not compose flirt transforms (to & in MNIspace, except for 'l' brains) xfm_atlas_flirt = 0 # All below use these results xfm_atlas_air = 0 # xfm_atlas_animal = 0 # NOTE: round labels (matlab: convert_labels2.m) xfm_atlas_animal_flip = 0 # NO NEED (flip L-R for 'l') xfm_atlas_sicle = 0 # PADDED xfm_atlas_art = 0 # (c,g,m,l on gaba2 Linux) xfm_atlas_fluid = 0 # (on LONI) xfm_atlas_fnirt = 0 # xfm_atlas_fnirt_test = 0 # xfm_atlas_itk = 0 # xfm_atlas_pasha = 0 # xfm_atlas_demons = 0 # xfm_atlas_syn = 0 # #---------- # Filenames #---------- files = ['g1','g2','g3','g4','g5','g6','g7','g8','g9','g10'] files = ['m1','m2','m3','m4','m5','m6','m7','m8','m9','m10','m11','m12'] files = ['c1','c2','c3','c4','c5','c6','c7','c8','c9','c10','c11','c12','c13','c14','c15','c16','c17','c18'] files = ['l1','l2','l3','l4','l5','l6','l7','l8','l9','l10','l11','l12','l13','l14','l15','l16','l17','l18','l19','l20','l21','l22','l23','l24','l25','l26','l27','l28','l29','l30','l31','l32','l33','l34','l35','l36','l37','l38','l39','l40'] files2 = files #files = ['l1'] #files2 = ['l10'] #------------ # Directories #------------ code_dir = '../Programs/' #os.curdir+'' atlas_dir = os.path.join( datapath, 'Atlases/Atlases/') atlas_dir_RL = os.path.join( datapath, 'Atlases/Atlases_RL/') atlas_dir_RL2 = os.path.join( datapath, 'Atlases/Atlases_RL2/') atlas_dir_mni = os.path.join( datapath, 'Atlases/Atlases_MNIspace/') atlas_dir_mni_6dof = os.path.join( datapath, 'Atlases/Atlases_MNIspace_reglinear/') atlas_dir_mni_6dof_mnc = os.path.join( datapath, 'Atlases/Atlases_MNIspace_reglinear_mnc/') atlas_dir_mni_6dof_char = os.path.join( datapath, 'Atlases/Atlases_MNIspace_reglinear_uint8/') atlas_dir_mni_6dof_pad = os.path.join( datapath, 'Atlases/Atlases_MNIspace_reglinear_uint8_pad/') head_dir = os.path.join( datapath, 'Heads/Heads/') head_dir_mni = os.path.join( datapath, 'Heads/Heads_MNIspace/') head_dir_mni_reg = os.path.join( datapath, 'Heads/Heads_MNIspace_reglinear/') head_dir_RL = os.path.join( datapath, 'Heads/Heads_RL/') head_dir_seg = os.path.join( datapath, 'Heads/Heads_seg/') surf_dir = os.path.join( datapath, 'Surfaces/Surfaces/') surf2mni_dir = os.path.join( datapath, 'Surfaces/Surfaces_MNIspace/') brain_dir = os.path.join( datapath, 'Brains/Brains/') brain2mni_dir = os.path.join( datapath, 'Brains/Brains_MNIspace/') brain2mni_dir_intcorr = os.path.join( datapath, 'Brains/Brains_MNIspace_intcorr/') brain2mni_dir_mnc = os.path.join( datapath, 'Brains/Brains_MNIspace_mnc/') brain2mni_dir_sm = os.path.join( datapath, 'Brains/Brains_MNIspace_8mm/') brain2mni_dir_char= os.path.join( datapath, 'Brains/Brains_MNIspace_uint8/') brain2mni_dir_pad = os.path.join( datapath, 'Brains/Brains_MNIspace_uint8_pad/') brain_reg_dir = os.path.join( datapath, 'Brains/Brains_MNIspace_reglinear/') brain_reg_dir_intcorr = os.path.join( datapath, 'Brains/Brains_MNIspace_reglinear_intcorr/') brain_reg_dir_seg = os.path.join( datapath, 'Brains/Brains_MNIspace_reglinear_seg/') brain_reg_dir_mnc = os.path.join( datapath, 'Brains/Brains_MNIspace_reglinear_mnc/') brain_reg_dir_char= os.path.join( datapath, 'Brains/Brains_MNIspace_reglinear_uint8/') brain_reg_dir_pad = os.path.join( datapath, 'Brains/Brains_MNIspace_reglinear_uint8_pad2/') brain_dir_seg = os.path.join( datapath, 'Brains/Brains_seg/') brain2mni_dir_seg = os.path.join( datapath, 'Brains/Brains_seg_MNIspace/') brain2mni_dir_seg_pad = os.path.join( datapath, 'Brains/Brains_seg_MNIspace_pad/') brain_reg_dir_seg_pad = os.path.join( datapath, 'Brains/Brains_seg_MNIspace_reglinear_pad/') xfm_dir = os.path.join( datapath, 'Transforms/') xfm_atlas_dir = os.path.join( datapath, 'Transformed_Atlases/') #------------------- # Loop through files #------------------- ifile = -1 for file in files: ifile+=1 PREP = 1 if PREP==1: if seg_brain==1: if 'm' in file: cmd = 'fast ' + brain_dir+file print cmd; os.system(cmd) if xfm_seg_brain1==1: if 'l' in file: cmd1 = 'reslice ' + xfm_dir+'AIR_linear_MNIspace_Inv/'+file+'_native_to_MNI.air ' + brain2mni_dir_seg+file+'.img ' + ' -a ' + brain_dir_seg+file+'.img -n 0 -o' print cmd1; os.system(cmd1) else: cmd1 = 'fslorient -deleteorient ' + brain_dir_seg+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + brain_dir_seg+file print cmd1; os.system(cmd1) f_in = ' -in ' + brain_dir_seg+file f_ref = ' -ref ' + coreg_brain f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat ' f_out = ' -out ' + brain2mni_dir_seg+file f_par = ' -paddingsize 0.0 -interp nearestneighbour ' f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + brain2mni_dir_seg+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + brain2mni_dir_seg+file print cmd1; os.system(cmd1) flip_xfmd_seg_brain1=0 if flip_xfmd_seg_brain1==1: cmd1 = 'fslchfiletype NIFTI ' + brain2mni_dir_seg_RL_pad+file print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + brain2mni_dir_seg_RL_pad+file print cmd1; os.system(cmd1) cmd1 = 'fslswapdim ' + brain2mni_dir_seg_RL_pad+file + ' -x y z ' + brain2mni_dir_seg_RL_pad+file print cmd1; os.system(cmd1) cmd1 = 'rm ' + brain2mni_dir_seg_RL_pad+file+'.nii' print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + brain2mni_dir_seg_RL_pad+file+'.nii' print cmd1; os.system(cmd1) if flip_brain==1: flip_dir_in = surf_dir #atlas_dir_RL2 #head_dir #brain2mni_dir_seg_pad flip_dir = surf_dir+'temp/' #atlas_dir_RL #head_dir_RL #brain2mni_dir_seg_pad cmd1 = 'fslswapdim ' + flip_dir_in+file + ' -x y z ' + flip_dir+file #cmd1 = '/usr/local/AIR5.2.5/bin/reorient ' + flip_dir+file + ' ' + flip_dir+file + ' x o ' print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + flip_dir+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + flip_dir+file print cmd1; os.system(cmd1) if smooth_brain==1: #cmd = 'fslmaths ' + brain2mni_dir_RL+file + ' -s 8 ' + brain2mni_dir_sm+file cmd = '/usr/local/AIR5.2.5/bin/gsmooth ' + brain2mni_dir+file + ' 8 8 8 ' + brain2mni_dir_sm+file + ' -r' print cmd; os.system(cmd) #------------------------ # Run 1-pre-brain scripts #------------------------ if run_flirt2MNI==1: cmd1 = 'fslchfiletype NIFTI ' + brain2mni_dir+file print cmd1; os.system(cmd1) f_in = ' -in ' + brain_dir+file f_ref = ' -ref ' + coreg_brain f_mat = ' -omat ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat ' f_out = ' -out ' + brain2mni_dir+file f_opt1 = ' -bins 256 -cost corratio ' f_opt2 = ' -searchrx -90 90 -searchry -90 90 -searchrz -90 90 ' f_opt3 = ' -dof 9 -interp trilinear ' f_cmd = 'flirt' + f_in + f_ref + f_out + f_mat + f_opt1 + f_opt2 + f_opt3 print f_cmd; os.system(f_cmd) cmd1 = 'rm ' + brain2mni_dir+file+'.nii' print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + brain2mni_dir+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + brain2mni_dir+file print cmd1; os.system(cmd1) if run_flirt2MNI_inv==1: f_cmd1 = 'convert_xfm -omat ' + xfm_dir+'FLIRT_to_MNIspace_Inv/'+file+'.mat ' f_cmd2 = ' -inverse ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat' f_cmd = f_cmd1 + f_cmd2 print f_cmd; os.system(f_cmd) if xfm_head_flirt2MNI==1: if 'l' in file: cmd1 = 'reslice_unwarp ' + xfm_dir+'AIR_linear_MNIspace_Inv/'+file+'_MNI_to_native.air ' + head_dir_mni+file+'.img -a ' + head_dir+file+'.img -o' print cmd1; os.system(cmd1) # else: # f_in = ' -in ' + head_dir+file # f_ref = ' -ref ' + coreg_brain # f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat ' # f_out = ' -out ' + head_dir_mni+file+'.img ' # f_par = ' -paddingsize 0.0 -interp trilinear ' # f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref # print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + head_dir_mni+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + head_dir_mni+file print cmd1; os.system(cmd1) if xfm_atlas_flirt2MNI==1: f_in = ' -in ' + atlas_dir+file f_ref = ' -ref ' + coreg_brain f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat ' f_out = ' -out ' + atlas_dir_mni+file+'.img ' f_par = ' -paddingsize 0.0 -interp nearestneighbour ' f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + atlas_dir_mni+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + atlas_dir_mni+file print cmd1; os.system(cmd1) if PREP==1: if convert_mnc==1: if 'l' in file: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -mri -short -scan_range -swap_bytes -clobber -input ' + brain2mni_dir+file+'.img ' + brain2mni_dir_mnc+file+'.mnc 181 217 181 ' print cmd; os.system(cmd) elif 'g' in file: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -mri -short -scan_range -swap_bytes -clobber -input ' + brain2mni_dir+file+'.img ' + brain2mni_dir_mnc+file+'.mnc 182 218 182 ' print cmd; os.system(cmd) cmd = 'inormalize -clobber -model ' + coreg_brain+'.mnc ' + brain2mni_dir_mnc+file+'.mnc ' + brain2mni_dir_mnc+file+'.mnc' print cmd; os.system(cmd) else: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -short -mri -scan_range -clobber -input ' + brain2mni_dir+file+'.img ' + brain2mni_dir_mnc+file+'.mnc 182 218 182 ' print cmd; os.system(cmd) cmd = 'inormalize -clobber -model ' + coreg_brain+'.mnc ' + brain2mni_dir_mnc+file+'.mnc ' + brain2mni_dir_mnc+file+'.mnc' print cmd; os.system(cmd) if convert_analyze1==1: convert_dir = datapath + 'Brains/Brains_MNIspace_uint8_pad/' #head_dir_RL cmd1 = 'fslorient -deleteorient ' + convert_dir+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + convert_dir+file #brain2mni_dir+file #brain2mni_dir_pad+file print cmd1; os.system(cmd1) if convert_uint8==1: cmd = 'mri_convert -odt uchar ' + brain2mni_dir+file+'.img ' + brain2mni_dir_char+file+'.img' print cmd; os.system(cmd) if convert_intcorr==1: cmd = code_dir+'/Romeo/IntensityCorrection ' + brain2mni_dir+file+'.img ' + brain2mni_dir_intcorr+file+'.img' print cmd; os.system(cmd) if prep_sicle==1: new_string = file + ' ../'+brain2mni_dir_pad+file+'.hdr\n' output.write(new_string) if run_first==1: cmd1 = 'mkdir ' + xfm_atlas_dir+'FIRST/'+file print cmd1; os.system(cmd1) cmd2 = 'run_first_all ' + head_dir+file + ' 3 ' + xfm_atlas_dir+'FIRST/'+file+'/'+file print cmd2; os.system(cmd2) if run_freesurfer==1: cmd3 = 'recon-all -autorecon-all -subject ' + file + ' -i ' + head_dir+file+'.img -all' print cmd3; os.system(cmd3) if run_freesurfer_brain==1: cmd3 = 'recon-all -autorecon-all -subject ' + file+'_brain ' + ' -i ' + brain2mni_dir+file+'.img -all' print cmd3; os.system(cmd3) # convert freesurfer surface to volume if mri_surf2vol==1: cmd = 'fslswapdim ' + datapath+'Heads/Heads/'+file + ' x z y ' + datapath+'Heads/Heads/'+file+'_swap' print cmd; os.system(cmd) cmd = 'fslchfiletype ANALYZE ' + datapath+'Heads/Heads/'+file+'_swap' print cmd; os.system(cmd) cmd = 'mri_surf2vol --mkmask --hemi lh --projfrac 0.5 --template ' + datapath+'Heads/Heads/'+file+'_swap.img --outvol ' + surf_dir+file+'_lh.img --volregidentity '+file print cmd; os.system(cmd) cmd = 'mri_surf2vol --mkmask --hemi rh --projfrac 0.5 --template ' + datapath+'Heads/Heads/'+file+'_swap.img --outvol ' + surf_dir+file+'_rh.img --volregidentity '+file print cmd; os.system(cmd) cmd = 'fslmaths ' + surf_dir+file+'_lh.img -add ' + surf_dir+file+'_rh.img ' + surf_dir+file+'.img' print cmd; os.system(cmd) cmd = 'fslswapdim ' + surf_dir+file + ' x z -y ' + surf_dir+file print cmd; os.system(cmd) cmd = 'fslorient -deleteorient ' + surf_dir+file print cmd; os.system(cmd) cmd = 'fslchfiletype ANALYZE ' + surf_dir+file print cmd; os.system(cmd) if xfm_surfs==1: if 'l' in file: cmd1 = 'reslice ' + xfm_dir+'AIR_linear_MNIspace_Inv/'+file+'_native_to_MNI.air ' + surf2mni_dir+file+'.img ' + ' -a ' + surf_dir+file+'.img -n 0 -o' print cmd1; os.system(cmd1) else: cmd1 = 'fslswapdim ' + surf_dir+file + ' -x y z ' + surf2mni_dir+file print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + surf2mni_dir+file print cmd1; os.system(cmd1) f_in = ' -in ' + surf_dir+file f_ref = ' -ref ' + coreg_brain f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat ' f_out = ' -out ' + surf2mni_dir+file f_par = ' -paddingsize 0.0 -interp nearestneighbour ' f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) if 'ca' in file: f_in = ' -in ' + surf2mni_dir+file f_ref = ' -ref ' + coreg_brain f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'fix.mat ' f_out = ' -out ' + surf2mni_dir+file f_par = ' -paddingsize 0.0 -interp nearestneighbour ' f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslswapdim ' + surf2mni_dir+file + ' -x y z ' + surf2mni_dir+file print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + surf2mni_dir+file print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + surf2mni_dir+file print cmd1; os.system(cmd1) #--------------------- # Loop through targets #--------------------- #if run_sicle+prep_sicle>0: # ifile2 = ifile-1 #else: ifile2 = -1 for file2 in files2[ifile2+1:]: ifile2+=1 #------------ # Run scripts #------------ if run_flirt==1: f_in = ' -in ' + brain2mni_dir+file f_ref = ' -ref ' + brain2mni_dir+file2 f_mat = ' -omat ' + xfm_dir+'FLIRT_in_MNIspace/'+file+'_to_'+file2+'.mat ' f_out = ' -out ' + brain_reg_dir+file+'_to_'+file2+'.hdr ' f_opt1 = ' -bins 256 -cost corratio ' f_opt2 = ' -searchrx -30 30 -searchry -30 30 -searchrz -30 30 ' f_opt3 = ' -dof 6 -interp trilinear ' f_cmd = 'flirt' + f_in + f_ref + f_mat + f_out + f_opt1 + f_opt2 + f_opt3 print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + brain_reg_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + brain_reg_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) if xfm_atlas_flirt==1: f_in = ' -in ' + atlas_dir_mni+file f_ref = ' -ref ' + atlas_dir_mni+file2 f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_in_MNIspace/'+file+'_to_'+file2+'.mat ' f_out = ' -out ' + xfm_atlas_dir+'FLIRT/'+file+'_to_'+file2 f_par = ' -paddingsize 0.0 -interp nearestneighbour ' f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'FLIRT/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_atlas_dir+'FLIRT/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if xfm_head_flirt==1: f_in = ' -in ' + head_dir_mni+file f_ref = ' -ref ' + head_dir_mni+file2 f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_in_MNIspace/'+file+'_to_'+file2+'.mat ' f_opt = ' -interp trilinear ' f_out = ' -out ' + head_dir_mni_reg+file+'_to_'+file2 f_par = ' -paddingsize 0.0 ' f_cmd = 'flirt' + f_in + f_mat + f_opt + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + head_dir_mni_reg+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd2 = 'fslchfiletype ANALYZE ' + head_dir_mni_reg+file+'_to_'+file2 print cmd2; os.system(cmd2) if xfm_seg_brain2==1: xfm_dir1 = brain2mni_dir_seg xfm_dir2 = brain_reg_dir_seg_pad f_in = ' -in ' + xfm_dir1+file+'_to_'+file2 f_ref = ' -ref ' + brain2mni_dir_seg+file2 f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT/'+file+'_to_'+file2+'.mat ' f_opt = ' -interp nearestneighbour ' f_out = ' -out ' + xfm_dir2+file+'_to_'+file2 f_par = ' -paddingsize 0.0 ' f_cmd = 'flirt' + f_in + f_mat + f_opt + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + xfm_dir2+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd2 = 'fslchfiletype ANALYZE ' + xfm_dir2+file+'_to_'+file2 print cmd2; os.system(cmd2) if convert_intcorr2==1: cmd = code_dir+'/Romeo/IntensityCorrection ' + brain_reg_dir+file+'_to_'+file2+'.img ' + brain_reg_dir_intcorr+file+'_to_'+file2+'.img' print cmd; os.system(cmd) if pad_brain2==1: prepad_dir2 = 'Brains_MNIspace_reglinear_uint8/' #'Brains_seg_MNIspace_reglinear_pad/' pad_dir2 = 'Brains_MNIspace_reglinear_uint8_pad/' #'Brains_seg_MNIspace_reglinear_pad2/' presize_xdim = 181 presize_ydim = 217 presize_zdim = 181 resize_xdim = 224 resize_ydim = 224 resize_zdim = 192 resize_xshift = str(-(resize_xdim - presize_xdim)/2) resize_yshift = str(-(resize_ydim - presize_ydim)/2) resize_zshift = str(-(resize_zdim - presize_zdim)/2) resize_xdim = str(resize_xdim) resize_ydim = str(resize_ydim) resize_zdim = str(resize_zdim) cmd1 = 'resize ' + prepad_dir2+file+'_to_'+file2+'.img ' + resize_xdim+' '+resize_ydim+' '+resize_zdim + ' ' + resize_xshift+' '+resize_yshift+' '+resize_zshift + ' ' + pad_dir2+file+'_to_'+file2+'.img y' print cmd1; os.system(cmd1) if run_air==1: cmd1 = 'alignlinear ' + brain2mni_dir+file2+'.img ' + brain_reg_dir+file+'_to_'+file2+'.img ' + xfm_dir+'AIR/'+file+'_to_'+file2+'.air -m 12 -t1 1 -t2 1 -q' cmd2 = 'align_warp ' + brain2mni_dir+file2+'.img ' + brain_reg_dir+file+'_to_'+file2+'.img ' + xfm_dir+'AIR/'+file+'_to_'+file2+'.warp -m 2 5 -f ' + xfm_dir+'AIR/'+file+'_to_'+file2+'.air -t1 1 -t2 1 -q' print cmd1; os.system(cmd1) print cmd2; os.system(cmd2) if run_air2==1: cmd2 = 'align_warp ' + brain2mni_dir+file2+'.img ' + brain_reg_dir+file+'_to_'+file2+'.img ' + xfm_dir+'AIR/'+file+'_to_'+file2+'.warp -m 2 5 -t1 1 -t2 1 -q' print cmd2; os.system(cmd2) if xfm_atlas_air==1: cmd3 = 'reslice_warp ' + xfm_dir+'AIR/'+file+'_to_'+file2+'.warp ' + xfm_atlas_dir+'AIR/'+file+'_to_'+file2+'.warp.img -a ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.img -n 0 -o' print cmd3; os.system(cmd3) if PREP==1: if flip_atlas2==1: cmd1 = 'fslchfiletype NIFTI ' + atlas_dir_mni_6dof+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + atlas_dir_mni_6dof+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.nii' print cmd1; os.system(cmd1) if fix_pixdim2==1: fix_dir=brain_reg_dir_pad #brain_reg_dir_seg_pad #brain_reg_dir_char cmd1 = 'fslchfiletype NIFTI ' + fix_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + fix_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + fix_dir+file+'_to_'+file2 #+'.nii' print cmd1; os.system(cmd1) if convert_atlas_mnc==1: if 'l' in file: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -unsigned -byte -scan_range -clobber -input ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.img ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc 181 217 181 ' print cmd; os.system(cmd) #cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -short -scan_range -clobber -input ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.img ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc 181 217 181 ' #print cmd; os.system(cmd) else: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -short -scan_range -clobber -input ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.img ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc 182 218 182 ' print cmd; os.system(cmd) #cmd2 = 'mincreshape -clobber -byte -image_range 0 255 -valid_range 0 255 ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc' #print cmd2; os.system(cmd2) if convert_reg_mnc==1: if 'l' in file: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -mri -short -scan_range -clobber -input ' + brain_reg_dir+file+'_to_'+file2+'.img ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc 181 217 181 ' print cmd; os.system(cmd) elif 'g' in file: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -mri -short -scan_range -swap_bytes -clobber -input ' + brain_reg_dir+file+'_to_'+file2+'.img ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc 182 218 182 ' print cmd; os.system(cmd) cmd = 'inormalize -clobber -model ' + coreg_brain+'.mnc ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc' print cmd; os.system(cmd) else: cmd = 'rawtominc -xstep 1.0 -ystep 1.0 -zstep 1.0 -xstart 0 -ystart 0 -zstart 0 -short -mri -scan_range -clobber -input ' + brain_reg_dir+file+'_to_'+file2+'.img ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc 182 218 182 ' print cmd; os.system(cmd) cmd = 'inormalize -clobber -model ' + coreg_brain+'.mnc ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc' print cmd; os.system(cmd) print file, file2 if flip_reg_brain==1: flip_dir_in = xfm_atlas_dir+'SPM5_UnifiedSegment_head0/' #'SPM5_Normalize_head0/' flip_dir = xfm_atlas_dir+'SPM5_UnifiedSegment_head/' #cmd = '/usr/local/AIR5.2.5/bin/reorient ' + flip_dir_in+file+'_to_'+file2 + ' ' + flip_dir+file+'_to_'+file2 + ' x o ' cmd1 = 'fslswapdim ' + flip_dir_in+file+'_to_'+file2 + ' -x y z ' + flip_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + flip_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + flip_dir+file+'_to_'+file2 print cmd1; os.system(cmd1) if xfm_head_flirt2==1: xfm_dir1 = xfm_atlas_dir+'SPM5_UnifiedSegment_head/' # brain2mni_dir_seg xfm_dir2 = xfm_atlas_dir+'SPM5_UnifiedSegment_head2/' # brain_reg_dir_seg_pad if 'l' in file: cmd1 = 'reslice ' + xfm_dir+'AIR_linear_MNIspace_Inv/'+file+'_native_to_MNI.air ' + xfm_dir2+file+'_to_'+file2+'.img ' + ' -a ' + xfm_dir1+file+'_to_'+file2+'.img -n 0 -o' print cmd1; os.system(cmd1) else: f_in = ' -in ' + xfm_dir1+file+'_to_'+file2 f_ref = ' -ref ' + atlas_dir_mni+file2 f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace/'+file+'.mat ' f_out = ' -out ' + xfm_dir2+file+'_to_'+file2 f_par = ' -paddingsize 0.0 -interp nearestneighbour ' f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref print f_cmd; os.system(f_cmd) cmd1 = 'fslorient -deleteorient ' + xfm_dir2+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_dir2+file+'_to_'+file2 print cmd1; os.system(cmd1) if convert_analyze2==1: tmpdir = datapath+'Brains/Brains_MNIspace_reglinear_uint8_pad/' #'Brains/Brains_MNIspace_reglinear_uint8_pad/' #'Transformed_Atlases/SICLE/' #Atlases/Atlases_MNIspace_reglinear_uint8_pad/' #brain_reg_dir_pad cmd1 = 'fslorient -deleteorient ' + tmpdir+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + tmpdir+file+'_to_'+file2 print cmd1; os.system(cmd1) if run_animal==1: cmd = 'perl ' + code_dir+'/ANIMAL/run_warps_animal.pl -clobber -normalize ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc ' + brain2mni_dir_mnc+file2+'.mnc ' + xfm_dir+'ANIMAL/'+file+'_to_'+file2+'.xfm' print cmd; os.system(cmd) if xfm_atlas_animal==1: cmd2 = 'mincresample -transform ' + xfm_dir+'ANIMAL/'+file+'_to_'+file2+'.xfm -like ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2+'.mnc -nearest_neighbour -keep_real_range -short -clobber ' print cmd2; os.system(cmd2) cmd3 = 'mnc2nii -short ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2+'.mnc ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2+'.nii' print cmd3; os.system(cmd3) cmd4 = 'rm ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2+'.mnc' print cmd4; os.system(cmd4) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if run_animal==10: cmd = 'perl ' + code_dir+'/ANIMAL/run_warps_animal_2mm.pl -clobber -normalize ' + brain_reg_dir_mnc+file+'_to_'+file2+'.mnc ' + brain2mni_dir_mnc+file2+'.mnc ' + xfm_dir+'ANIMAL2/'+file+'_to_'+file2+'.xfm' print cmd; os.system(cmd) if xfm_atlas_animal==10: cmd2 = 'mincresample -transform ' + xfm_dir+'ANIMAL2/'+file+'_to_'+file2+'.xfm -like ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc ' + atlas_dir_mni_6dof_mnc+file+'_to_'+file2+'.mnc ' + xfm_atlas_dir+'ANIMAL2/'+file+'_to_'+file2+'.mnc -nearest_neighbour -keep_real_range -short -clobber ' print cmd2; os.system(cmd2) cmd3 = 'mnc2nii -short ' + xfm_atlas_dir+'ANIMAL2/'+file+'_to_'+file2+'.mnc ' + xfm_atlas_dir+'ANIMAL2/'+file+'_to_'+file2+'.nii' print cmd3; os.system(cmd3) cmd4 = 'rm ' + xfm_atlas_dir+'ANIMAL2/'+file+'_to_'+file2+'.mnc' print cmd4; os.system(cmd4) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'ANIMAL2/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_atlas_dir+'ANIMAL2/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if xfm_atlas_animal_flip==1: cmd1 = 'fslchfiletype NIFTI ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslswapdim ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 + ' -x y z ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'rm ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2+'.nii' print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_atlas_dir+'ANIMAL/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if run_itk==1: cmd0 = 'rreg ' + brain2mni_dir+file2+'.hdr ' + brain_reg_dir+file+'_to_'+file2+'.hdr -dofout ' + xfm_dir+'IRTK/'+file+'_to_'+file2+'_rreg.dof' print cmd0; os.system(cmd0) cmd1 = 'areg ' + brain2mni_dir+file2+'.hdr ' + brain_reg_dir+file+'_to_'+file2+'.hdr -dofin ' + xfm_dir+'IRTK/'+file+'_to_'+file2+'_rreg.dof -dofout ' + xfm_dir+'IRTK/'+file+'_to_'+file2+'_areg.dof ' print cmd1; os.system(cmd1) cmd2 = 'nreg ' + brain2mni_dir+file2+'.hdr ' + brain_reg_dir+file+'_to_'+file2+'.hdr -dofin ' + xfm_dir+'IRTK/'+file+'_to_'+file2+'_areg.dof -dofout ' + xfm_dir+'IRTK/'+file+'_to_'+file2+'_nreg.dof -parin ' + code_dir+'/IRTK/IRTK_parameters_2.5mm.txt ' print cmd2; os.system(cmd2) if xfm_atlas_itk==1: cmd6 = 'transformation ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.hdr ' + xfm_atlas_dir+'IRTK/'+file+'_to_'+file2+'.hdr -dofin ' + xfm_dir+'IRTK/'+file+'_to_'+file2+'_nreg.dof -target ' + brain2mni_dir+file2+'.hdr' print cmd6; os.system(cmd6) if prep_sicle==1: new_string = file+'_to_'+file2 + ' ../'+brain_reg_dir_pad+file+'_to_'+file2+'.hdr\n' output.write(new_string) cmd = 'cp SICLE/A_To_B.in SICLE/input_files/' + file+'_to_'+file2+'.in' print cmd; os.system(cmd) search_str1 = '[TEMPLATE_FILENAME_ALIAS] A' replace_str1 = '[TEMPLATE_FILENAME_ALIAS] ' + file+'_to_'+file2 search_str2 = '[TARGET_FILENAME_ALIAS] B' replace_str2 = '[TARGET_FILENAME_ALIAS] ' + file2 cmd = 'python Utilities/search_replace.py "' + search_str1 + '" "' + replace_str1 + '" SICLE/input_files/'+file+'_to_'+file2+'.in SICLE/input_files/'+file+'_to_'+file2+'.in1' print cmd; os.system(cmd) cmd = 'python Utilities/search_replace.py "' + search_str2 + '" "' + replace_str2 + '" SICLE/input_files/'+file+'_to_'+file2+'.in1 SICLE/input_files/'+file+'_to_'+file2+'.in' print cmd; os.system(cmd) cmd = 'rm SICLE/input_files/'+file+'_to_'+file2+'.in1' print cmd; os.system(cmd) if run_syn==1: if pre_syn==1: cmd1 = code_dir+'/SyN/TranslationRegistration ' + brain2mni_dir+file2+'.hdr ' + brain_reg_dir+file+'_to_'+file2+'.hdr ' + xfm_dir+'SyN/'+file+'_trans_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'perl ' + code_dir+'/SyN/arnoMVSN.pl ' + brain2mni_dir+file2+'.hdr ' + brain_reg_dir+file+'_to_'+file2+'.hdr ' + xfm_dir+'SyN/'+file+'_trans_to_'+file2 + ' " -c 5 -n3 -i30x99x11 -l 0.5 -s 2 -a 0.05 " ' + code_dir+'/SyN/ 0 0 0 arno 1' print cmd1; os.system(cmd1) else: cmd1 = 'perl ' + code_dir+'/SyN/arnoMVSN.pl ' + brain2mni_dir+file2+'.hdr ' + brain_reg_dir+file+'_to_'+file2+'.hdr ' + xfm_dir+'SyN/'+file+'_to_'+file2 + ' " -c 5 -n3 -i30x99x11 -l 0.5 -s 2 -a 0.05 " ' + code_dir+'/SyN/ 0 0 0 arno 1' print cmd1; os.system(cmd1) if xfm_atlas_syn==1: cmd1 = code_dir+'/SyN/WarpImageBackward ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.hdr ' + xfm_dir+'SyN/'+file+'_to_'+file2+'warp ' + xfm_atlas_dir+'SyN/'+file+'_to_'+file2+'.hdr donearestneighbor' print cmd1; os.system(cmd1) if run_fnirt==111: cmd1 = code_dir+'/FNIRT/fnirt --config=./' + code_dir+'/FNIRT/schedule_01.cnf --ref='+brain2mni_dir+file2 + ' --in='+brain_reg_dir+file+'_to_'+file2 + ' --cout='+xfm_dir+'FNIRT/'+file+'_to_'+file2 #cmd1 = code_dir+'/FNIRT/fnirt --config=./' + code_dir+'/FNIRT/schedule_01.cnf --ref='+brain2mni_dir+file2 + ' --in='+brain2mni_dir+file + ' --aff='+xfm_dir+'FLIRT/'+file+'_to_'+file2+'.mat --cout='+xfm_dir+'FNIRT/'+file+'_to_'+file2 # + ' --iout=ima_'+file+'_2_'+file2 print cmd1; os.system(cmd1) if run_fnirt==1: cmd1 = code_dir+'/FNIRT/fnirt --config=./' + code_dir+'/FNIRT/schedule_01.cnf --ref='+head_dir_mni+file2 + ' --in='+head_dir_mni_reg+file+'_to_'+file2 + ' --cout='+xfm_dir+'FNIRT_test3/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if xfm_atlas_fnirt==1: cmd1 = code_dir+'/FNIRT/applywarp -i ' + atlas_dir_mni_6dof+file+'_to_'+file2 + ' -r ' + brain2mni_dir+file2 + ' -w ' + xfm_dir+'FNIRT_test3/'+file+'_to_'+file2 + ' -o ' + xfm_atlas_dir+'FNIRT_test3/'+file+'_to_'+file2 + ' --interp=nn' print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype NIFTI ' + xfm_atlas_dir+'FNIRT_test3/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'FNIRT_test3/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_atlas_dir+'FNIRT_test3/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if xfm_atlas_fnirt_test==1: cmd1 = code_dir+'/FNIRT/applywarp -i ' + atlas_dir_mni+file + ' -r ' + brain2mni_dir+file2 + ' -w ' + xfm_dir+'FNIRT/'+file+'_to_'+file2 + ' -o ' + xfm_atlas_dir+'test/FNIRT/'+file+'_to_'+file2 + ' --interp=nn' print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype NIFTI ' + xfm_atlas_dir+'test/FNIRT/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+'test/FNIRT/'+file+'_to_'+file2 print cmd1; os.system(cmd1) cmd1 = 'fslchfiletype ANALYZE ' + xfm_atlas_dir+'test/FNIRT/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if run_romeo==1: correctintensity=1 if correctintensity==1: cmd1 = 'python ./' + code_dir+'/Romeo/Romeo.py -t ' + brain2mni_dir_intcorr+file2+' -s ' + brain_reg_dir_intcorr+file+'_to_'+file2+' -l ' + atlas_dir_mni_6dof+file+'_to_'+file2+' -o ' + xfm_atlas_dir+'Romeo/brain_'+file+'_to_'+file2+' -d ' + xfm_atlas_dir+'Romeo/'+file+'_to_'+file2 print cmd1; os.system(cmd1) else: cmd1 = 'python ./' + code_dir+'/Romeo/Romeo.py -t ' + brain2mni_dir+file2+' -s ' + brain_reg_dir+file+'_to_'+file2+' -l ' + atlas_dir_mni_6dof+file+'_to_'+file2+' -o ' + xfm_atlas_dir+'Romeo/brain_'+file+'_to_'+file2+' -d ' + xfm_atlas_dir+'Romeo/'+file+'_to_'+file2 print cmd1; os.system(cmd1) if run_pasha==1: cmd1 = code_dir+'/Pasha/Pasha -im0 ' + brain2mni_dir+file2+'.hdr -im1 ' + brain_reg_dir+file+'_to_'+file2+'.hdr -res ' + xfm_dir+'Pasha/brain_'+file+'_to_'+file2 + ' -dos localCC -resext hdr' print cmd1; os.system(cmd1) if xfm_atlas_pasha==1: cmd1 = code_dir+'/Pasha/reech3d.mac ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.hdr ' + xfm_atlas_dir+'Pasha/'+file+'_to_'+file2+'.hdr -def ' + xfm_dir+'Pasha/brain_'+file+'_to_'+file2 + ' -nearest' print cmd1; os.system(cmd1) if run_demons==1: cmd1 = code_dir+'/DiffeomorphicDemons/DiffeomorphicDemons-2007-09-Vercauteren-IJSource/DemonsRegistration -f ' + brain2mni_dir+file2+'.hdr -m ' + brain_reg_dir+file+'_to_'+file2+'.hdr -O' + xfm_dir+'Demons/'+file+'_to_'+file2+'.hdr -e -s2 -i30x20x10' print cmd1; os.system(cmd1) if xfm_atlas_demons==1: cmd1 = code_dir+'DiffeomorphicDemons/DiffeomorphicDemons-2007-09-Vercauteren-IJSource/ResampleImage -i ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.hdr -f ' + xfm_dir+'Demons/'+file+'_to_'+file2+'.hdr -o ' + xfm_atlas_dir+'Demons/'+file+'_to_'+file2+'.img' print cmd1; os.system(cmd1) # From within the SICLE directory, run "run_warps_local.py" (a symbolic link to this file) if run_sicle==1: cmd = 'lereg2.exe -gf global.param -p input_files/'+file+'_to_'+file2+'.in | tee output_files/'+file+'_to_'+file2+'.out' print cmd; os.system(cmd) cmd = 'rpp2.exe input_files/'+file+'_to_'+file2+'.in -def -jac -gf global.param' print cmd; os.system(cmd) if xfm_atlas_sicle==1: cmd1 = 'deform3d.exe -coeff ' + 'SICLE/transformation/'+file+'_to_'+file2+'_To_' +file2+'/'+file+'_to_'+file2+'_To_'+file2+'_res10000_iter00020.coeffs -t ' + atlas_dir_mni_6dof_pad+file+'_to_'+file2+'.hdr -o ' + xfm_atlas_dir+'SICLE/'+file+'_to_'+file2+'.hdr -interp N' print cmd1; os.system(cmd1) if run_hammer==1: cmd1 = '/opt/hammerBeta/bin/hammer labelbrain -S /data3/arno/HAMMER/Brains_seg_MNIspace_reglinear_pad/'+file+'_to_'+file2+'.img -M /data3/arno/HAMMER/Brains_seg_MNIspace_pad/'+file2+'.img -L /data3/arno/HAMMER/Atlases_MNIspace_reglinear_uint8_pad/'+file+'_to_'+file2+'.img' print cmd1; os.system(cmd1) if fix_hammer_xfm==1: cmd1 = '/opt/hammerBeta/bin/performdeformationusingvectorfield /data3/arno/HAMMER/Transforms/HAMMER/'+file+'_to_'+file2+'.img.Field.1.img.Subj2Mdl /data3/arno/HAMMER/Atlases_MNIspace_reglinear_uint8_pad/'+file+'_to_'+file2+'.img /data3/arno/HAMMER/Transformed_Atlases/HAMMER/'+file+'_to_'+file2+'.img -v224 -s224 -I' print cmd1; os.system(cmd1) cmd1 = '/opt/hammerBeta/bin/cropslices /data3/arno/HAMMER/Transformed_Atlases/HAMMER/'+file+'_to_'+file2+'.img /data3/arno/HAMMER/Transformed_Atlases/HAMMER/'+file+'_to_'+file2+'.img -v224 -c0,200' print cmd1; os.system(cmd1) if run_hammer_correctlabel==1: cmd1 = '/opt/hammerBeta/bin/hammer correctlabel -S /data3/arno/HAMMER/Brains_seg_MNIspace_reglinear_pad/'+file+'_to_'+file2+'.img -L /data3/arno/HAMMER/Transformed_Atlases/HAMMER/'+file+'_to_'+file2+'.img.Warped.Labels.img -O /data3/arno/HAMMER/Transformed_Atlases/HAMMER2/'+file+'_to_'+file2+'.img' print cmd1; os.system(cmd1) if run_fluid==1: cmd = 'mkdir /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2 print cmd; os.system(cmd) if 'l' in file: cmd1 = '/nethome/SRP/four_d/mchiang/fluid/mix_fluidmap_nohassle_column.out /cxfs/four_d/arno/Brains_MNIspace_reglinear_uint8/'+file+'_to_'+file2+'.img 181 217 181 /cxfs/four_d/arno/Brains_MNIspace_uint8/'+file2+'.img 181 217 181 /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2 + ' /cxfs/four_d/mchiang/source_le 0.95 0 4' else: cmd1 = '/nethome/SRP/four_d/mchiang/fluid/mix_fluidmap_nohassle_column.out /cxfs/four_d/arno/Brains_MNIspace_reglinear_uint8/'+file+'_to_'+file2+'.img 182 218 182 /cxfs/four_d/arno/Brains_MNIspace_uint8/'+file2+'.img 182 218 182 /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2 + ' /cxfs/four_d/mchiang/source_le 0.95 0 20' # NOTE the change from 4 to 20! print cmd1; os.system(cmd1) cmd = 'rm /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/itrn.img' print cmd; os.system(cmd) cmd = 'rm /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/DXP0' print cmd; os.system(cmd) cmd = 'rm /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/DYP0' print cmd; os.system(cmd) cmd = 'rm /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/DZP0' print cmd; os.system(cmd) cmd = 'rm /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/JACOBIAN_ftle' print cmd; os.system(cmd) if xfm_atlas_fluid==1: if 'l' in file: cmd = '/cxfs/four_d/4arno/resample_8bit_image_NN.out /cxfs/four_d/arno/'+atlas_dir_mni_6dof_char_pad+file+'_to_'+file2+'.img /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/trn_DXP_ftle /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/trn_DYP_ftle /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/trn_DZP_ftle 181 217 181 /ifs/tmp/aklein/Fluid_Atlas/'+file+'_to_'+file2+'.img' else: cmd = '/cxfs/four_d/4arno/resample_8bit_image_NN.out /cxfs/four_d/arno/'+atlas_dir_mni_6dof_char_pad+file+'_to_'+file2+'.img /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/trn_DXP_ftle /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/trn_DYP_ftle /ifs/tmp/aklein/Fluid/'+file+'_to_'+file2+'/trn_DZP_ftle 182 218 182 /ifs/tmp/aklein/Fluid_Atlas/'+file+'_to_'+file2+'.img' print cmd; os.system(cmd) if run_fluid_hdr==1: cmd = 'cp ' + brain2mni_dir_char+file2+'.hdr ' + xfm_atlas_dir+'Fluid/'+file+'_to_'+file2+'.hdr' print cmd; os.system(cmd) if run_art==1: cmd1 = '/opt/ART/bin/3dwarper -R -trg ' + brain2mni_dir+file2+'.img -obj ' + brain_reg_dir+file+'_to_'+file2+'.img -u ' + xfm_dir+'ART/'+file+'_to_'+file2+'.wrp -o ' + xfm_dir+'ART/'+file+'_to_'+file2+'.img -A -sd 8.0' print cmd1; os.system(cmd1) if xfm_atlas_art==1: cmd2 = './applywarp3d -nn -w ' + xfm_dir+'ART/'+file+'_to_'+file2+'.wrp ' + atlas_dir_mni_6dof+file+'_to_'+file2+'.img' print cmd2; os.system(cmd2) cmd = 'mv C'+file+'.img ' + xfm_atlas_dir+'ART/'+file+'_to_'+file2+'.img' print cmd; os.system(cmd) cmd = 'mv C'+file+'.hdr ' + xfm_atlas_dir+'ART/'+file+'_to_'+file2+'.hdr' print cmd; os.system(cmd) # if invxfm_atlas==1: # if 'l' in file2: # pass # else: # cmd1 = 'fslchfiletype NIFTI ' + xfm_atlas_dir+invxfm_method+file+'_to_'+file2 # print cmd1; os.system(cmd1) # cmd1 = 'fslorient -deleteorient ' + xfm_atlas_dir+invxfm_method+file+'_to_'+file2 # print cmd1; os.system(cmd1) # # f_ref = ' -ref ' + brain_dir+file2 # f_in = ' -in ' + xfm_atlas_dir+invxfm_method+file+'_to_'+file2 # f_mat = ' -applyxfm -init ' + xfm_dir+'FLIRT_to_MNIspace_Inv/'+file+'.mat ' # f_out = ' -out ' + invxfm_atlas_dir+invxfm_method+file+'_to_'+file2 # f_par = ' -paddingsize 0.0 -interp nearestneighbour ' # f_cmd = 'flirt' + f_in + f_mat + f_out + f_par + f_ref # print f_cmd; os.system(f_cmd) # # cmd1 = 'fslorient -deleteorient ' + invxfm_atlas_dir+invxfm_method+file+'_to_'+file2 # print cmd1; os.system(cmd1) # cmd1 = 'fslchfiletype ANALYZE ' + invxfm_atlas_dir+invxfm_method+file+'_to_'+file2 # print cmd1; os.system(cmd1)