misc["tasks"] = Conditions misc["mask_url"] = paths['mask'] misc.write() # step 2. Create one design matrix for each session design_matrices = {} for sess in Sessions: design_matrices[sess] = glm_tools.design_matrix( paths['misc'], paths['dmtx'][sess], sess, paths['paradigm'], frametimes, hrf_model=hrf_model, drift_model=drift_model, hfcut=hfcut, model=model_id) # step 3. Compute the Mask # fixme : it should be possible to provide a pre-computed mask print "Computing the Mask" mask_array = compute_mask_files( paths['fmri'].values()[0][0], paths['mask'], True, infTh, supTh) # step 4. Creating functional contrasts print "Creating Contrasts" clist = contrast_tools.ContrastList(misc=ConfigObj(paths['misc']), model=model_id) generate_localizer_contrasts(clist) contrast = clist.save_dic(paths['contrast_file']) CompletePaths = glm_tools.generate_brainvisa_ouput_paths( paths["contrasts"], contrast) # step 5. Fit the glm for each session glms = {} for sess in Sessions: print "Fitting GLM for session : %s" % sess glms[sess] = glm_tools.glm_fit(
paradigm = dm.load_protocol_from_csv_file(paradigm_file, session=0) design_matrix = dm.DesignMatrix( frametimes, paradigm, hrf_model=hrf_model, drift_model=drift_model, hfcut=hfcut) design_matrix.show() pylab.savefig(op.join(swd, 'design_matrix.png')) # design_matrix.save(...) ######################################## # Mask the data ######################################## print 'Computing a brain mask...' mask_path = op.join(swd, 'mask.nii') mask_array = compute_mask_files( data_path, mask_path, False, 0.4, 0.9) ######################################## # Perform a GLM analysis ######################################## print 'Fitting a GLM (this takes time)...' fmri_image = load(data_path) Y = fmri_image.get_data()[mask_array] model = "ar1" method = "kalman" my_glm = nipy.neurospin.glm.glm() glm = my_glm.fit(Y.T, design_matrix.matrix, method="kalman", model="ar1") #########################################