def make_stim_df(self): stim_df = fg.load_visual_stimuli(self.pkl) stim_df['jcam_onframe'] = get_jcam_index(self.session.timeline.times, stim_df['frame']) stim_df['jcam_offframe'] = get_jcam_index(self.session.timeline.times, stim_df['end_frame']) stim_df['image_id'] = None if stim_df['image_name'][0] is not None: stim_df['image_id'] = stim_df['image_name'] else: stim_df['image_id'] = stim_df['orientation'] self.stim_df = stim_df return self.stim_df
def make_change_df(self): change_df = pd.DataFrame() change_df['frame'] = self.trials_df['change_frame'].dropna() change_df['jcam_changeframe'] = get_jcam_index( self.session.timeline.times, change_df['frame']) self.change_df = change_df return self.change_df
def make_trials_df(self): trials_df = beh_pkl_path_to_df(self.pkl_path) trials_df['jcam_startframe'] = get_jcam_index( self.session.timeline.times, trials_df['startframe']) for idx in trials_df.index: if trials_df.at[idx, 'trial_type'] == 'autorewarded': trials_df.at[idx, 'response_type'] = 'AUTOREWARDED' self.trials_df = trials_df return self.trials_df
def get_session_dataframe(self, date, path, session_manifest, save=False): if (date == self.date): try: session = self.session except AttributeError: session = self.get_IB_session_object(date, path, session_manifest) else: session = self.get_IB_session_object(date, path, session_manifest) pkl_path = os.path.join(self.path, self.session_manifest['behavior_pkl']) df = beh_pkl_path_to_df(pkl_path) df_jcam = add_jcam_to_df(df, session) running_speed = load_running_speed(pd.read_pickle(pkl_path)) df_jcam['lick_frames_jcam'] = None df_jcam['run_speeds'] = None for idx in df_jcam.index: start_f = df_jcam.at[idx, 'startframe'] try: end_f = df_jcam.at[idx+1, 'startframe'] except: end_f = df_jcam.startframe.iloc[-1] speed = list(running_speed[running_speed['frame'].between(start_f-1, end_f, inclusive=False)].speed) df_jcam.at[idx, 'run_speeds'] = speed if len(df_jcam.iloc[idx]['lick_frames']) > 0: lick_frames = df_jcam.iloc[idx]['lick_frames'] licks = [] for l in lick_frames: lick = get_jcam_index(self.session.timeline.times,l) licks.append(lick) df_jcam.at[idx, 'lick_frames_jcam'] = licks if save==True: df_name = '{}_{}_beh_jcam_df.pkl'.format(self.date, self.mouse_id) pd.to_pickle(df_jcam, os.path.join(self.path, df_name)) self.df = df_jcam return self.df
def make_rewards_df(self): rewards_df = fg.load_rewards(self.pkl) rewards_df['jcam_rew_frame'] = get_jcam_index( self.session.timeline.times, rewards_df['frame']) self.rewards_df = rewards_df return self.rewards_df
def make_licks_df(self): licks_df = fg.load_licks(self.pkl) licks_df['jcam_lick_frame'] = get_jcam_index( self.session.timeline.times, licks_df['frame']) self.licks_df = licks_df return self.licks_df