@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)
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(
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')