def init(self): ''' global csurf csurfr ='/home/eg01/Data_Backup/Data/Adam/multiple_transp_volumes/freesurfer_trich/rh.pial.vtk' #csurf_fname ='/home/eg309/Desktop/rh.pial.vtk' csurfl ='/home/eg01/Data_Backup/Data/Adam/multiple_transp_volumes/freesurfer_trich/lh.pial.vtk' #csurfr = cortex.CorticalSurface(csurfr) #csurfl = cortex.CorticalSurface(csurfl) #csurfr.init() #csurfl.init() ''' global b1 #devel06 b1_fname='/home/ian/Data/dipy/brain2_scan1_fiber_track_mni.trk' #devel07 #b1_fname='/home/eg01/Data_Backup/Data/PBC/pbc2009icdm/brain2/brain2_scan1_fiber_track_mni.trk' #elfthin #b1_fname='/home/eg309/Desktop/DataNew/garyfallidis/brain2/brain2_scan1_fiber_track_mni.trk' b1=tracks.Tracks(b1_fname) b1.angular_speed = 0. b1.picking_example = True b1.min_length = 0. b1.init() self.slots={0:{'actor':b1,'slot':( 0, 800*MS )}} '''
def hidden_tracks(self,t1_fname,opacity,angle_table,many_colors=False,data_ext=None): t1=tracks.Tracks(t1_fname,ang_table=angle_table,shrink=0.99,subset=[0,20000],data_ext=data_ext) t1.angular_speed = 0. t1.fade_demo = True t1.opacity = opacity #0.1 #t1.opacity_rate = -0.01 #tb1.fadeout = True #tb1.fadeout_speed = 0.001 t1.position = -tb1.mean t1.position[0] += 5. t1.position[2] += 10. t1.manycolors = many_colors #False #True #tb1.material_color = True t1.orbit_demo = True#False t1.orbit_anglez_rate = 0.#1. t1.orbit_anglex_rate = 0.#-.1 t1.init() return t1
def init(self): tracks.angle_table_index=0 tracks.anglex = 0. tracks.angley = 0. tracks.anglez = 0. empty = tracks.Empty() empty.init() ghost = tracks.Ghost() ghost.init() global csurf #devel06 #csurfr ='/home/ian/Data/dipy/rh.pial.vtk' #csurfl ='/home/ian/Data/dipy/lh.pial.vtk' #devel07 csurfr ='/home/eg01/Data_Backup/Data/Adam/multiple_transp_volumes/freesurfer_trich/rh.pial.vtk' csurfl ='/home/eg01/Data_Backup/Data/Adam/multiple_transp_volumes/freesurfer_trich/lh.pial.vtk' csurfr = cortex.CorticalSurface(csurfr, angle_table=tracks.angle_table) csurfl = cortex.CorticalSurface(csurfl, angle_table=tracks.angle_table) csurfr.fadeout = True csurfl.fadeout = True csurfr.fadeout_speed = 0.001 csurfl.fadeout_speed = 0.001 csurfr.orbit_demo = True csurfr.orbit_anglez_rate = 1. csurfl.orbit_demo = True csurfl.orbit_anglez_rate = 1. csurfr.orbit_anglex_rate = -.1 csurfl.orbit_anglex_rate = -.1 csurfr.position[2]+=10 csurfl.position[2]+=10 csurfr.init() csurfl.init() #''' import copy global csurfR global csurfL csurfR = copy.copy(csurfr) csurfL = copy.copy(csurfl) csurfR.fadeout = False csurfL.fadeout = False csurfR.init() csurfL.init() global tb1 #devel06 #tb1_fname='/home/ian/Data/dipy/brain2_scan1_fiber_track_mni.trk' #devel07 tb1_fname='/home/eg01/Data_Backup/Data/PBC/pbc2009icdm/brain2/brain2_scan1_fiber_track_mni.trk' #tb1=tracks.ChromoTracks(tb1_fname,shrink=0.99) tb1=tracks.Tracks(tb1_fname,ang_table=True,shrink=0.99,subset=[0,20000]) tb1.angular_speed = 0. tb1.fade_demo = True tb1.opacity = 0.1 tb1.opacity_rate = -0.01 #tb1.fadeout = True #tb1.fadeout_speed = 0.001 tb1.position = -tb1.mean tb1.position[0] += 5. tb1.position[2] += 10.#20. tb1.manycolors = False #True #tb1.material_color = True tb1.orbit_demo = True #False tb1.orbit_anglez_rate = 1. tb1.orbit_anglex_rate = -.1 tb1.init() global t1; t1 = self.hidden_tracks(tb1_fname,0.1*0.1,angle_table=True, data_ext=tb1.data) global ct1; ct1 = self.hidden_tracks(tb1_fname,0.1*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) global ct6; ct6 = self.hidden_tracks(tb1_fname,1*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) #global ct7; ct7 = self.hidden_tracks(tb1_fname,0.7,angle_table=True,many_colors=True, data_ext=tb1.data) ''' global t1; t1 = self.hidden_tracks(tb1_fname,1*0.1,angle_table=True, data_ext=tb1.data) global t2; t2 = self.hidden_tracks(tb1_fname,.1*0.1,angle_table=True, data_ext=tb1.data) global t3; t3 = self.hidden_tracks(tb1_fname,.05*0.1,angle_table=True, data_ext=tb1.data) global t4; t4 = self.hidden_tracks(tb1_fname,.01*0.1,angle_table=True, data_ext=tb1.data) #global t5; t5 = self.hidden_tracks(tb1_fname,.005*0.1,angle_table=True, data_ext=tb1.data) #global ct1; ct1 = self.hidden_tracks(tb1_fname,.005*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) global ct2; ct2 = self.hidden_tracks(tb1_fname,.01*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) global ct3; ct3 = self.hidden_tracks(tb1_fname,.05*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) global ct4; ct4 = self.hidden_tracks(tb1_fname,.1*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) global ct5; ct5 = self.hidden_tracks(tb1_fname,.5*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) global ct6; ct6 = self.hidden_tracks(tb1_fname,1*0.1,angle_table=True,many_colors=True, data_ext=tb1.data) ''' #''' initial = 10*MS delayt = 5*MS delay = initial +delayt self.slots={00:{'actor':empty, 'slot':(0, delayt)}, 05:{'actor':ghost,'slot':( 0*MS+delayt, 800*MS+delayt )}, 80:{'actor':csurfL,'slot':( 0*MS+delayt, 800*MS )}, 90:{'actor':csurfR,'slot':( 0*MS+delayt, 800*MS )}} ''' #05:{'actor':ghost,'slot':(39*MS+delay, 800*MS+delay )}, 10:{'actor':tb1,'slot':( 0*MS+delay, 40*MS+delay )}, 11:{'actor':csurfl,'slot':( 0*MS+delay, 40*MS+delay )}, 12:{'actor':csurfr,'slot':( 0*MS+delay, 40*MS+delay )}, 21:{'actor':t1,'slot':( 40*MS+delay, 41*MS+delay )}, 22:{'actor':t1,'slot':( 40*MS+delay, 42*MS+delay )}, 23:{'actor':t1,'slot':( 40*MS+delay, 43*MS+delay )}, 31:{'actor':ct1,'slot':( 42*MS+delay, 47*MS+delay )}, 32:{'actor':ct1,'slot':( 42*MS+delay, 46*MS+delay )}, 33:{'actor':ct1,'slot':( 42*MS+delay, 45*MS+delay )}, 34:{'actor':ct6,'slot':( 47*MS+delay, 800*MS+delay )} #35:{'actor':ct7,'slot':( 48*MS, 800*MS )} ''' ''' self.slots={00:{'actor':empty, 'slot':(0, delay)}, 05:{'actor':ghost,'slot':( 0*MS+delay, 800*MS+delay )}, #05:{'actor':ghost,'slot':(39*MS+delay, 800*MS+delay )}, 10:{'actor':tb1,'slot':( 0*MS+delay, 40*MS+delay )}, 11:{'actor':csurfl,'slot':( 0*MS+delay, 40*MS+delay )}, 12:{'actor':csurfr,'slot':( 0*MS+delay, 40*MS+delay )}, 21:{'actor':t1,'slot':( 40*MS+delay, 41*MS+delay )}, 22:{'actor':t1,'slot':( 40*MS+delay, 42*MS+delay )}, 23:{'actor':t1,'slot':( 40*MS+delay, 43*MS+delay )}, 31:{'actor':ct1,'slot':( 42*MS+delay, 47*MS+delay )}, 32:{'actor':ct1,'slot':( 42*MS+delay, 46*MS+delay )}, 33:{'actor':ct1,'slot':( 42*MS+delay, 45*MS+delay )}, 34:{'actor':ct6,'slot':( 47*MS+delay, 800*MS+delay )} #35:{'actor':ct7,'slot':( 48*MS, 800*MS )} } ''' ''' self.slots={10:{'actor':tb1,'slot':( 0, 3*40*MS )}, 11:{'actor':csurfl,'slot':( 0,3*40*MS )}, 12:{'actor':csurfr,'slot':( 0,3*40*MS )}, 21:{'actor':t1,'slot':( 3*40*MS, 3*41*MS )}, 22:{'actor':t1,'slot':( 3*40*MS, 3*42*MS )}, 23:{'actor':t1,'slot':( 3*40*MS, 3*43*MS )}, 31:{'actor':ct1,'slot':( 3*42*MS, 3*47*MS )}, 32:{'actor':ct1,'slot':( 3*42*MS, 3*46*MS )}, 33:{'actor':ct1,'slot':( 3*42*MS,3*45*MS )}, 34:{'actor':ct6,'slot':( 3*47*MS, 3*48*MS )}, 35:{'actor':ct7,'slot':( 3*48*MS, 800*MS )} } ''' global last_time last_time = glut.glutGet(glut.GLUT_ELAPSED_TIME)
def init(self): import pbc G,hdr,R = pbc.load_approximate_training_set('/home/eg01/Data_Backup/Data/PBC/pbc2009icdm/') tl=[] self.slots={} colors=np.array([[1.,1.,1.], [0.5, 0, 0], [0.29411765, 0., 0.50980392], [0, 0.5, 0], [0., 0.49, 1.], [ 0.498, 1., 0.83 ], [1. , 0.84, 0. ], [0.74901961, 1., 0.], [0.49803922, 1. , 0. ]]) data=G[0]['tracks'] d1z=np.concatenate(data).mean(axis=0) for g in [0,1,2,3,4,5,6,7,8]: data=G[g]['tracks'] print g, G[g]['label_name'] global t #d1z=np.concatenate(data).mean(axis=0) data=[t-d1z for t in data] t=tracks.Tracks(None,data_ext=data) t.angular_speed = 0.1 t.brain_color=colors[g] t.manycolors = False t.opacity = 0.1 t.orbit_demo = True t.orbit_anglez_rate = 0. t.orbit_anglex_rate = 0. t.orbit_angley_rate = 1. t.init() t.position = np.array([0,0,10]) print 'tp', t.position tl.append(t) if g==0: self.slots[g]={'actor':tl[g],'slot':( 0, 15*MS ) } else: self.slots[g]={'actor':tl[g],'slot':( 0, 25*MS ) } #full arcuate arcuate=G[1]['tracks'] #arcuate2=self.bloat_bundle(arcuate) amean=np.concatenate(arcuate).mean(axis=0) data=[t-amean for t in arcuate] #data2=self.bloat_bundle(data) t=tracks.Tracks(None,data_ext=data) t.angular_speed = 0.1 t.brain_color=colors[1] t.manycolors = False t.opacity = 0.1 t.orbit_demo = True t.orbit_anglez_rate = 0. t.orbit_anglex_rate = 0. t.orbit_angley_rate = -1. t.init() t.position = np.array([-40,0,60]) self.slots[g+1]={'actor':t,'slot':( 27*MS, 800*MS ) } #broken arcuate - injury dataa,datab=self.break_bundle(data, [-3000,3000,0], [-3000,-3000,0], [3000, -3000,0]) #dataa=[t+np.array([100,0,0],np.float32) for t in dataa] #datab=[t+np.array([100,0,0],np.float32) for t in datab] t1=tracks.Tracks(None,data_ext=dataa) t1.angular_speed = 0.1 t1.brain_color=[1.,0.,0.] t1.manycolors = False t1.opacity = 0.1 t1.orbit_demo = True t1.orbit_anglez_rate = 0. t1.orbit_anglex_rate = 0. t1.orbit_angley_rate = -1. t1.init() t1.position = np.array([0,0,60]) #datab=[t+np.array([0,20,0]) for t in datab] t2=tracks.Tracks(None,data_ext=datab) t2.angular_speed = 0.1 t2.brain_color=[1.,0.,0.] t2.manycolors = False t2.opacity = 0.1 t2.orbit_demo = True t2.orbit_anglez_rate = 0. t2.orbit_anglex_rate = 0. t2.orbit_angley_rate = -1. t2.init() t2.position = np.array([0,0,60]) self.slots[g+2]={'actor':t1,'slot':( 27*MS, 800*MS ) } self.slots[g+3]={'actor':t2,'slot':( 27*MS, 800*MS ) } #bloated arcuate data2=self.bloat_bundle(data) t3=tracks.Tracks(None,data_ext=data2) t3.angular_speed = 0.1 t3.brain_color=colors[1] t3.manycolors = False t3.opacity = 0.1 t3.orbit_demo = True t3.orbit_anglez_rate = 0. t3.orbit_anglex_rate = 0. t3.orbit_angley_rate = -1. t3.init() t3.position = np.array([40,0,60]) self.slots[g+4]={'actor':t3,'slot':( 27*MS, 800*MS ) }
def init(self): br1path='/home/eg01/Data_Backup/Data/Eleftherios/CBU090133_METHODS/20090227_145404/Series_003_CBU_DTI_64D_iso_1000/dtk_dti_out/dti_FACT.trk' br2path='/home/eg01/Data_Backup/Data/Eleftherios/CBU090134_METHODS/20090227_154122/Series_003_CBU_DTI_64D_iso_1000/dtk_dti_out/dti_FACT.trk' br3path='/home/eg01/Data_Backup/Data/Eleftherios/CBU090133_METHODS/20090227_145404/Series_003_CBU_DTI_64D_iso_1000/dtk_dti_out/dti_RK2.trk' min_len=20 down=20 rand_tracks=-1 #default 10 min_search_len=70 min_search_len=70 max_search_len=140 corr_mat_demo=np.array([[ 1, 10560, 3609],[ 2, 17872, 15377],[ 3, 6447, 3897], [4, 18854, 6409], [ 5, 14416, 4515], [ 7, 9956, 13913], [8, 10853, 15572], [ 9, 13280, 8461], [ 0, 11275, 9224]]) print 'Minimum track length', min_len, 'mm' print 'Number of segments for downsampling',down print 'Number of tracks for detection',rand_tracks print 'Minimum searched track length', min_search_len, 'mm' print 'Maximum searched track length', max_search_len, 'mm' tracks1,hdr1=tv.read(br1path) tracks2,hdr2=tv.read(br2path) tracks3,hdr3=tv.read(br3path) #Load only track points, no scalars or parameters. tracks1=[t[0] for t in tracks1] tracks2=[t[0] for t in tracks2] tracks3=[t[0] for t in tracks3] print 'Before thresholding' print len(tracks1) print len(tracks2) print len(tracks3) print hdr1['dim'] print hdr2['dim'] print hdr3['dim'] #Apply thresholds tracks1=[t for t in tracks1 if tm.length(t) > min_len] tracks2=[t for t in tracks2 if tm.length(t) > min_len] tracks3=[t for t in tracks3 if tm.length(t) > min_len] print 'After thresholding' print len(tracks1) print len(tracks2) print len(tracks3) print 'Downsampling' tracks1z=[tm.downsample(t,down) for t in tracks1] tracks2z=[tm.downsample(t,down) for t in tracks2] tracks3z=[tm.downsample(t,down) for t in tracks3] print 'Detecting random tracks' lt1=len(tracks1) lt2=len(tracks2) lt3=len(tracks3) if rand_tracks==-1: #use already stored indices t_ind=corr_mat_demo[:,1] t_ind=np.array(t_ind) print 'Indices of tracks for detection', t_ind print 'Finding corresponding tracks' global track2track track2track= self.corresponding_tracks(t_ind,tracks1z,tracks2z) global track2track2 track2track2=self.corresponding_tracks(t_ind,tracks1z,tracks3z) print 'First Correspondance Matrix' print track2track print 'Second Correspondance Matrix' print track2track2 print 'first brain' print track2track[:,1].T print 'second brain' print track2track[:,2].T print 'third brain' print track2track2[:,2].T #fos.add(r,fos.line(tracks1,fos.red,opacity=0.01)) #fos.add(r,fos.line(tracks2,fos.cyan,opacity=0.01)) tracks1zshift = tracks1z tracks2zshift = tracks2z tracks3zshift = tracks3z m1z=np.concatenate(tracks1zshift).mean(axis=0) m2z=np.concatenate(tracks2zshift).mean(axis=0) m3z=np.concatenate(tracks3zshift).mean(axis=0) #tracks1zshift=[t+np.array([-70,0,0]) for t in tracks1z] #tracks2zshift=[t+np.array([70,0,0]) for t in tracks2z] tracks1zshift=[t-m1z for t in tracks1z] tracks2zshift=[t-m2z for t in tracks2z] tracks3zshift=[t-m3z for t in tracks3z] global t1 #devel07 t1=tracks.Tracks(None,data_ext=tracks1zshift) t1.angular_speed = 0.1 t1.brain_color=[1,0,0] t1.manycolors=False t1.opacity = 0.01 t1.orbit_demo=True t1.orbit_anglez_rate = 0. t1.orbit_anglex_rate = 0. t1.orbit_angley_rate = .2 t1.init() t1.position = np.array([-120,0,-30]) print 't1p',t1.position global t2 #devel07 t2=tracks.Tracks(None,data_ext=tracks2zshift) t2.angular_speed = 0.1 t2.brain_color=[0,1,1] t2.manycolors=False t2.opacity = 0.01 t2.orbit_demo=True t2.orbit_anglez_rate = 0. t2.orbit_anglex_rate = 0. t2.orbit_angley_rate = .2 t2.init() t2.position = np.array([0,0,-30]) print 't2p', t2.position global t3 #devel07 t3=tracks.Tracks(None,data_ext=tracks3zshift) t3.angular_speed = 0.1 t3.manycolors=False t3.brain_color=[0,0,1] t3.opacity = 0.01 t3.orbit_demo=True t3.orbit_anglez_rate = 0. t3.orbit_anglex_rate = 0. t3.orbit_angley_rate = .2 t3.init() #t3.position = - #np.concatenate(tracks3zshift).mean(axis=0)+np.array([70,0,0]) t3.position = np.array([120,0,-30]) print 't3p', t3.position self.slots={0:{'actor':t1,'slot':( 0, 800*MS ) }, 1:{'actor':t2,'slot':( 0, 800*MS ) }, 2:{'actor':t3,'slot':( 0, 800*MS ) }}
def init(self): global b1 #devel06 b1_fname='/home/ian/Data/dipy/brain2_scan1_fiber_track_mni.trk' #devel07 #b1_fname='/home/eg01/Data_Backup/Data/PBC/pbc2009icdm/brain2/brain2_scan1_fiber_track_mni.trk' b1=tracks.Tracks(b1_fname,subset=[0,200]) b1.angular_speed = 0. b1.picking_example = True b1.min_length = 20. b1.opacity = 0.8 b1.manycolors = False b1.brain_color = [0, 0, 0] b1.init() global texim #devel06 fname = '/home/ian/Data/dipy/Streaks4.bmp' #devel07 #fname = '/home/eg01/Devel/Fos/fos/core/tests/data/Streaks4.bmp' texim = texture.Texture_Demo(fname,red=False,green=False, blue=True) #texim.orbit = b1.data[4246] #print 'len(b1.data)', len(b1.data) random_inx=np.trunc(len(b1.data)*np.random.rand(200)).astype(np.int) #print random_inx #texim.orbits = [b1.data[4246],b1.data[3000],b1.data[2000],b1.data[1000]] texim.orbits =[] for i in random_inx: #print i if tm.length(b1.data[i]) > 20.: #print i texim.orbits.append(b1.data[i]) texim.orbits_index = np.zeros((len(texim.orbits),),np.int) texim.init() self.slots={0:{'actor':texim,'slot':( 0, 800*MS )}}#,