예제 #1
0
def make_ref_dic():
    '''
        Creates a dictionary containing reference fibres, names, and template values
        for the original 20 tracts in the training dataset
    '''
    path='/home/eg01/Data/PBC/pbc2009icdm'
    #name_list=['Unassigned', 'Arcuate L', 'Cingulum L','Corticospinal R', 'Forceps Major','Fornix','Inferior Occipitofrontal Fasciculus L','Superior Longitudinal Fasciculus L','Uncinate R']
    name_list=['Not Assigned']+[ids[i]['bundle_name'][0] for i in range(1,9)]
    #name_list=['Not Assigned']+[ids[i]['bundle_name'][0] for i in range(1,21)]
    #value_list=[0,41,35,9,5,6,31,41,48]
    #value_list= [[0]]+[ids[i]['value'] for i in range(1,21)]
    
    value_list= [[0]]+[ids[i]['value'] for i in range(1,9)]

    #corr = pbc.load_pickle(path+'/corr_20.pkl')
    corr = pbc.load_pickle(path+'/corr_8_sc1.pkl')
    
    #brainscan_keys = [(1,1),(1,2),(2,1),(3,1),(3,2)]
    brainscan_keys = [(1,1),(2,1),(3,1)]

    refdic={}
    
    #for (i, (b,s)) in enumerate([(1,1)]):
    for (i, (b,s)) in enumerate(brainscan_keys):
        
        refdic[(b,s)] = {}
        refdic[(b,s)]['reference_indices']=[[]]+[list(set(c)) for c in corr[i]]        
        refdic['names'] = name_list        
        refdic['template_values'] = value_list        
        template,tcs,tes,tracks = load_template_tes_and_tracks(path,b,s)
        
        #refdic[(b,s)]['reference_tracks'] =[[]]+ [[tracks[r] for r in l] for l in refdic[(b,s)]['reference_indices'][1:]]
        
        for (j,l) in enumerate(refdic[(b,s)]['reference_indices']):
            if j==0:
                refdic[(b,s)]['reference_tracks'] = [[]]
            else:
                refdic[(b,s)]['reference_tracks'].append( [tracks[t] for t in l])
                
        for (j,values) in enumerate(value_list):           
            if j==0:
                refdic[(b,s)]['template_tracks'] =[[]]
                refdic[(b,s)]['template_indices'] = [[]]
            else:
                all_template_tracks = []
                all_template_indices = []
                for value in values:
                    #template_tracks, template_indices = tracks_and_indices_for_a_value_in_template(template,value,tes,tracks)
                    template_tracks, template_indices = for_a_value_in_template(template,value,tes,tracks)
                    all_template_tracks += template_tracks
                    all_template_indices += template_indices
                refdic[(b,s)]['template_tracks'] += [all_template_tracks]
                refdic[(b,s)]['template_indices'] += [all_template_indices]
        
    pbc.save_pickle(path+'/refdic_8_sc1.pkl',refdic)
예제 #2
0
def relabel_them_all(no):
    
    path='/home/eg01/Data/PBC/pbc2009icdm'

    refdic = pbc.load_pickle('/home/ian/tractarian/refdic.pkl')
    
    brains = [(1,1),(1,2),(2,1),(3,1),(3,2)]
    
    
    for (b,s) in [brains[no]]:
        print b,s
        
        tA= refdic[(b,s)]['template_tracks']
        iA= refdic[(b,s)]['template_indices']
        
        tR = [] 
        iR = []         
        cR=[]
        
        for bundle in range(1,21):
            
            tmp=refdic[(b,s)]['reference_tracks'][bundle] 
            
            tR+=tmp
            
            iR+=refdic[(b,s)]['reference_indices'][bundle]     
            
            #print len(tmp),np.repeat(bundle,len(tmp)).astype(int)
            
            cR+=list(np.repeat(bundle,len(tmp)).astype(int))       

        relabelling = {}

        for bundle in range(1,21):
            print 'Relabelling', bundle
            #print len(tR),len(iR),len(cR)
            relabelling[bundle] =  map_bundle_to_refs(tA[bundle], iA[bundle], tR, iR, cR)
        
                
        IDS=ids
        
        for bundle1 in range(1,21):
            print 'Remapping', 
            for bundle2 in range(1,21):
            
                try:
                
                    IDS[bundle2]['indices']+=relabelling[bundle1][bundle2]
                    
                except :
                    IDS[bundle2]['indices']=relabelling[bundle1][bundle2]
        
        print 'Saving',b,s            
        pbc.save_pickle(path+'/Relabelling_'+str(b)+'_'+str(s)+'.pkl',IDS)
예제 #3
0
print track2track
print 'Second Correspondance Matrix'
print track2track2

print 'Fos loading'


#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: