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) '''
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]
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)