Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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']
Exemple #6
0
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)