def run_PSO_testingData_slice(NC=2, iso=0, fr=0, Npart=100, Niter=50, slicez=0, snr=30, deno=None, verb=0): if deno == 0: den = None else: den = 1 data, affine, gtab = get_train_dti(snr=snr, denoised=den) data = data[:, :, slicez].squeeze() mask = nib.load("wm_mask_hardi_01.nii.gz").get_data() mask = mask[:, :, slicez].squeeze() print("{} {} {} {} {} {} {}".format(NC, iso, fr, Npart, Niter, snr, deno)) for ix in range(data.shape[0]): for iy in range(data.shape[1]): if mask[ix, iy]: sig = data[ix, iy] plain = run_PSO( sig, gtab, NC=NC, iso=iso, fr=fr, bounds=None, metric=0, S=Npart, maxit=Niter, w=0.75, phi_p=0.5, phi_g=0.5, verbose=verb, plotting=0, out=0, ) printy = str(ix) printy += " " printy += str(iy) printy += " " printy += str(slicez) for ii in range(plain.shape[0]): printy += " " printy += str(plain[ii]) print(printy)
from load_data import get_train_dti, get_train_hardi, get_train_dsi, get_train_mask from dipy.reconst.dti import TensorModel from pylab import imshow, show, colorbar, subplot, title, figure import nibabel as nib import numpy as np for datat in range(2): if datat == 0: print 'fitting with dti' data, affine, gtab = get_train_dti(30) elif datat == 1: print 'fitting with hardi' data, affine, gtab = get_train_hardi(30) elif datat == 2: print 'fitting with dsi' data, affine, gtab = get_train_dsi(30) mask, affine = get_train_mask() data.shape mask.shape model = TensorModel(gtab) fit = model.fit(data, mask) print 'done!' fa = fit.fa
import nibabel as nib import numpy as np from dipy.sims.voxel import MultiTensor from load_data import get_train_dti # mask = nib.load('/media/Data/work/isbi2013/wm_mask_hardi_01.nii.gz').get_data() mask = nib.load('/media/Data/work/isbi2013/test_hardi_30_den=1_fa_0025_dilate2_mask.nii.gz').get_data() _, affine, gtab = get_train_dti() def parse_params(params, NC, iso, fr): mevals = [] angles = [] fractions = [] for i in range(NC): mevals.append(np.array([params[4 * i], params[4 * i + 1], params[4 * i + 1]])) angles.append(np.array([params[4 * i + 2], params[4 * i + 3]])) if iso: mevals.append(np.array([params[4 * NC], params[4 * NC], params[4 * NC]])) angles.append(np.array([0., 0.])) iso_frac = params[4 * NC + 1] if ~fr: if ~iso: fractions.append(np.ones((1, NC)) * (100. / NC)) else: fractions.append(np.vstack((np.ones((NC, 1)) * (1. / NC) * (100. - iso_frac), np.array([iso_frac]))).T) else: if NC == 1: frac = 100.