ibllib.pipes.training_status
Functions
Check which sessions on local file system are missing from the computed training table. |
|
Get meta information about task. |
|
Compute the training status for compute date based on training from that session and two previous days. |
|
Find the earliest date that we need to compute the training status from. |
|
Return the location of the raw behavioral data and extracted trials data for a given session. |
|
Extracts the latest training status. |
|
Extract the training information needed for plots for each session. |
|
If aws credentials exist on the local server download the latest training table from aws s3 private bucket |
|
Load and concatenate trials for multiple sessions. |
|
Load training dataframe from disk, if dataframe doesn't exist returns None. |
|
Load trials data for session. |
|
Makes sure that the new training status is not less than the one from the previous day. |
|
Save training dataframe to disk. |
|
If aws credentials exist on the local server upload the training table to aws s3 private bucket |
- get_training_table_from_aws(lab, subject)[source]
If aws credentials exist on the local server download the latest training table from aws s3 private bucket
- Parameters:
lab
subject
- Returns:
- upload_training_table_to_aws(lab, subject)[source]
If aws credentials exist on the local server upload the training table to aws s3 private bucket
- Parameters:
lab
subject
- Returns:
- save_dataframe(df, subj_path)[source]
Save training dataframe to disk.
- Parameters:
df – dataframe to save
subj_path – path to subject folder
- Returns:
- load_existing_dataframe(subj_path)[source]
Load training dataframe from disk, if dataframe doesn’t exist returns None.
- Parameters:
subj_path – path to subject folder
- Returns:
- load_trials(sess_path, one, collections=None, force=True, mode='raise')[source]
Load trials data for session. First attempts to load from local session path, if this fails will attempt to download via ONE, if this also fails, will then attempt to re-extract locally
- Parameters:
sess_path – session path
one – ONE instance
force – when True and if the session trials can’t be found, will attempt to re-extract from the disk
mode – ‘raise’ or ‘warn’, if ‘raise’, will error when forcing re-extraction of past sessions
- Returns:
- load_combined_trials(sess_paths, one, force=True)[source]
Load and concatenate trials for multiple sessions. Used when we want to concatenate trials for two sessions on the same day
- Parameters:
sess_paths – list of paths to sessions
one – ONE instance
- Returns:
- get_latest_training_information(sess_path, one, save=True)[source]
Extracts the latest training status.
- Parameters:
sess_path (pathlib.Path) – The session path from which to load the data.
one (one.api.One) – An ONE instance.
- Returns:
A table of training information.
- Return type:
pandas.DataFrame
- find_earliest_recompute_date(df)[source]
Find the earliest date that we need to compute the training status from. Training status depends on previous sessions so if a session was missing and now has been added we need to recompute everything from that date onwards
- Parameters:
df
- Returns:
- compute_training_status(df, compute_date, one, force=True)[source]
Compute the training status for compute date based on training from that session and two previous days.
When true and if the session trials can’t be found, will attempt to re-extract from disk. :return:
- Parameters:
df (pandas.DataFrame) – A training data frame, e.g. one generated from
get_training_info_for_session()
.compute_date (str, datetime.datetime, pandas.Timestamp) – The date to compute training on.
one (one.api.One) – An instance of ONE for loading trials data.
force (bool) – When true and if the session trials can’t be found, will attempt to re-extract from disk.
- Returns:
The input data frame with a ‘training_status’ column populated for compute_date.
- Return type:
pandas.DataFrame
- pass_through_training_hierachy(status_new, status_old)[source]
Makes sure that the new training status is not less than the one from the previous day. e.g Subject cannot regress in performance
- Parameters:
status_new – latest training status
status_old – previous training status
- Returns:
- compute_session_duration_delay_location(sess_path, collections=None, **kwargs)[source]
Get meta information about task. Extracts session duration, delay before session start and location of session
- Parameters:
sess_path (pathlib.Path, str) – The session path with the pattern subject/yyyy-mm-dd/nnn.
collections (list) – The location within the session path directory of task settings and data.
- Returns:
int – The session duration in minutes, rounded to the nearest minute.
int – The delay between session start time and the first trial in seconds.
str {‘ephys_rig’, ‘training_rig’} – The location of the session.
- get_data_collection(session_path)[source]
Return the location of the raw behavioral data and extracted trials data for a given session.
For multiple locations in one session (e.g. chained protocols), returns all collections. Passive protocols are excluded.
- Parameters:
session_path (pathlib.Path) – A session path in the form subject/date/number.
- Returns:
list of str – A list of sub-directory names that contain raw behaviour data.
list of str – A list of sub-directory names that contain ALF trials data.
Examples
An iblrig v7 session
>>> get_data_collection(Path(r'C:/data/subject/2023-01-01/001')) ['raw_behavior_data'], ['alf']
An iblrig v8 session where two protocols were run
>>> get_data_collection(Path(r'C:/data/subject/2023-01-01/001')) ['raw_task_data_00', 'raw_task_data_01], ['alf/task_00', 'alf/task_01']
- get_sess_dict(session_path, one, protocol, alf_collections=None, raw_collections=None, force=True)[source]
- get_training_info_for_session(session_paths, one, force=True)[source]
Extract the training information needed for plots for each session.
- Parameters:
session_paths (list of pathlib.Path) – List of session paths on same date.
one (one.api.One) – An ONE instance.
force (bool) – When true and if the session trials can’t be found, will attempt to re-extract from disk.
- Returns:
A list of dictionaries the length of session_paths containing individual and aggregate performance information.
- Return type:
list of dict
- check_up_to_date(subj_path, df)[source]
Check which sessions on local file system are missing from the computed training table.
- Parameters:
subj_path (pathlib.Path) – The path to the subject’s dated session folders.
df (pandas.DataFrame) – The computed training table.
- Returns:
A table of dates and session paths that are missing from the computed training table.
- Return type:
pandas.DataFrame