def color_electrodes(current_electrode, prev_electrode):
    current_electrode_group = mu.elec_group(current_electrode, bpy.context.scene.bipolar)
    current_electrode_hemi = ElecsPanel.groups_hemi[current_electrode_group]
    prev_electrode_group = mu.elec_group(prev_electrode, bpy.context.scene.bipolar)
    prev_electrode_hemi = ElecsPanel.groups_hemi[prev_electrode_group]
    if current_electrode_hemi != prev_electrode_hemi:
        print('flip hemis! clear {}'.format(prev_electrode_hemi))
        ElecsPanel.addon.clear_cortex([prev_electrode_hemi])
    color = bpy.context.scene.electrode_color
    ElecsPanel.addon.object_coloring(bpy.data.objects[current_electrode], tuple(color)) #cu.name_to_rgb('green'))
    if prev_electrode != current_electrode:
        ElecsPanel.addon.object_coloring(bpy.data.objects[prev_electrode], (1, 1, 1, 1))
Exemple #2
0
def color_electrodes(current_electrode, prev_electrode):
    # bpy.context.scene.bipolar = '-' in current_electrode
    current_electrode_group = mu.elec_group(current_electrode, bpy.context.scene.bipolar)
    if ElecsPanel.groups_hemi:
        current_electrode_hemi = ElecsPanel.groups_hemi[current_electrode_group]
        prev_electrode_group = mu.elec_group(prev_electrode, bpy.context.scene.bipolar)
        prev_electrode_hemi = ElecsPanel.groups_hemi[prev_electrode_group]
        if current_electrode_hemi != prev_electrode_hemi:
            print('flip hemis! clear {}'.format(prev_electrode_hemi))
            _addon().clear_cortex([prev_electrode_hemi])
    else:
        _addon().clear_cortex()
Exemple #3
0
def create_groups_lookup_table(electrodes):
    groups = {}
    bipolar = '-' in electrodes[0]
    for elc in electrodes:
        group = mu.elec_group(elc, bipolar)
        groups[elc] = group
    return groups
Exemple #4
0
def create_groups_electrodes_lookup(electrodes):
    groups = defaultdict(list)
    bipolar = '-' in electrodes[0]
    for elc in electrodes:
        group = mu.elec_group(elc, bipolar)
        groups[group].append(elc)
    return groups
Exemple #5
0
def init(addon, addon_prefs=None):
    FreeviewPanel.addon = addon
    # print('freeview command: {}'.format(addon_prefs.freeview_cmd))
    # print('Use -verbose? {}'.format(addon_prefs.freeview_cmd_verbose))
    # print('Use -stdin? {}'.format(addon_prefs.freeview_cmd_stdin))
    FreeviewPanel.addon_prefs = addon_prefs
    bpy.context.scene.freeview_listen_to_keyboard = False
    bpy.context.scene.freeview_listener_is_running = False
    bpy.context.scene.fMRI_files_exist = len(glob.glob(op.join(mu.get_user_fol(), 'fmri', '*_lh.npy'))) > 0
        #mu.hemi_files_exists(op.join(mu.get_user_fol(), 'fmri_{hemi}.npy'))
    bpy.context.scene.electrodes_exist = bpy.data.objects.get('Deep_electrodes', None) is not None
    if bpy.context.scene.electrodes_exist:
        FreeviewPanel.electrodes_groups = set([mu.elec_group(obj.name, bpy.context.scene.bipolar)
                      for obj in bpy.data.objects['Deep_electrodes'].children])
    else:
        FreeviewPanel.electrodes_groups = []
    bpy.context.scene.freeview_messages = ''
    root = mu.get_user_fol()
    mmvt_ct_fname = op.join(root, 'ct', 'ct_reg_to_mr.mgz')
    # if not op.isfile(mmvt_ct_fname):
    #     subjects_ct_fname = op.join(mu.get_subjects_dir(), mu.get_user(), 'mri', 'ct_nas.nii.gz')
    #     if op.isfile(subjects_ct_fname):
    #         shutil.copy(subjects_ct_fname, mmvt_ct_fname)
    FreeviewPanel.CT_files_exist = op.isfile(mmvt_ct_fname)
    FreeviewPanel.init = True
    FreeviewPanel.freeview_is_open = False
    register()
Exemple #6
0
def color_electrodes(current_electrode, prev_electrode):
    current_electrode_group = mu.elec_group(current_electrode,
                                            bpy.context.scene.bipolar)
    current_electrode_hemi = ElecsPanel.groups_hemi[current_electrode_group]
    prev_electrode_group = mu.elec_group(prev_electrode,
                                         bpy.context.scene.bipolar)
    prev_electrode_hemi = ElecsPanel.groups_hemi[prev_electrode_group]
    if current_electrode_hemi != prev_electrode_hemi:
        print('flip hemis! clear {}'.format(prev_electrode_hemi))
        ElecsPanel.addon.clear_cortex([prev_electrode_hemi])
    color = bpy.context.scene.electrode_color
    ElecsPanel.addon.object_coloring(bpy.data.objects[current_electrode],
                                     tuple(color))  #cu.name_to_rgb('green'))
    if prev_electrode != current_electrode:
        ElecsPanel.addon.object_coloring(bpy.data.objects[prev_electrode],
                                         (1, 1, 1, 1))
def create_groups_electrodes_lookup(electrodes):
    groups = defaultdict(list)
    bipolar = '-' in electrodes[0]
    for elc in electrodes:
        group = mu.elec_group(elc, bipolar)
        groups[group].append(elc)
    return groups
def create_groups_lookup_table(electrodes):
    groups = {}
    bipolar = '-' in electrodes[0]
    for elc in electrodes:
        group = mu.elec_group(elc, bipolar)
        groups[elc] = group
    return groups
def prev_electrode():
    electrode_lead = mu.elec_group(bpy.context.scene.electrodes, bpy.context.scene.bipolar)
    lead_electrodes = ElecsPanel.groups_electrodes[electrode_lead]
    index = lead_electrodes.index(bpy.context.scene.electrodes)
    if index > 0:
        prev_elc = lead_electrodes[index - 1]
    else:
        prev_elc = lead_electrodes[-1]
    bpy.context.scene.electrodes = prev_elc
Exemple #10
0
 def get_electrodes_command(self, root):
     if bpy.data.objects.get('Deep_electrodes'):
         cmd = ' -c '
         groups = set([mu.elec_group(obj.name, bpy.context.scene.bipolar) for obj in bpy.data.objects['Deep_electrodes'].children])
         for group in groups:
             cmd += '"{}" '.format(op.join(root, 'freeview', '{}.dat'.format(group)))
     else:
         cmd = ''
     return cmd
Exemple #11
0
def find_first_electrode_per_group(electrodes):
    groups = defaultdict(list)
    first_electrodes = {}
    bipolar = '-' in electrodes[0]
    for elc in electrodes:
        groups[mu.elec_group(elc, bipolar)].append(elc)
    for group, group_electrodes in groups.items():
        first_electrode = sorted(group_electrodes)[0]
        first_electrodes[group] = first_electrode
    return first_electrodes
def find_first_electrode_per_group(electrodes):
    groups = defaultdict(list)
    first_electrodes = {}
    bipolar = '-' in electrodes[0]
    for elc in electrodes:
        groups[mu.elec_group(elc, bipolar)].append(elc)
    for group, group_electrodes in groups.items():
        first_electrode = sorted(group_electrodes)[0]
        first_electrodes[group] = first_electrode
    return first_electrodes
def next_electrode():
    # index = ElecsPanel.electrodes.index(bpy.context.scene.electrodes)
    electrode_lead = mu.elec_group(bpy.context.scene.electrodes, bpy.context.scene.bipolar)
    lead_electrodes = ElecsPanel.groups_electrodes[electrode_lead]
    index = lead_electrodes.index(bpy.context.scene.electrodes)
    if index < len(lead_electrodes) - 1:
        next_elc = lead_electrodes[index + 1]
    else:
        next_elc = lead_electrodes[0]
    bpy.context.scene.electrodes = next_elc
Exemple #14
0
def prev_electrode():
    electrode_lead = mu.elec_group(bpy.context.scene.electrodes, bpy.context.scene.bipolar)
    lead_electrodes = ElecsPanel.groups_electrodes[electrode_lead]
    index = lead_electrodes.index(bpy.context.scene.electrodes)
    if index > 0:
        prev_elc = lead_electrodes[index - 1]
    else:
        prev_elc = lead_electrodes[-1]
    bpy.context.scene.electrodes = prev_elc
    bpy.data.objects[ElecsPanel.prev_elect].select = False
Exemple #15
0
def next_electrode():
    # index = ElecsPanel.electrodes.index(bpy.context.scene.electrodes)
    electrode_lead = mu.elec_group(bpy.context.scene.electrodes, bpy.context.scene.bipolar)
    lead_electrodes = ElecsPanel.groups_electrodes[electrode_lead]
    index = lead_electrodes.index(bpy.context.scene.electrodes)
    if index < len(lead_electrodes) - 1:
        next_elc = lead_electrodes[index + 1]
    else:
        next_elc = lead_electrodes[0]
    bpy.context.scene.electrodes = next_elc
    bpy.data.objects[ElecsPanel.prev_elect].select = False
Exemple #16
0
def prev_electrode():
    electrode_lead = mu.elec_group(bpy.context.scene.electrodes,
                                   bpy.context.scene.bipolar)
    lead_electrodes = ElecsPanel.groups_electrodes[electrode_lead]
    index = lead_electrodes.index(bpy.context.scene.electrodes)
    if index > 0:
        prev_elc = lead_electrodes[index - 1]
    else:
        prev_elc = lead_electrodes[-1]
    bpy.context.scene.electrodes = prev_elc
    _addon().de_select_electrode_and_sensor(ElecsPanel.prev_elect)
Exemple #17
0
def next_electrode():
    # index = ElecsPanel.electrodes.index(bpy.context.scene.electrodes)
    electrode_lead = mu.elec_group(bpy.context.scene.electrodes,
                                   bpy.context.scene.bipolar)
    lead_electrodes = ElecsPanel.groups_electrodes[electrode_lead]
    index = lead_electrodes.index(bpy.context.scene.electrodes)
    if index < len(lead_electrodes) - 1:
        next_elc = lead_electrodes[index + 1]
    else:
        next_elc = lead_electrodes[0]
    bpy.context.scene.electrodes = next_elc
    _addon().de_select_electrode_and_sensor(ElecsPanel.prev_elect)
Exemple #18
0
 def get_electrodes_command(self, root):
     if bpy.data.objects.get('Deep_electrodes'):
         cmd = ' -c '
         groups = set([
             mu.elec_group(obj.name, bpy.context.scene.bipolar)
             for obj in bpy.data.objects['Deep_electrodes'].children
         ])
         for group in groups:
             cmd += '"{}" '.format(
                 op.join(root, 'freeview', '{}.dat'.format(group)))
     else:
         cmd = ''
     return cmd