Esempio n. 1
0
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)
Esempio n. 2
0
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.