Exemplo n.º 1
0
def compare(x, y, z):
    t = TR*np.arange(raw.shape[3])
    plot(t, raw[x,y,z,:], 'r')
    plot(t, spm[x,y,z,:], 'g')
    plot(t, npy[x,y,z,:], 'b')
    xlabel('time (sec)')

#compare(39, 22, 18)
#compare(15,24,10)

def plusmieux(x, a): 
    return ((x>0)*x)**a


"""
from nipy.neurospin.glm import glm 

f = np.load(join(rootpath, run+'_design.npz'))
X = f['X']
conds = f['conditions']

# Gaussian filter 
import scipy.ndimage as nd

g_raw = glm(raw[xyz], X, axis=1)
g_npy = glm(npy[xyz], X, axis=1)
g_spm = glm(spm[xyz], X, axis=1)

def makeZim(g, c): 
    z = g.contrast(c).zscore()
Exemplo n.º 2
0
# Perform affine registration
# The output is an array-like object such that 
# np.asarray(T) is a customary 4x4 matrix 
print('Setting up registration...')
tic = time.time()
T = register(I, J, 
             similarity=similarity, 
             interp=interp, 
             optimizer=optimizer)
toc = time.time()
print('  Registration time: %f sec' % (toc-tic))


# Resample source image
print('Resampling source image...')
tic = time.time()
It = transform(I, T.inv(), reference=J)
toc = time.time()
print('  Resampling time: %f sec' % (toc-tic))

# Save resampled source
outfile =  source+'_TO_'+target+'.nii'
print ('Saving resampled source in: %s' % outfile)
save_image(It, outfile)

# Save transformation matrix
import numpy as np
np.save(outfile, np.asarray(T))

Exemplo n.º 3
0
# Optinal argument
iterations = 1
if len(sys.argv)>1: 
    iterations = int(sys.argv[1])

# Input images are provided with the nipy-data package
runs = ['run1', 'run2']
runnames = [example_data.get_filename('fiac','fiac0',run+'.nii.gz') \
                for run in runs]
images = [load_image(runname) for runname in runnames]

# Create Image4d instances -- this is a local class representing a
# series of 3d images
runs = [image4d(im, tr=2.5, slice_order='ascending', interleaved=True) \
            for im in images]

# Correct motion within- and between-sessions
# By default 2 within-loops and 5 between-loops will be performed
transforms = realign4d(runs, within_loops=iterations, between_loops=2*iterations)

# Resample data on a regular space+time lattice using 4d interpolation
corr_runs = [resample4d(runs[i], transforms=transforms[i]) for i in range(len(runs))]

# Save images 
for i in range(len(runs)):
    aux = split(runnames[i])
    save_image(corr_runs[i], join(aux[0], 'ra'+aux[1]))


Exemplo n.º 4
0
    return gaussians

# Main Program
# Load prior probability map 
print('Loading data...')
prior = load_probmap('_1000Prior.img')

# Load image data and apply masking
im1 = load_image(join(datadir, 'BiasCorIm.img'))
im2 = load_image(join(datadir, 'DistanceMap.img'))
data = np.asarray([im.get_data()[prior.mask()] for im in [im1,im2]])

# Save image data in nifti for visualization with `anatomist`
if save_images: 
    print('Saving prior image...')
    save_image(im1, join(savedir, 'BiasCorIm.nii'))
    im = Image(prior.brain_ppm(), affine=im1.get_affine())
    save_image(im, join(savedir, 'Prior_Brain.nii'))

# Allocate posterior probability map and initialize it from the prior
posterior = Probmap(prior)

# EM algorithm: refine posterior map
print('Starting EM...')
for iter in range(em_iters): 
    print('  M-step...')
    gaussians = m_step(posterior, data) 
    print('  E-step...')
    posterior = e_step(gaussians, prior, data, posterior=posterior)
    if save_images: 
        print('  Saving current posterior image...')
Exemplo n.º 5
0
fmri_files = [example_data.get_filename('fiac','fiac0',run) for run in ['run1.nii.gz','run2.nii.gz']]
design_files = [example_data.get_filename('fiac','fiac0',run) for run in ['run1_design.npz','run2_design.npz']]
mask_file = example_data.get_filename('fiac','fiac0','mask.nii.gz') 

# Get design matrix as numpy array
print('Loading design matrices...')
X = [np.load(f)['X'] for f in design_files]

# Get multi-session fMRI data 
print('Loading fmri data...')
Y = [load_image(f) for f in fmri_files]

# Get mask image
print('Loading mask...')
mask = load_image(mask_file)

# GLM fitting 
print('Starting fit...')
##glm = LinearModel(Y, X, mask=mask, model='ar1')
glm = LinearModel(Y, X, mask=mask)

# Compute the required contrast
print('Computing test contrast image...')
nregressors = X[0].shape[1] ## should check that all design matrices have the same 
c = np.zeros(nregressors)
c[0:4] = cvect
con, vcon, zmap, dof = glm.contrast(c)

# Save Zmap image 
save_image(zmap, 'zmap.nii.gz')
Exemplo n.º 6
0
from os.path import join, split
import sys
import time
from glob import glob

from nipy.io.imageformats import load as load_image, save as save_image
from nipy.neurospin.registration import FmriRealign4d

# Create Nifti1Image instances from both input files
rootpath = "D:\\home\\Alexis\\data\\karla"
runnames = glob(join(rootpath, "fms*.nii"))
runs = [load_image(run) for run in runnames]

## DEBUG
"""
idx = [4,5,6,7]
runs = [runs[i] for i in idx]
runnames = [runnames[i] for i in idx]
"""
print runnames

# Do the job
R = FmriRealign4d(runs, tr=2.4, slice_order="ascending", interleaved=False)
R.correct_motion()
corr_runs = R.resample()

# Save images
for i in range(len(runs)):
    aux = split(runnames[i])
    save_image(corr_runs[i], join(aux[0], "new_ra" + aux[1]))
Exemplo n.º 7
0
## Clean using crude brain mask 
ppm = geometry_cleaner(ppm, brain_prior, mask)
ppm, mask = normalize(ppm)

# Smooth using log opinion pool 
print('Performing log opinion pool smoothing...')
for tissue in tissues: 
    ppm[tissue] = log_opinion_pool(ppm[tissue], mask, size=1)
ppm, mask = normalize(ppm)

# Brain ppms 
raw_brain = brain_ppm(raw_ppm, raw_mask)
brain = brain_ppm(ppm, mask) 

# Save images
print('Saving maps...')
save_image(Image(raw_brain, affine=affine), os.path.join(datadir, 'brain_raw_ppm.nii'))
save_image(Image(brain, affine=affine), os.path.join(datadir, 'brain_'+str(crude_brain)+'_ppm.nii'))

# Displays 
"""
for slice in [60, 80, 100, 120]:
    display(raw_brain, slice=slice)
    display(brain, slice=slice)
"""    

"""
display_all(raw_ppm)
display_all(ppm)
"""