#print "\t\t", target_ids[t_id], "\t", len(source), "\t", len(target),"\t", jac0,"\t", bfn0, "\t", jac1,"\t", bfn1 #print "Before mapping: ", jac0, bfn0 #print "After mapping: ", jac1, bfn1 cor0, ncor0 = vol_corr_notcorr(s_cst, t_cst, vol_dims, disp=False) cor1, ncor1 = vol_corr_notcorr(mapped_s_cst, t_cst, vol_dims, disp=False) print "\t\t", target_ids[t_id], "\t", cor0,"\t", ncor0, "\t", cor1,"\t", ncor1 if vis: s_file_native = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/tvis_tractography/' + source_sub + '_tracks_dti_tvis.trk' t_file_native = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/tvis_tractography/' + target_sub + '_tracks_dti_tvis.trk' t_cst_ext_idx_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + target_sub + '_cst_L_tvis_ext.pkl' s_cst_native = load_tract(s_file_native, s_cst_idx_file) t_cst_native = load_tract(t_file_native, t_cst_idx_file) t_cst_ext_native = load_tract(t_file_native, t_cst_ext_idx_file) TP_mapped,FP_mapped,TP_source, FN_source = TP_FP_TP_FN(s_cst_native, t_cst_native, t_cst_ext_native, mapped) #TP_mapped,FP_mapped,TP_source, FN_source = TP_FP_TP_FN(s_cst, t_cst, t_cst_ext, mapped) from common_functions import show_both_bundles show_both_bundles([TP_mapped, FP_mapped], #colors=[fvtk.colors.orange, fvtk.colors.red], colors=[fvtk.colors.red, fvtk.colors.green], show=True, fname='Lauren_reg_1NN_' + source_sub + '_'+ target_sub + '_L_TP_red_FP_green_in_mapped_show_in_native.png') show_both_bundles([TP_source, FN_source],
s_file = args.inputSourceTractography s_ind = args.inputSourceCSTSFFIndex t_file = args.inputTargetTractography t_ind = args.inputTargetCSTExtIndex t_cst = args.inputTargetCSTIndex num_pro = args.inputNumPrototypes map_prob = args.outputMap_prob vis = False source_cst = load_tract(s_file,s_ind) target_cst_ext = load_tract(t_file,t_ind) print len(source_cst), len(target_cst_ext) tractography1 = source_cst[-num_pro:] tractography2 = target_cst_ext[:num_pro] #tractography2 = target_cst_ext[:num_pro*2] print "Source", len(tractography1) print "Target", len(tractography2) #print "Computing the distance matrices for each tractography." dm1 = bundles_distances_mam(tractography1, tractography1)
t_cst_ext_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + target + '_cst_L_tvis_ext.pkl' #map_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/results/result_cst_sff_in_ext_2_cst_ext/50_SFF_MNI/map_best_' + source + '_' + target + '_cst_L_ann_' + str(anneal[a_id]) + '_MNI.txt' map_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/results/result_cst_sff_in_ext_2_cst_ext/50_SFF_MNI/map_1nn_' + source + '_' + target + '_cst_L_ann_' + str(anneal[a_id]) + '_MNI.txt' ''' #Right s_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/tvis_tractography/' + source + '_tracks_dti_tvis_linear.trk' t_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/tvis_tractography/' + target + '_tracks_dti_tvis_linear.trk' s_cst_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + source + '_corticospinal_R_tvis.pkl' t_cst_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + target + '_corticospinal_R_tvis.pkl' t_cst_ext_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + target + '_cst_R_tvis_ext.pkl' #map_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/results/result_cst_sff_in_ext_2_cst_ext/50_SFF_MNI/map_best_' + source + '_' + target + '_cst_R_ann_' + str(anneal[a_id]) + '_MNI.txt' map_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/results/result_cst_sff_in_ext_2_cst_ext/50_SFF_MNI/map_1nn_' + source + '_' + target + '_cst_R_ann_' + str(anneal[a_id]) + '_MNI.txt' ''' s_cst = load_tract(s_file, s_cst_idx) t_cst = load_tract(t_file, t_cst_idx) t_cst_ext = load_tract(t_file, t_cst_ext_idx) map_all = load_pickle(map_file) #this is only for mapping - to conver voxel size from 1,1,1 to 2,2,2 s_cst = .5 * s_cst t_cst = .5 * t_cst t_cst_ext = .5 * t_cst_ext #vol_dims = [182*2,218*2,182*2] # end of this is only for mapping - to conver voxel size from 1,1,1 to 2,2,2 cst_len = len(s_cst)
save_tract_trk(cst_tract_ext, s_fa, cst_ext_trk_fname) #converting trk file to vtk file input_anatomy_ref = '/home/bao/tiensy/Lauren_registration/data_compare_mapping/anatomy/' + subj + '_data_brain.nii.gz' #it is a link to '/home/bao/Personal/PhD_at_Trento/Research/ALS_Nivedita_Bao/Segmentation_CST_francesca/' + subj + '/DTI/data_brain.nii.gz' #cst_vtk_fname = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_corticospinal_L_tvis.vtk' cst_ext_vtk_fname = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_cst_L_tvis_ext.vtk' ''' #CST_Right #saving CST as trk file s_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/tvis_tractography/' + subj + '_tracks_dti_tvis.trk' #cst_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_corticospinal_R_tvis.pkl' #cst_tract = load_tract(s_file,cst_ind) cst_ext_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + subj + '_cst_R_tvis_ext.pkl' cst_tract_ext = load_tract(s_file,cst_ext_ind) s_fa = '/home/bao/Personal/PhD_at_Trento/Research/ALS_Nivedita_Bao/Segmentation_CST_francesca/' + subj + '/DTI/dti_fa_brain.nii.gz' #cst_trk_fname = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_corticospinal_R_tvis.trk' #save_tract_trk(cst_tract, s_fa, cst_trk_fname) cst_ext_trk_fname = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_cst_R_tvis_ext.trk' save_tract_trk(cst_tract_ext, s_fa, cst_ext_trk_fname) #converting trk file to vtk file input_anatomy_ref = '/home/bao/tiensy/Lauren_registration/data_compare_mapping/anatomy/' + subj + '_data_brain.nii.gz' #it is a link to '/home/bao/Personal/PhD_at_Trento/Research/ALS_Nivedita_Bao/Segmentation_CST_francesca/' + subj + '/DTI/data_brain.nii.gz' #cst_vtk_fname = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_corticospinal_R_tvis.vtk' cst_ext_vtk_fname = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + subj + '_cst_R_tvis_ext.vtk' in_format = str(".trk")
#print "Source tractography: ", args.inputSourceTractography print "Source tract index: ", args.inputSourceTractIndex #print "Target tractography: ", args.inputTargetTractography print "Target tract index: ", args.inputTargetTractIndex print "Out put source tract aligned: ", args.outputSourceTractAligned #print "==========================" s_file = args.inputSourceTractography s_ind = args.inputSourceTractIndex t_file = args.inputTargetTractography t_ind = args.inputTargetTractIndex out_file = args.outputSourceTractAligned s_tract = load_tract(s_file,s_ind) t_tract = load_tract(t_file,t_ind) from dipy.align.streamlinear import (StreamlineLinearRegistration, vectorize_streamlines, BundleMinDistance) """ An important step before running the registration is to resample the streamlines so that they both have the same number of points per streamline. Here we will use 10 points. """ points = 20#10#20 s_tract = vectorize_streamlines(s_tract, points)
s_cst_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + source + '_corticospinal_R_tvis.pkl' t_cst_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + target + '_corticospinal_R_tvis.pkl' s_cst_sff_in_ext_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + source + '_cst_R_tvis_sff_in_ext.pkl' t_cst_ext_idx = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + target + '_cst_R_tvis_ext.pkl' #annealing #map_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/results/result_cst_sff_in_ext_2_cst_ext/50_SFF_MNI/map_best_' + source + '_' + target + '_cst_R_ann_' + str(anneal[a_id]) + '_MNI.txt' #map_file = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/results/result_cst_sff_in_ext_2_cst_ext/50_SFF_MNI/map_1nn_' + source + '_' + target + '_cst_R_ann_' + str(anneal[a_id]) + '_MNI.txt' #probability nn = 10 map_file = '/home/bao/tiensy/Tractography_Mapping/code/results/result_prob_map/prob_map_prob_map_' + source + '_' + target + '_cst_R_MNI_full_full' + '_sparse_density_' + str(nn) + '_neighbors.txt' s_cst = load_tract(s_file, s_cst_idx) t_cst = load_tract(t_file, t_cst_idx) s_cst_sff_in_ext = load_tract(s_file, s_cst_sff_in_ext_idx) t_cst_ext = load_tract(t_file, t_cst_ext_idx) #--------------------------------------------------- #for normal mapping map_all = load_pickle(map_file) #----------------------------------------------- cst_len = len(s_cst) pr_s = s_cst_sff_in_ext[-num_pro:]
''' source = '213' target = '202' s_file = '/home/bao/tiensy/Tractography_Mapping/data/' + source + '_tracks_dti_3M.dpy' s_idx = '/home/bao/tiensy/Tractography_Mapping/data/ROI_seg/CST_ROI_R_control/' + source + '_CST_ROI_R_3M.pkl' #s_idx = '/home/bao/tiensy/Tractography_Mapping/data/50_SFF_plus_ext/ROI_seg/' + source + '_cst_R_3M_plus_sff.pkl' t_file = '/home/bao/tiensy/Tractography_Mapping/data/' + target + '_tracks_dti_3M.dpy' t_idx = '/home/bao/tiensy/Tractography_Mapping/data/ROI_seg/CST_ROI_R_control/' + target + '_CST_ROI_R_3M.pkl' #s_idx = '/home/bao/tiensy/Tractography_Mapping/data/50_SFF_plus_ext/ROI_seg/' + source + '_cst_R_3M_plus_sff.pkl' from common_functions import load_tract cb_subj1 = load_tract(s_file,s_idx) cb_subj2 = load_tract(t_file,t_idx) from dipy.align.streamlinear import (StreamlineLinearRegistration, vectorize_streamlines, BundleMinDistance) """ An important step before running the registration is to resample the streamlines so that they both have the same number of points per streamline. Here we will use 20 points. """ cb_subj1 = vectorize_streamlines(cb_subj1, 20)
for s_id in np.arange(len(source_ids)): print '-----------------------------------------------------------------------------------------' source = str(source_ids[s_id]) print 'Source: ', source for t_id in np.arange(len(target_ids)): if target_ids[t_id] != source_ids[s_id]: target = str(target_ids[t_id]) print 'Target: ', target s_tracts = '/home/bao/tiensy/Tractography_Mapping/data/' + source + '_tracks_dti_3M_linear.dpy' #s_tracts = '/home/bao/tiensy/Tractography_Mapping/data/' + source + '_tracks_dti_3M.dpy' s_idx = '/home/bao/tiensy/Tractography_Mapping/data/' + source + '_corticospinal_L_3M.pkl' #s_cst = load_tract_trk(s_tracts,s_idx) s_cst = load_tract(s_tracts,s_idx) t_tracts = '/home/bao/tiensy/Tractography_Mapping/data/' + target + '_tracks_dti_3M_linear.dpy' #t_tracts = '/home/bao/tiensy/Tractography_Mapping/data/' + target + '_tracks_dti_3M.dpy' t_idx = '/home/bao/tiensy/Tractography_Mapping/data/' + target + '_corticospinal_L_3M.pkl' #t_cst = load_tract_trk(t_tracts,t_idx) t_cst = load_tract(t_tracts,t_idx) ''' dm = bundles_distances_mam(s_cst, t_cst) dm = np.array(dm, dtype=float) avg_dis = np.sum(dm) / (len(s_cst)*len(t_cst)) min_dis = dm.min() max_dis = dm.max() s_qb = QuickBundles(s_cst,200,18)
#CST Left cst_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + sub + '_corticospinal_L_tvis.pkl' cst_sff_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + sub + '_cst_L_tvis_sff_in_ext.pkl' cst_ext_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + sub + '_cst_L_tvis_ext.pkl' ''' #CST Right cst_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/ROI_seg_tvis/ROI_seg_tvis_native/' + sub + '_corticospinal_R_tvis.pkl' cst_sff_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + sub + '_cst_R_tvis_sff_in_ext.pkl' cst_ext_ind = '/home/bao/tiensy/Tractography_Mapping/data/trackvis_tractography/50_SFF_in_ext/ROI_seg_native/' + sub + '_cst_R_tvis_ext.pkl' ''' cst = load_tract(tractography_file, cst_ind) cst_sff = load_tract(tractography_file, cst_sff_ind) cst_ext = load_tract(tractography_file, cst_ext_ind) #cst_len_min = length_min(cst) #cst_len_max = length_max(cst) #cst_len_avg = length_avg(cst) #cst_ext_len_min = length_min(cst_ext) #cst_ext_len_max = length_max(cst_ext) #cst_ext_len_avg = length_avg(cst_ext) cst_len_min = truth_length_min(cst) cst_len_max = truth_length_max(cst) cst_len_avg = truth_length_avg(cst) cst_ext_len_min = truth_length_min(cst_ext) cst_ext_len_max = truth_length_max(cst_ext)