Source code for allensdk.brain_observatory.behavior.behavior_project_cache.tables.util.experiments_table_utils

import pandas as pd


[docs]def add_experience_level_to_experiment_table( experiments_table: pd.DataFrame) -> pd.DataFrame: """ adds a column to ophys_experiment_table that contains a string indicating whether a session had exposure level of Familiar, Novel 1, or Novel >1, based on session number and prior_exposure_to_image_set Parameters ---------- experiments_table: pd.DataFrame Returns ------- experiments_table: pd.DataFrame Notes ----- Does not change the input DataFrame in-place """ # Ported from # https://github.com/AllenInstitute/visual_behavior_analysis/ # blob/master/visual_behavior/data_access/utilities.py#L1307 # do not modify in place experiments_table = experiments_table.copy(deep=True) # add experience_level column with strings indicating relevant conditions experiments_table['experience_level'] = 'None' session_123 = experiments_table.session_number.isin([1, 2, 3]) familiar_indices = experiments_table[session_123].index.values experiments_table.at[familiar_indices, 'experience_level'] = 'Familiar' session_4 = (experiments_table.session_number == 4) zero_prior_exp = (experiments_table.prior_exposures_to_image_set == 0) novel_indices = experiments_table[ session_4 & zero_prior_exp].index.values experiments_table.at[novel_indices, 'experience_level'] = 'Novel 1' session_456 = experiments_table.session_number.isin([4, 5, 6]) nonzero_prior_exp = (experiments_table.prior_exposures_to_image_set != 0) novel_gt_1_indices = experiments_table[ session_456 & nonzero_prior_exp].index.values experiments_table.at[novel_gt_1_indices, 'experience_level'] = 'Novel >1' return experiments_table
[docs]def add_passive_flag_to_ophys_experiment_table( experiments_table: pd.DataFrame) -> pd.DataFrame: """ adds a column to ophys_experiment_table that contains a Boolean indicating whether a session was passive or not based on session number Parameters ---------- experiments_table: pd.DataFrame Returns ------- experiments_table: pd.DataFrame Note ---- Does not change the input DataFrame in-place """ # Ported from # https://github.com/AllenInstitute/visual_behavior_analysis/blob/master # /visual_behavior/data_access/utilities.py#L1344 experiments_table = experiments_table.copy(deep=True) experiments_table['passive'] = False session_25 = experiments_table.session_number.isin([2, 5]) passive_indices = experiments_table[session_25].index.values experiments_table.at[passive_indices, 'passive'] = True return experiments_table
[docs]def add_image_set_to_experiment_table( experiments_table: pd.DataFrame) -> pd.DataFrame: """ Adds a column 'image_set' to the experiment_table, determined based on the image set listed in the session_type column string Parameters ---------- experiments_table: pd.DataFrame Returns -------- experiments_table: pd.DataFrame Notes ----- Does not alter the input DataFrame in-place """ # Ported from # https://github.com/AllenInstitute/visual_behavior_analysis/blob/master/ # visual_behavior/data_access/utilities.py#L1403 experiments_table = experiments_table.copy(deep=True) experiments_table['image_set'] = [ session_type[15] if len(session_type) > 15 else 'N/A' for session_type in experiments_table.session_type.values.astype(str)] return experiments_table