def dipole_fit(): mu.add_mmvt_code_root_to_path() from src.preproc import meg importlib.reload(meg) subject = mu.get_user() args = meg.read_cmd_args( dict(subject=subject, mri_subject=subject, atlas=mu.get_atlas())) meg.init(subject, args) dipoles_times = [(bpy.context.scene.meg_dipole_fit_tmin, bpy.context.scene.meg_dipole_fit_tmax)] dipoloes_title = mask_roi = MEGPanel.current_cluster['intersects'][0][ 'name'] meg.dipoles_fit(dipoles_times, dipoloes_title, None, mu.get_real_fname('meg_noise_cov_fname'), mu.get_real_fname('meg_evoked_fname'), mu.get_real_fname('head_to_mri_trans_mat_fname'), 5., bpy.context.scene.meg_dipole_fit_use_meg, bpy.context.scene.meg_dipole_fit_use_eeg, mask_roi=mask_roi, do_plot=False, n_jobs=4)
def morph_stc(args): args = meg.read_cmd_args( dict(subject=args.subject, mri_subject=args.mri_subject, task='MSIT', data_per_task=True, contrast='interference', cleaning_method='nTSSS')) morph_to_subject = 'ab' # 'fsaverage5' fname_format, fname_format_cond, conditions = meg.init( args.subject[0], args, args.mri_subject[0]) meg.morph_stc(conditions, morph_to_subject, args.inverse_method[0], args.n_jobs)
def calc_msit_stcs_diff(args): args = meg.read_cmd_args(dict( subject=args.subject, mri_subject=args.mri_subject, task='MSIT', data_per_task=True, contrast='interference', cleaning_method='nTSSS')) smooth = False fname_format, fname_format_cond, conditions = meg.init(args.subject[0], args, args.mri_subject[0]) stc_template_name = meg.STC_HEMI_SMOOTH if smooth else meg.STC_HEMI stc_fnames = [stc_template_name.format(cond=cond, method=args.inverse_method[0], hemi='lh') for cond in conditions.keys()] output_fname = stc_template_name.format(cond='diff', method=args.inverse_method[0], hemi='lh') meg.calc_stc_diff(*stc_fnames, output_fname)
def calc_mne_python_sample_data_stcs_diff(args): args = meg.read_cmd_args(dict( subject=args.subject, mri_subject=args.mri_subject, contrast = 'audvis', fname_format = '{subject}_audvis-{ana_type}.{file_type}', fname_format_cond = '{subject}_audvis_{cond}-{ana_type}.{file_type}', conditions = ['LA', 'RA'] )) smooth = False fname_format, fname_format_cond, conditions = meg.init(args.subject[0], args, args.mri_subject[0]) stc_template_name = meg.STC_HEMI_SMOOTH if smooth else meg.STC_HEMI stc_fnames = [stc_template_name.format(cond=cond, method=args.inverse_method[0], hemi='lh') for cond in conditions.keys()] output_fname = stc_template_name.format(cond='diff', method=args.inverse_method[0], hemi='lh') meg.calc_stc_diff(*stc_fnames, output_fname)
def analyze(subject): flags = {} args = meg.read_cmd_args( dict( subject=subject, task='tapping', conditions='left', # atlas='laus250', inverse_method='MNE', t_min=-2, t_max=2, noise_t_min=-2.5, noise_t_max=-1.5, bad_channels=[], stim_channels='STIM', pick_ori='normal', reject=False, overwrite_epochs=True, overwrite_inv=True, overwrite_noise_cov=True, overwrite_ica=True)) fname_format, fname_format_cond, conditions = meg.init(subject, args) conditions['left'] = 4 args.conditions = conditions if op.isfile(meg.RAW): raw = mne.io.read_raw_fif(meg.RAW, preload=True) else: raw = mne.io.read_raw_ctf(op.join(MEG_DIR, subject, 'raw', 'DC_leftIndex_day1.ds'), preload=True) meg.remove_artifacts(raw, remove_from_raw=True, overwrite_ica=args.overwrite_ica, do_plot=False) # print(raw.info['sfreq']) # if not op.isfile(meg.RAW): # raw.save(meg.RAW) # flags, evoked, epochs = meg.calc_evokes_wrapper(subject, conditions, args, flags, raw=raw) # if evoked is not None: # fig = evoked[0].plot_joint(times=[-0.5, 0.05, 0.150, 0.250, 0.6]) # plt.show() # flags = meg.calc_fwd_inv_wrapper(subject, conditions, args, flags) # flags, stcs_conds, _ = meg.calc_stc_per_condition_wrapper(subject, conditions, args.inverse_method, args, flags) # flags = meg.calc_labels_avg_per_condition_wrapper(subject, conditions, args.atlas, args.inverse_method, stcs_conds, args, flags) dipoles_times = [(0.25, 0.35)] dipoles_names = ['peak_left_motor']
stc_fname = op.join(meg_sub_fol, '{}-{}.stc'.format(subject, task)) hcp_params = dict(hcp_path=HCP_DIR, subject=subject, data_type=task) args = meg.read_cmd_args( dict( subject=subject, task='task', conditions='face', # atlas='laus250', inverse_method='MNE', t_min=-1.5, t_max=2.5, reject=False, overwrite_epochs=False)) fname_format, fname_format_cond, conditions = meg.init(subject, args) print('epo: {}, evo: {}'.format(meg.EPO, meg.EVO)) ############################################################################## # We first reprocess the data from scratch # # That is, almost from scratch. We're relying on the ICA solutions and # data annotations. # # In order to arrive at the final ERF we need to pool over two runs. # for each run we need to read the raw data, all annotations, apply # the reference sensor compensation, the ICA, bandpass filter, baseline # correction and decimation (downsampling) # these values are looked up from the HCP manual
l_freq=1, h_freq=15, extract_mode='mean_flip', bad_channels=[], stim_channels='STIM', pick_ori='normal', reject=False, overwrite_epochs=False, overwrite_inv=False, overwrite_noise_cov=False, overwrite_ica=False, do_plot_ica=False, fwd_usingEEG=False))) subject = args.subject[0] meg.init(subject, args) conditions = dict(left=4, right=8) raw_files_template = op.join(MEG_DIR, args.subject[0], 'raw', 'DC_{cond}Index_day?.ds') sessions = sorted([ f[-4] for f in glob.glob( raw_files_template.format(cond=list(conditions.keys())[0])) ]) motor_rois = ['precentral_{}'.format(ind) for ind in range(1, 20)] # ['precentral_11', 'precentral_5'] sfreq = 625 eog_channel = 'MZF01-1410' # Doesn't give good results, so we'll use manuualy pick ICA componenets for inverse_method in args.inverse_method: # analyze(subject, raw_files_template, inverse_method, conditions, sessions, args) # dipole_fit(conditions, True, (int(args.l_freq), int(args.h_freq)), extract_mode=args.extract_mode) # plot_motor_response(subject, args.atlas, motor_rois, sfreq, sessions, args)