Esempio n. 1
0
def test_dandelion():
    
    fimg,fbvals,fbvecs=get_data('small_64D')    
    bvals=np.load(fbvals)
    gradients=np.load(fbvecs)
    data=nib.load(fimg).get_data()    
    
    print(bvals.shape, gradients.shape, data.shape)    
    sd=SphericalDandelion(data,bvals,gradients)    
    sdf=sd.spherical_diffusivity(data[5,5,5])    
    print(sdf.shape)
    gq=GeneralizedQSampling(data,bvals,gradients)
    sodf=gq.odf(data[5,5,5])     
        
    eds=np.load(get_sphere('symmetric362'))
    vertices=eds['vertices']
    faces=eds['faces']    
    print(faces.shape)    
    peaks,inds=peak_finding(np.squeeze(sdf),faces)
    print(peaks, inds)    
    peaks2,inds2=peak_finding(np.squeeze(sodf),faces)
    print(peaks2, inds2)
        
    '''
Esempio n. 2
0
for fib in fibs:

    dix=get_sim_voxels(fib)
    
    data=dix['data']
    bvals=dix['bvals']
    gradients=dix['gradients']
    
    no=10
    
    print(bvals.shape, gradients.shape, data.shape)    
    print(dix['fibres'])
    
    np.set_printoptions(2)
    for no in range(len(data)):
    
        sd=SphericalDandelion(data,bvals,gradients)    
        sdf=sd.spherical_diffusivity(data[no])    
    
        gq=GeneralizedQSampling(data,bvals,gradients)
        sodf=gq.odf(data[no])
                
        #print(faces.shape)    
        peaks,inds=peak_finding(np.squeeze(sdf),faces)
        #print(peaks, inds)    
        peaks2,inds2=peak_finding(np.squeeze(sodf),faces)
        #print(peaks2, inds2)    
        print 'sdi',inds,'sodf',inds2, vertices[inds[0]]-vertices[inds2[0]]     
        #print data[no]

Esempio n. 3
0
def simulations_marta(): 

    #gq_tn_calc_save()
    #a_few_phantoms()
    
    #sd=['fibres_2_SNR_100_angle_60_l1_1.4_l2_0.35_l3_0.35_iso_0_diso_00']
    #sd=['fibres_2_SNR_60_angle_60_l1_1.4_l2_0.35_l3_0.35_iso_0_diso_00']
    #sd=['fibres_2_SNR_100_angle_60_l1_1.4_l2_0.35_l3_0.35_iso_1_diso_0.7']
    sd=['fibres_2_SNR_100_angle_90_l1_1.4_l2_0.35_l3_0.35_iso_0_diso_00']
    #sd=['fibres_1_SNR_100_angle_00_l1_1.4_l2_0.35_l3_0.35_iso_0_diso_00']
    #sd=['fibres_2_SNR_20_angle_90_l1_1.4_l2_0.35_l3_0.35_iso_0_diso_00']
    #for simfile in simdata:
    
    np.set_printoptions(2)
    
    dotpow=6
    width=6
    sincpow=2
    sampling_length=1.2
    
    print dotpow,width,sincpow
    print sampling_length
    
    verts,faces=get_sphere('symmetric362')
    
    for simfile in sd:
        
        data=np.loadtxt(simdir+simfile)
        sf=simfile.split('_')        
        b_vals_dirs=np.loadtxt(simdir+'Dir_and_bvals_DSI_marta.txt')
        bvals=b_vals_dirs[:,0]*1000
        gradients=b_vals_dirs[:,1:]
            
        data2=data[::1000,:]   
        
        table={'fibres':sf[1],'snr':sf[3],'angle':sf[5],'l1':sf[7],'l2':sf[9],\
               'l3':sf[11],'iso':sf[13],'diso':sf[15],\
               'data':data2,'bvals':bvals,'gradients':gradients}
        
        print table['data'].shape
        pdi=ProjectiveDiffusivity(table['data'],table['bvals'],table['gradients'],dotpow,width,sincpow)
        gqs=GeneralizedQSampling(table['data'],table['bvals'],table['gradients'],sampling_length)
        ten=Tensor(table['data'],table['bvals'],table['gradients'])
        r=fvtk.ren()
        
        for i in range(10):#range(len(sdi.xa())):
            
            print 'No:',i
            print 'simulation fibres ',table['fibres'], ' snr ',table['snr'],' angle ', table['angle']
            pdiind=pdi.ind()[i]
            gqsind=gqs.ind()[i]
            
            print 'indices',pdiind,gqsind,\
                np.rad2deg(np.arccos(np.dot(verts[pdiind[0]],verts[pdiind[1]]))),\
                np.rad2deg(np.arccos(np.dot(verts[gqsind[0]],verts[gqsind[1]])))
                
            #ten.ind()[i],
            print 'peaks', pdi.xa()[i]*10**3,gqs.qa()[i]
            
            pd=pdi.spherical_diffusivity(table['data'][i])#*10**3
            #print 'pd stat',pd.min(),pd.max(),pd.mean(),pd.std()
            
            #colors=fvtk.colors(sdf,'jet')
            sdfcol=np.interp(pd,[pd.mean()-4*pd.std(),pd.mean()+4*pd.std()],[0,1])
            colors=fvtk.colors(sdfcol,'jet',False)        
            fvtk.add(r,fvtk.point(5*pdi.odf_vertices+np.array([12*i,0,0]),colors,point_radius=.6,theta=10,phi=10))
            
            odf=gqs.odf(table['data'][i])
            colors=fvtk.colors(odf,'jet')
            fvtk.add(r,fvtk.point(5*gqs.odf_vertices+np.array([12*i,-12,0]),colors,point_radius=.6,theta=10,phi=10))
             
        fvtk.show(r)