@author: guido
"""

import numpy as np
from os.path import join
from my_functions import paths, figure_style, get_full_region_name
import pandas as pd
import seaborn as sns
from scipy.stats import pearsonr
import matplotlib.pyplot as plt

# Settings
TARGET = 'block'
DECODER = 'bayes-multinomial'
DATA_PATH, FIG_PATH, SAVE_PATH = paths()
FIG_PATH = join(FIG_PATH, 'Decoding')
INCL_NEURONS = 'all'  # all or no_drift
INCL_SESSIONS = 'aligned-behavior'  # all or aligned
CHANCE_LEVEL = 'shuffle'
VALIDATION = 'kfold-interleaved'
DATA_PATH, FIG_PATH, SAVE_PATH = paths()
# GLM_PATH = '/home/guido/Data/Ephys/berk_glm_fits/completefits_2020-10-26.p'
GLM_PATH = '/home/guido/Data/Ephys/berk_glm_fits/completefits_2020-11-09.p'


def drop_subzero_max(row):
    maxind = row.tag_0
    if row[maxind] < 0:
        row.tag_0 = 'None'
    return row
import brainbox as bb
import pandas as pd
import numpy as np
import seaborn as sns
from my_functions import paths, load_trials, sessions_with_region

REGION = 'SCm'
TRIAL_CENTERS = np.arange(-10, 21, 3)
TRIAL_WIN = 5
PRE_TIME = 0.6
POST_TIME = -0.1
BASELINE_TRIAL_WIN = 10

ses = sessions_with_region(REGION)

DATA_PATH, FIG_PATH, _ = paths()
FIG_PATH = join(FIG_PATH, 'PSTH', 'BlockSwitch')
for i in range(len(ses)):

    # Get paths
    ses_nr = listdir(
        join(DATA_PATH, sessions.loc[i, 'lab'], 'Subjects',
             sessions.loc[i, 'subject'], sessions.loc[i, 'date']))[0]
    session_path = join(DATA_PATH, sessions.loc[i, 'lab'], 'Subjects',
                        sessions.loc[i, 'subject'], sessions.loc[i, 'date'],
                        ses_nr)
    alf_path = join(DATA_PATH, sessions.loc[i, 'lab'], 'Subjects',
                    sessions.loc[i, 'subject'], sessions.loc[i, 'date'],
                    ses_nr, 'alf')
    probe_path = join(DATA_PATH, sessions.loc[i, 'lab'], 'Subjects',
                      sessions.loc[i, 'subject'], sessions.loc[i, 'date'],
import numpy as np
from os.path import join, isdir
import seaborn as sns
from os import mkdir
import matplotlib.pyplot as plt
from brainbox.lfp import butter_filter
from matplotlib.patches import Rectangle
from my_functions import (paths, query_sessions, check_trials, combine_layers_cortex, load_trials,
                          remap)
from brainbox.task import differentiate_units
from brainbox.population import get_spike_counts_in_bins
import brainbox.io.one as bbone
from scipy.stats import pearsonr
from oneibl.one import ONE
one = ONE()
fig_path = join(paths()[1], 'Ephys', 'SingleNeurons', 'block_neurons')
save_path = join(paths()[2], 'Ephys')

# Settings
INCL_NEURONS = 'pass-QC'
INCL_SESSIONS = 'aligned-behavior'
ATLAS = 'beryl-atlas'
MIN_NEURONS = 1
PLOT = True
PRE_TIME = 0.6
POST_TIME = -0.1
TRIAL_CENTERS = np.arange(-10, 21, 3)
TRIAL_WIN = 5
BASELINE_TRIAL_WIN = 5
COLORS = (sns.color_palette('colorblind', as_cmap=True)[0],
          sns.color_palette('colorblind', as_cmap=True)[3])
Created on Mon Feb 15 13:33:56 2021

@author: guido
"""

import numpy as np
import pandas as pd
from os.path import join
import matplotlib.pyplot as plt
from behavior_models import utils
from my_functions import query_sessions, paths, figure_style
from models.expSmoothing_stimside import expSmoothing_stimside as exp_stimside
from models.expSmoothing_prevAction import expSmoothing_prevAction as exp_prev_action

# Save path
_, fig_path, save_path = paths()

# Query all sessions that are aligned and meet behavioral criterion
eids, probes, subjects = query_sessions(selection='aligned-behavior',
                                        return_subjects=True)

# Loop over subjects
results = pd.DataFrame()
for i, subject in enumerate(np.unique(subjects)):
    print('\nStarting subject %s [%d of %d]\n' %
          (subject, i + 1, len(np.unique(subjects))))
    stimuli_arr, actions_arr, stim_sides_arr, pleft_arr, session_uuids = [], [], [], [], []
    for j, eid in enumerate(eids[subjects == subject]):
        data = utils.load_session(eid)
        if data['choice'] is not None and data['probabilityLeft'][0] == 0.5:
            stim_side, stimuli, actions, pLeft_oracle = utils.format_data(data)
Esempio n. 5
0
from my_functions import paths, check_trials
import brainbox.io.one as bbone
from brainbox.population import decode
from oneibl.one import ONE
one = ONE()

# Settings
REGION = 'ACAd6a'
WIN_CENTERS = np.arange(-1.2, 1.7, 0.18)
WIN_SIZE = 0.2
PLOT_X = [-1, 1.5]
DECODER = 'bayes'  # bayes, regression or forest
N_NEURONS = 10
NUM_SPLITS = 5
ITERATIONS = 1000
FIG_PATH = paths()[1]

# Query sessions with at least one channel in the region of interest
ses = one.alyx.rest('sessions',
                    'list',
                    atlas_acronym=REGION,
                    task_protocol='_iblrig_tasks_ephysChoiceWorld',
                    project='ibl_neuropixel_brainwide')

# Loop over sessions
for i, eid in enumerate([j['url'][-36:] for j in ses]):
    print('Processing session %d of %d' % (i + 1, len(ses)))

    # Load in data
    try:
        spikes, clusters, channels = bbone.load_spike_sorting_with_channel(
Esempio n. 6
0
from oneibl.one import ONE
one = ONE()

# Settings
INCL_SESSIONS = 'aligned-behavior'

# Query sessions
eids, _ = query_sessions(selection=INCL_SESSIONS)

# Loop over sessions
all_trials = pd.DataFrame()
for i, eid in enumerate(eids):
    print(f'Loading trails of session {i+1} of {len(eids)}')
    try:
        trials = load_trials(eid, invert_stimside=True)
    except:
        continue
    if check_trials(trials):
        ses_info = one.get_details(eid)
        trials['subject'] = ses_info['subject']
        trials['date'] = ses_info['start_time'][:10]
        trials = trials.drop(columns=[
            'stimOn_times', 'feedback_times', 'contrastLeft', 'contrastRight',
            'goCue_times', 'right_choice', 'correct', 'firstMovement_times'
        ])
        all_trials = all_trials.append(
            trials[trials['probabilityLeft'] != 0.5])
        print(f'Added {len(trials)} trial (total {len(all_trials)})')
print('Saving results..')
all_trials.to_pickle(join(paths()[2], 'Ephys', 'Decoding', 'all_trials.p'))
print('Done')