Beispiel #1
0
def show_simulated_2fiber_crossings():

    btable=np.loadtxt(get_data('dsi515btable'))
    bvals=btable[:,0]
    bvecs=btable[:,1:]
    
    data=create_data_2fibers(bvals,bvecs,d=0.0015,S0=100,angles=np.arange(0,47,5),snr=None)
    #data=create_data_2fibers(bvals,bvecs,d=0.0015,S0=100,angles=np.arange(0,92,5),snr=None)
    
    print data.shape
    #stop
    
    
    #"""
    dn=DiffusionNabla(data,bvals,bvecs,odf_sphere='symmetric642',
                      auto=False,save_odfs=True,fast=True)    
    dn.peak_thr=.4
    dn.iso_thr=.05
    dn.radius=np.arange(0,5,0.1)
    dn.radiusn=len(dn.radius)    
    dn.create_qspace(bvals,bvecs,16,8)
    dn.radon_params(64)
    dn.precompute_interp_coords()
    dn.precompute_fast_coords()
    dn.precompute_equator_indices(5.)
    dn.precompute_angular(None)#0.01)
    dn.fit()
    
    dn2=DiffusionNabla(data,bvals,bvecs,odf_sphere='symmetric642',
                      auto=False,save_odfs=True,fast=False)    
    dn2.peak_thr=.4
    dn2.iso_thr=.05
    dn2.radius=np.arange(0,5,0.1)
    dn2.radiusn=len(dn.radius)    
    dn2.create_qspace(bvals,bvecs,16,8)
    dn2.radon_params(64)
    dn2.precompute_interp_coords()
    dn2.precompute_fast_coords()
    dn2.precompute_equator_indices(5.)
    dn2.precompute_angular(None)#0.01)
    dn2.fit()
    #"""
    
        
    eis=EquatorialInversion(data,bvals,bvecs,odf_sphere='symmetric642',
                      auto=False,save_odfs=True,fast=True)    
    #eis.radius=np.arange(0,6,0.2)
    eis.radius=np.arange(0,5,0.1)    
    eis.gaussian_weight=None
    eis.set_operator('signal')#'laplap')
    eis.update()
    eis.fit()
    
    eil=EquatorialInversion(data,bvals,bvecs,odf_sphere='symmetric642',
                      auto=False,save_odfs=True,fast=True)
    #eil.radius=np.arange(0,6,0.2)
    eil.radius=np.arange(0,5,0.1)    
    eil.gaussian_weight=None
    eil.set_operator('laplacian')#'laplap')
    eil.update()
    eil.fit()
    
    eil2=EquatorialInversion(data,bvals,bvecs,odf_sphere='symmetric642',
                      auto=False,save_odfs=True,fast=True)    
    #eil2.radius=np.arange(0,6,0.2)
    eil2.radius=np.arange(0,5,0.1)
    eil2.gaussian_weight=None
    eil2.set_operator('laplap')
    eil2.update()
    eil2.fit()
        
    ds=DiffusionSpectrum(data,bvals,bvecs,odf_sphere='symmetric642',auto=True,save_odfs=True)

    gq=GeneralizedQSampling(data,bvals,bvecs,1.2,odf_sphere='symmetric642',squared=False,auto=False,save_odfs=True)
    gq.fit()
    
    gq2=GeneralizedQSampling(data,bvals,bvecs,3.,odf_sphere='symmetric642',squared=True,auto=False,save_odfs=True)
    gq2.fit()    

    #blobs=np.zeros((19,1,8,dn.odfn))
    blobs=np.zeros((10,1,6,dn.odfn))
    """
    blobs[:,0,0]=dn.odfs()
    blobs[:,0,1]=dn2.odfs()
    blobs[:,0,2]=eis.odfs()
    blobs[:,0,3]=eil.odfs()    
    blobs[:,0,4]=eil2.odfs()         
    blobs[:,0,5]=ds.odfs()
    blobs[:,0,6]=gq.odfs()
    blobs[:,0,7]=gq2.odfs()
    """
    blobs[:,0,0]=dn2.odfs()
    blobs[:,0,1]=eil.odfs()
    eo=eil2.odfs()
    #eo[eo<0.05*eo.max()]=0
    blobs[:,0,2]=eo         
    blobs[:,0,3]=ds.odfs()
    blobs[:,0,4]=gq.odfs()
    blobs[:,0,5]=gq2.odfs()
        
    show_blobs(blobs,dn.odf_vertices,dn.odf_faces,scale=0.5)