Esempio n. 1
0
def show():    

    #brains=[(1,1),(1,2),(2,1),(3,1),(3,2)]
    brains=[(1,1),(2,1),(3,1)]

    ids=tl.emi_atlas()    
    
    #print ids.keys()
    
    for (b,s) in brains:
        
        ids2 = pbc.load_pickle(path+'/Relabelling_8_sc1_'+str(b)+'_'+str(s)+'.pkl')
        #'/Relabelling_8_sc1_'+str(b)+'_'+str(s)+'.pkl'
        print b,s, ids2.keys()
        tracks = pbc.load_approximate_tracks(path,b,s)
        
        for i in ids:
            
            if i >0:
                
                r=fos.ren()
                
                color=np.array(ids[i]['color'])                
                indices=ids2[i]['indices']                
                
                bundle=[tracks[ind] for ind in indices]      
                fos.add(r,fos.line(bundle,color,opacity=0.9))      
                
                print 'Bundle_name',i,ids[i]['bundle_name']            
                
                fos.show(r,title=ids[i]['bundle_name'][0])
Esempio n. 2
0
def show_specific_bundles(r,template,ids,tes,tracks):
    
    for i in ids:
        vs=ids[i]['value']
        color=ids[i]['color']
        for v in vs:    
            
            bundle,indices=for_a_value_in_template(template,v,tes,tracks)            
            fos.add(r,fos.line(bundle,color,opacity=0.9))            
Esempio n. 3
0
def show_rep3(C, r=None, color=fos.white):

    if r == None: r = fos.ren()

    for c in C:
        fos.add(r, fos.line(C[c]['rep3'] / C[c]['N'], color))

    fos.show(r)

    return r
Esempio n. 4
0
def show_rep3(C,r=None,color=fos.white):

    if r==None: r=fos.ren()

    for c in C:
        fos.add(r,fos.line(C[c]['rep3']/C[c]['N'],color))

    fos.show(r)

    return r
Esempio n. 5
0
def tracks_in_roi():
    
    froi='/home/eg309/Data/ICBM_Wmpm/ICBM_WMPM.nii'
    wI=get_roi(froi,35,1) #4 is genu    
    fname='/home/eg309/Data/PROC_MR10032/subj_03/101/1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_QA_warp.dpy'
    dpr=Dpy(fname,'r')    
    T=dpr.read_indexed(range(2*10**4))
    print len(T)
    Troi=[]
    for t in T:        
        if track_roi_intersection_check(t,wI,.5):
            Troi.append(t)
    print(len(Troi))
    dpr.close()
    
    from dipy.viz import fos
    r=fos.ren()
    fos.add(r,fos.line(Troi,fos.red))
    fos.add(r,fos.point(wI,fos.green))
    fos.show(r)
Esempio n. 6
0
def test_fos_functions():
    
    # Create a renderer
    r=fos.ren()    
    
    # Create 2 lines with 2 different colors
    lines=[np.random.rand(10,3),np.random.rand(20,3)]    
    colors=np.random.rand(2,3)
    c=fos.line(lines,colors)    
    fos.add(r,c)    

    # Create a volume and return a volumetric actor using volumetric rendering        
    vol=100*np.random.rand(100,100,100)
    vol=vol.astype('uint8')    
    r = fos.ren()
    v = fos.volume(vol)
    fos.add(r,v)
    
    # Remove all objects
    fos.rm_all(r)
    
    # Put some text
    
    l=fos.label(r,text='Yes Men')
    fos.add(r,l)

    # Show everything
    #fos.show(r)

    
Esempio n. 7
0
def skeletonize():
    
    froi='/home/eg309/Data/ICBM_Wmpm/ICBM_WMPM.nii'
    wI=get_roi(froi,35,1) #4 is genu    
    #fname='/home/eg309/Data/PROC_MR10032/subj_03/101/1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_QA_warp.dpy'
    #fname='/home/eg309/Data/PROC_MR10032/subj_03/101/1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_QA_native.dpy'
    #fname='/home/eg309/Data/PROC_MR10032/subj_06/101/13122110752323511930000010092916083910900000227ep2dadvdiffDSI10125x25x25STs004a001_QA_native.dpy'
    fname='/home/eg309/Data/PROC_MR10032/subj_06/101/13122110752323511930000010092916083910900000227ep2dadvdiffDSI10125x25x25STs004a001_QA_warp.dpy'
    
    dpr=Dpy(fname,'r')    
    T=dpr.read_indexed(range(2*10**4))
    dpr.close()
    
    print len(T)    
    from dipy.core.track_metrics import downsample
    from dipy.core.track_performance import local_skeleton_clustering, most_similar_track_mam
    Td=[downsample(t,3) for t in T]
    C=local_skeleton_clustering(Td,d_thr=20.)
    
    #Tobject=np.array(T,dtype=np.object)
    
    from dipy.viz import fos
    r=fos.ren()
    
    #skeleton=[]
    
    for c in C:
        color=np.random.rand(3)
        if C[c]['N']>0:
            Ttmp=[]
            for i in C[c]['indices']:
                Ttmp.append(T[i])
            si,s=most_similar_track_mam(Ttmp,'avg')
            print si,C[c]['N']                
            fos.add(r,fos.line(Ttmp[si],color))
            
    #print len(skeleton)
    #fos.add(r,fos.line(skeleton,color))    
    #fos.add(r,fos.line(T,fos.red))    
    fos.show(r)
Esempio n. 8
0
def skeletonize_both():
    from dipy.viz import fos
    from dipy.core.track_metrics import downsample
    from dipy.core.track_performance import local_skeleton_clustering, most_similar_track_mam
    
    froi='/home/eg309/Data/ICBM_Wmpm/ICBM_WMPM.nii'
    wI=get_roi(froi,9,0) #4 is genu    
    fname='/home/eg309/Data/PROC_MR10032/subj_03/101/1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_QA_warp.dpy'
    #fname='/home/eg309/Data/PROC_MR10032/subj_03/101/1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_QA_native.dpy'
    #fname='/home/eg309/Data/PROC_MR10032/subj_06/101/13122110752323511930000010092916083910900000227ep2dadvdiffDSI10125x25x25STs004a001_QA_native.dpy'
    fname2='/home/eg309/Data/PROC_MR10032/subj_06/101/13122110752323511930000010092916083910900000227ep2dadvdiffDSI10125x25x25STs004a001_QA_warp.dpy'
    r=fos.ren()
    #'''
    dpr=Dpy(fname,'r')    
    T=dpr.read_indexed(range(2*10**4))
    dpr.close()    
    print len(T)    
    Td=[downsample(t,3) for t in T if length(t)>40]
    C=local_skeleton_clustering(Td,d_thr=20.)
    
    for c in C:
        #color=np.random.rand(3)
        color=fos.red
        if C[c]['N']>0:
            Ttmp=[]
            for i in C[c]['indices']:
                Ttmp.append(T[i])
            si,s=most_similar_track_mam(Ttmp,'avg')
            print si,C[c]['N']                
            fos.add(r,fos.line(Ttmp[si],color))                

    dpr=Dpy(fname2,'r')    
    T=dpr.read_indexed(range(2*10**4))
    dpr.close()    
    print len(T)    
    Td=[downsample(t,3) for t in T if length(t)>40]
    C=local_skeleton_clustering(Td,d_thr=20.)
    #r=fos.ren()
    for c in C:
        #color=np.random.rand(3)
        color=fos.yellow
        if C[c]['N']>0:
            Ttmp=[]
            for i in C[c]['indices']:
                Ttmp.append(T[i])
            si,s=most_similar_track_mam(Ttmp,'avg')
            print si,C[c]['N']                
            fos.add(r,fos.line(Ttmp[si],color))            
    #'''
    fos.add(r,fos.point(wI,fos.green))
    fos.show(r)
for c in C: print c, C[c]['rep3']/C[c]['N']

r=show_rep3(C)


print 'Merging ...'
t=time.clock()
C=merge(C,5.)
print time.clock()-t, len(C)

for c in C: print c, C[c]['rep3']/C[c]['N']

show_rep3(C,r,fos.red)

"""

#print 'Showing initial dataset.'
r=fos.ren()
#fos.add(r,fos.line(T,fos.white,opacity=1))
#fos.show(r)

print 'Showing dataset after clustering.'
#fos.clear(r)

colors=np.zeros((len(T),3))
for c in C:
    color=np.random.rand(1,3)
    for i in C[c]['indices']:
        colors[i]=color
fos.add(r,fos.line(T,colors,opacity=1))
Esempio n. 10
0
    print ('Generate QA in %d secs' %(t3-t2))

    T=tp.FACT_Delta(gqs.QA,gqs.IN,seeds_no=10000).tracks
    t4=time()
    print ('Create %d QA tracks in %d secs' %(len(T),t4-t3))

    #calculate single tensor
    ten=dt.Tensor(data,bvals,gradients,thresh=50)
    t5=time()
    print('Create FA in %d secs' %(t5-t4))

    T2=tp.FACT_Delta(ten.FA,ten.IN,seeds_no=10000,qa_thr=0.2).tracks

    t6=time()
    print ('Create %d FA tracks in %d secs' %(len(T2),t6-t5))

    T2=[t+np.array([100,0,0]) for t in T2]

    print dname
    print('Red tracks propagated based on QA')
    print('Green tracks  propagated based on FA')

    r=fos.ren()
    fos.add(r,fos.line(T,fos.red))
    fos.add(r,fos.line(T2,fos.green))
    fos.show(r)

    ALL_T.append((T,T2))

    
Esempio n. 11
0
        0,
    ], [6, 1.5, 0]]),
    np.array([[0, 1.8, 0], [
        1,
        1.8,
        0,
    ], [6, 1.8, 0]]),
    np.array([[0, 0, 0], [2, 2, 0], [4, 4, 0]])
]

tracks = [t.astype(np.float32) for t in tracks]

C = pf.larch_3split(tracks, None, 0.5)

r = fos.ren()
fos.add(r, fos.line(tracks, fos.red))
#fos.show(r)

for c in C:
    color = np.random.rand(3)
    for i in C[c]['indices']:
        fos.add(r, fos.line(tracks[i] + np.array([8., 0., 0.]), color))
        fos.add(r, fos.line(tracks[i] + np.array([16., 0., 0.]), color))

    fos.add(
        r,
        fos.line(C[c]['rep3'] / C[c]['N'] + np.array([16., 0., 0.]),
                 fos.white))

fos.show(r)
'''
Esempio n. 12
0
def plot_sphere(v, key):
    r = fos.ren()
    fos.add(r, fos.point(v, fos.green, point_radius=0.01))
    fos.show(r, title=key, size=(1000, 1000))
    #tracks=[tm.downsample(t,3) for t in tracks]
    #C=pf.local_skeleton_clustering(tracks,20.)
    print 'Done in total of ',time.clock()-tim,'seconds.'

    print 'Saving result...'
    pkl.save_pickle(C_fname,C)
    
    streams=[(i,None,None)for i in atracks]
    tv.write(appr_fname,streams,hdr)

else:

    print 'Loading result...'
    C=pkl.load_pickle(C_fname)

skel=[]
for c in C:
    skel.append(C[c]['repz'])
    
print 'Showing dataset after clustering...'
r=fos.ren()
fos.clear(r)
colors=np.zeros((len(skel),3))
for (i,s) in enumerate(skel):

    color=np.random.rand(1,3)
    colors[i]=color

fos.add(r,fos.line(skel,colors,opacity=1))
fos.show(r)
Esempio n. 14
0
along = reference[index+1]-reference[index]
import numpy as np
normal=along/np.sqrt(np.inner(along,along))
crossings = list([])
hit_div = list([])
for k in range(len(b1)):
    t = b1[k]
    cross= -1
    for i in range(len(t))[:-1]:
        q = t[i]
        r = t[i+1]
        if np.inner(normal,q-p)*np.inner(normal,r-p) <= 0:
#            print "Segment %d of track %d crosses the normal plane" % (i,k)
            cross = i
            crossings.append([k,cross])
            if np.inner((r-q),normal) != 0:
                alpha = np.inner((p-q),normal)/np.inner((r-q),normal)
                hit = q+alpha*(r-q)
                divergence = (r-q)-np.inner(r-q,normal)*normal
                hit_div.append([hit,divergence])
            else:
                hit_div.append([hit,0])
            break
#    if cross<0:
#        print "No crossing segment"
#    if cross >= 0:
print "%d tracks cross the plane" % (len(crossings))
r = fos.ren()
fos.add(r,fos.points(np.array([h[0] for h in hit_div])))
fos.show()
Esempio n. 15
0
tracks = [tm.downsample(t, 3) for t in T]

print 'Deleting unnecessary data...'
del streams, hdr

print 'Hidden Structure Clustering...'
now = time.clock()
C = pf.local_skeleton_clustering(tracks, d_thr=20)
print 'Done in', time.clock() - now, 's.'

print 'Reducing the number of points...'
T = [pf.approximate_ei_trajectory(t) for t in T]

print 'Showing initial dataset.'
r = fos.ren()
fos.add(r, fos.line(T, fos.white, opacity=0.1))
fos.show(r)

print 'Showing dataset after clustering.'
fos.clear(r)
colors = np.zeros((len(T), 3))
for c in C:
    color = np.random.rand(1, 3)
    for i in C[c]['indices']:
        colors[i] = color
fos.add(r, fos.line(T, colors, opacity=1))
fos.show(r)

print 'Some statistics about the clusters'
lens = [len(C[c]['indices']) for c in C]
print 'max ', max(lens), 'min ', min(lens)
Esempio n. 16
0
def warp_tracks():
    dn='/home/eg309/Data/TEST_MR10032/subj_03/101/'
    ffa=dn+'1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_bet_FA.nii.gz'    
    finvw=dn+'1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_warps_in_bet_FA.nii.gz'    
    fqadpy=dn+'1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_QA_native.dpy'
    flaff=dn+'1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_affine_transf.mat'
    fref ='/usr/share/fsl/data/standard/FMRIB58_FA_1mm.nii.gz'    
    fdis =dn+'1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_nonlin_displacements.nii.gz'
    fdis2 =dn+'1312211075232351192010092217244332311282470ep2dadvdiffDSI10125x25x25STs004a001_nonlin_displacements_withaff.nii.gz'
    #read some tracks
    dpr=Dpy(fqadpy,'r')
    T=dpr.read_indexed(range(150))
    dpr.close()
    
    #from fa index to ref index
    res=flirt2aff_files(flaff,ffa,fref)
    
    #load the reference img    
    imgref=ni.load(fref)
    refaff=imgref.get_affine()
    
    #load the invwarp displacements
    imginvw=ni.load(finvw)
    invwdata=imginvw.get_data()
    invwaff = imginvw.get_affine()
    
    #load the forward displacements
    imgdis=ni.load(fdis)
    disdata=imgdis.get_data()
    #load the forward displacements + affine
    imgdis2=ni.load(fdis2)
    disdata2=imgdis2.get_data()
    #from their difference create the affine
    disaff=imgdis2.get_data()-disdata  
    
    shift=np.array([disaff[...,0].mean(),disaff[...,1].mean(),disaff[...,2].mean()])
    
    shape=ni.load(ffa).get_data().shape
    
    disaff0=affine_transform(disaff[...,0],res[:3,:3],res[:3,3],shape,order=1)
    disaff1=affine_transform(disaff[...,1],res[:3,:3],res[:3,3],shape,order=1)
    disaff2=affine_transform(disaff[...,2],res[:3,:3],res[:3,3],shape,order=1)
    
    disdata0=affine_transform(disdata[...,0],res[:3,:3],res[:3,3],shape,order=1)
    disdata1=affine_transform(disdata[...,1],res[:3,:3],res[:3,3],shape,order=1)
    disdata2=affine_transform(disdata[...,2],res[:3,:3],res[:3,3],shape,order=1)
    
    #print disgrad0.shape,disgrad1.shape,disgrad2.shape
    #disdiff=np.empty(invwdata.shape)
    #disdiff[...,0]=disgrad0
    #disdiff[...,1]=disgrad1
    #disdiff[...,2]=disgrad2
    #ni.save(ni.Nifti1Image(disdiff,invwaff),'/tmp/disdiff.nii.gz')
    
    di=disdata0
    dj=disdata1
    dk=disdata2
    
    d2i=invwdata[:,:,:,0] + disaff0
    d2j=invwdata[:,:,:,1] + disaff1
    d2k=invwdata[:,:,:,2] + disaff2
    
    #di=disgrad0
    #dj=disgrad1
    #dk=disgrad2
    
    imgfa=ni.load(ffa)
    fadata=imgfa.get_data()
    faaff =imgfa.get_affine()
    
    Tw=[]
    Tw2=[]
    Tw3=[]
    
    froi='/home/eg309/Data/ICBM_Wmpm/ICBM_WMPM.nii'    
    
    roiI=get_roi(froi,3,1) #3 is GCC     
    roiI2=get_roi(froi,4,1) #4 is BCC
    roiI3=get_roi(froi,5,1) #4 is SCC
    roiI=np.vstack((roiI,roiI2,roiI3))  
  
    for t in T:
        if np.min(t[:,2])>=0:#to be removed
            mci=mc(di,t.T,order=1) #interpolations for i displacement
            mcj=mc(dj,t.T,order=1) #interpolations for j displacement
            mck=mc(dk,t.T,order=1) #interpolations for k displacement            
            D=np.vstack((mci,mcj,mck)).T                        
            WI=np.dot(t,res[:3,:3].T)+res[:3,3]+D#+ shift
            W=np.dot(WI,refaff[:3,:3].T)+refaff[:3,3]
            
            mc2i=mc(d2i,t.T,order=1) #interpolations for i displacement
            mc2j=mc(d2j,t.T,order=1) #interpolations for j displacement
            mc2k=mc(d2k,t.T,order=1) #interpolations for k displacement            
            D2=np.vstack((mc2i,mc2j,mc2k)).T                        
            WI2=np.dot(t,res[:3,:3].T)+res[:3,3]+D2 #+ shift
            W2=np.dot(WI2,refaff[:3,:3].T)+refaff[:3,3]
                        
            WI3=np.dot(t,res[:3,:3].T)+res[:3,3]
            W3=np.dot(WI3,refaff[:3,:3].T)+refaff[:3,3]
            
            Tw.append(W)
            Tw2.append(W2)
            Tw3.append(W3)
    

    from dipy.viz import fos
    r=fos.ren()
    fos.add(r,fos.line(Tw,fos.red))
    fos.add(r,fos.line(Tw2,fos.green))    
    fos.add(r,fos.line(Tw3,fos.yellow))
    fos.add(r,fos.sphere((0,0,0),10,color=fos.blue))
    fos.add(r,fos.point(roiI,fos.blue))
    fos.show(r)
Esempio n. 17
0
def plot_sphere(v,key):
    r = fos.ren()
    fos.add(r,fos.point(v,fos.green, point_radius= 0.01))
    fos.show(r, title=key, size=(1000,1000))
Esempio n. 18
0
tracks=[tm.downsample(t,3) for t in T]

print 'Deleting unnecessary data...'
del streams,hdr

print 'Hidden Structure Clustering...'
now=time.clock()
C=pf.local_skeleton_clustering(tracks,d_thr=20)
print 'Done in', time.clock()-now,'s.'

print 'Reducing the number of points...'
T=[pf.approximate_ei_trajectory(t) for t in T]

print 'Showing initial dataset.'
r=fos.ren()
fos.add(r,fos.line(T,fos.white,opacity=0.1))
fos.show(r)

print 'Showing dataset after clustering.'
fos.clear(r)
colors=np.zeros((len(T),3))
for c in C:
    color=np.random.rand(1,3)
    for i in C[c]['indices']:
        colors[i]=color
fos.add(r,fos.line(T,colors,opacity=1))
fos.show(r)

print 'Some statistics about the clusters'
lens=[len(C[c]['indices']) for c in C]
print 'max ',max(lens), 'min ',min(lens)
Esempio n. 19
0
def showline(myline):
    from dipy.viz import fos
    r = fos.ren()
    fos.add(r,fos.line(myline,fos.blue,opacity=0.5))
    fos.show(r)
Esempio n. 20
0
        np.array([[0,0.2,0],[1,0.2,0],[2,0.2,0]]),
        np.array([[2,0.2,0],[1,0.2,0],[0,0.2,0]]),
        np.array([[0,0,0],[0,1,0],[0,2,0]]),
        np.array([[0.2,0,0],[0.2,1,0],[0.2,2,0]]),
        np.array([[-0.2,0,0],[-0.2,1,0],[-0.2,2,0]]),
        np.array([[0,1.5,0],[1,1.5,0,],[6,1.5,0]]),
        np.array([[0,1.8,0],[1,1.8,0,],[6,1.8,0]]),
        np.array([[0,0,0],[2,2,0],[4,4,0]])]

                                    
tracks=[t.astype(np.float32) for t in tracks]

C=pf.larch_3split(tracks,None,0.5)

r=fos.ren()
fos.add(r,fos.line(tracks,fos.red))
#fos.show(r)

for c in C:
    color=np.random.rand(3)
    for i in C[c]['indices']:
        fos.add(r,fos.line(tracks[i]+np.array([8.,0.,0.]),color))
        fos.add(r,fos.line(tracks[i]+np.array([16.,0.,0.]),color))

    fos.add(r,fos.line(C[c]['rep3']/C[c]['N']+np.array([16.,0.,0.]),fos.white))
        
    
fos.show(r)

"""
Esempio n. 21
0
    I=np.array(np.where(roidata==no)).T    
    wI=np.dot(roiaff[:3,:3],I.T).T+roiaff[:3,3]
    wI=wI.astype('f4')
    return wI
    


from dipy.viz import fos

r=fos.ren()
#fos.add(r,fos.point(wI,fos.blue))
#fos.add(r,fos.point(wI2,fos.yellow))
#fos.add(r,fos.point(wI3,fos.green))
#fos.add(r,fos.point(wrefI,fos.cyan))
#fos.add(r,fos.point(wrefI,fos.yellow))
fos.add(r,fos.point(get_roi(froi,3),fos.blue))
fos.add(r,fos.point(get_roi(froi,4),fos.yellow))
fos.add(r,fos.point(get_roi(froi,5),fos.green))

fos.add(r,fos.line(Tfinal,fos.red))
fos.show(r)

print roiaff
print roiaff2
print roiaff3
print daff




Esempio n. 22
0
    I=np.array(np.where(roidata==no)).T    
    wI=np.dot(roiaff[:3,:3],I.T).T+roiaff[:3,3]
    wI=wI.astype('f4')
    return wI
    


from dipy.viz import fos

r=fos.ren()
#fos.add(r,fos.point(wI,fos.blue))
#fos.add(r,fos.point(wI2,fos.yellow))
#fos.add(r,fos.point(wI3,fos.green))
#fos.add(r,fos.point(wrefI,fos.cyan))
#fos.add(r,fos.point(wrefI,fos.yellow))
fos.add(r,fos.point(get_roi(froi,3),fos.blue))
fos.add(r,fos.point(get_roi(froi,4),fos.yellow))
fos.add(r,fos.point(get_roi(froi,5),fos.green))

fos.add(r,fos.line(Tfinal,fos.red))
fos.show(r)

print roiaff
print roiaff2
print roiaff3
print daff




for c in C:
    print c, C[c]['rep3'] / C[c]['N']

r = show_rep3(C)

print 'Merging ...'
t = time.clock()
C = merge(C, 5.)
print time.clock() - t, len(C)

for c in C:
    print c, C[c]['rep3'] / C[c]['N']

show_rep3(C, r, fos.red)
"""

#print 'Showing initial dataset.'
r=fos.ren()
#fos.add(r,fos.line(T,fos.white,opacity=1))
#fos.show(r)

print 'Showing dataset after clustering.'
#fos.clear(r)

colors=np.zeros((len(T),3))
for c in C:
    color=np.random.rand(1,3)
    for i in C[c]['indices']:
        colors[i]=color
fos.add(r,fos.line(T,colors,opacity=1))
Esempio n. 24
0
#fos.add(r,fos.line(tracks1,fos.red,opacity=0.01))
#fos.add(r,fos.line(tracks2,fos.cyan,opacity=0.01))

tracks1zshift=[t+np.array([-70,0,0]) for t in tracks1z]
tracks2zshift=[t+np.array([70,0,0]) for t in tracks2z]
tracks3zshift=[t+np.array([210,0,0]) for t in tracks3z]

import pbc
pbc.save_pickle('t1zs.pkl',tracks1zshift)
pbc.save_pickle('t2zs.pkl',tracks2zshift)
pbc.save_pickle('t3zs.pkl',tracks3zshift)

pbc.save_pickle('t2t.pkl',track2track)
pbc.save_pickle('t2t2.pkl',track2track2)

'''
r=fos.ren()

fos.add(r,fos.line(tracks1zshift,fos.red,opacity=0.02))
fos.add(r,fos.line(tracks2zshift,fos.cyan,opacity=0.02))
fos.add(r,fos.line(tracks3zshift,fos.blue,opacity=0.02))

print 'Show track to track correspondence br1 br2'
for i in track2track:
	fos.add(r,fos.line(tracks1zshift[i[1]],fos.yellow,opacity=0.5,linewidth=3))
	fos.label(r,str(i[0]),tracks1zshift[i[1]][0],(4,4,4),fos.white)

	fos.add(r,fos.line(tracks2zshift[i[2]],fos.yellow,opacity=0.5,linewidth=3))
	fos.label(r,str(i[0]),tracks2zshift[i[2]][0],(4,4,4),fos.white)

print 'Show track to track correspondence br1_FACT and br2_RK2'
Esempio n. 25
0
print 'third brain'
print track2track2[:,2].T


print 'Fos loading'
        
r=fos.ren()

#fos.add(r,fos.line(tracks1,fos.red,opacity=0.01))
#fos.add(r,fos.line(tracks2,fos.cyan,opacity=0.01))

tracks1zshift=[t+np.array([-70,0,0]) for t in tracks1z]
tracks2zshift=[t+np.array([70,0,0]) for t in tracks2z]
tracks3zshift=[t+np.array([210,0,0]) for t in tracks3z]

fos.add(r,fos.line(tracks1zshift,fos.red,opacity=0.02))
fos.add(r,fos.line(tracks2zshift,fos.cyan,opacity=0.02))
fos.add(r,fos.line(tracks3zshift,fos.blue,opacity=0.02))

print 'Show track to track correspondence br1 br2'
for i in track2track:
	fos.add(r,fos.line(tracks1zshift[i[1]],fos.yellow,opacity=0.5,linewidth=3))
	fos.label(r,str(i[0]),tracks1zshift[i[1]][0],(4,4,4),fos.white)

	fos.add(r,fos.line(tracks2zshift[i[2]],fos.yellow,opacity=0.5,linewidth=3))
	fos.label(r,str(i[0]),tracks2zshift[i[2]][0],(4,4,4),fos.white)

print 'Show track to track correspondence br1_FACT and br2_RK2'
for i in track2track2:
	fos.add(r,fos.line(tracks3zshift[i[2]],fos.yellow,opacity=0.5,linewidth=3))
	fos.label(r,str(i[0]),tracks3zshift[i[2]][0],(4,4,4),fos.white)
Esempio n. 26
0
for c in C:
    print c, C[c]['rep3'] / C[c]['N']

r = show_rep3(C)

print 'Merging ...'
t = time.clock()
C = merge(C, 5.)
print time.clock() - t, len(C)

for c in C:
    print c, C[c]['rep3'] / C[c]['N']

show_rep3(C, r, fos.red)
'''

#print 'Showing initial dataset.'
r=fos.ren()
#fos.add(r,fos.line(T,fos.white,opacity=1))
#fos.show(r)

print 'Showing dataset after clustering.'
#fos.clear(r)

colors=np.zeros((len(T),3))
for c in C:
    color=np.random.rand(1,3)
    for i in C[c]['indices']:
        colors[i]=color
fos.add(r,fos.line(T,colors,opacity=1))
    #C=pf.local_skeleton_clustering(tracks,20.)
    print 'Done in total of ', time.clock() - tim, 'seconds.'

    print 'Saving result...'
    pkl.save_pickle(C_fname, C)

    streams = [(i, None, None) for i in atracks]
    tv.write(appr_fname, streams, hdr)

else:

    print 'Loading result...'
    C = pkl.load_pickle(C_fname)

skel = []
for c in C:

    skel.append(C[c]['repz'])

print 'Showing dataset after clustering...'
r = fos.ren()
fos.clear(r)
colors = np.zeros((len(skel), 3))
for (i, s) in enumerate(skel):

    color = np.random.rand(1, 3)
    colors[i] = color

fos.add(r, fos.line(skel, colors, opacity=1))
fos.show(r)
Esempio n. 28
0
path =  '/home/eg01/Data/PBC/pbc2009icdm'
import pbc
from dipy.viz import fos
tract = 2
G,hdr = pbc.load_training_set(path)
r = fos.ren()
fos.add(r,fos.line(G[tract]['tracks'],fos.blue,opacity=0.1))
fos.show(r)