Data Loaders¶
Functions for loading behavioral data from the database into pandas DataFrames.
Main data loading functions for Ethopy analysis.
This module provides user-friendly functions to load behavioral data and return it as pandas DataFrames or DataJoint expressions ready for analysis and visualization.
get_session_classes(animal_id, session)
¶
Retrieve session information and experimental classes for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
Returns:
Type | Description |
---|---|
DataFrame
|
pd.DataFrame: Combined DataFrame containing session information and unique combinations of stimulus_class, behavior_class, and experiment_class |
Raises:
Type | Description |
---|---|
Exception
|
If no session found for the given animal_id and session |
Source code in src/ethopy_analysis/data/loaders.py
get_session_duration(animal_id, session)
¶
Calculate the duration of a session based on the last state onset time.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
Returns:
Type | Description |
---|---|
Optional[str]
|
Optional[str]: Formatted duration string (e.g., "1.2 hours (4320.0 seconds)") or None if no state times found |
Source code in src/ethopy_analysis/data/loaders.py
get_session_task(animal_id, session, save_file=True)
¶
Retrieve and optionally save the task configuration file for a specific session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
Animal identifier |
required |
session
|
int
|
Session identifier |
required |
save_file
|
bool
|
Whether to save the file to disk. Defaults to True. |
True
|
Returns:
Type | Description |
---|---|
Tuple[str, str]
|
Tuple[str, str]: A tuple containing (filename, git_hash) |
Note
If save_file is True, the file is saved with a modified name including animal_id and session for uniqueness.
Source code in src/ethopy_analysis/data/loaders.py
get_sessions(animal_id, from_date='', to_date='', format='df', min_trials=None)
¶
Get sessions for an animal within a specified date range.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
from_date
|
str
|
Start date in format 'YYYY-MM-DD'. Defaults to ''. |
''
|
to_date
|
str
|
End date in format 'YYYY-MM-DD'. Defaults to ''. |
''
|
format
|
str
|
if format equals 'dj' return datajoint expression. |
'df'
|
min_trials
|
int
|
minimum number of trials per session. |
None
|
Returns:
Type | Description |
---|---|
Union[pd.DataFrame, Any]: Session DataFrame if format="df", Session expression if format="dj" |
Source code in src/ethopy_analysis/data/loaders.py
get_trial_behavior(animal_id, session, format='df')
¶
Retrieve trial behavior condition data for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
Returns:
Type | Description |
---|---|
Union[DataFrame, Any]
|
Union[pd.DataFrame, Any]: Trial behavior conditions DataFrame if format="df", DataJoint expression if format="dj" |
Note
This function combines trial data with behavior conditions, handling cases where multiple behavior child tables need to be combined.
Source code in src/ethopy_analysis/data/loaders.py
get_trial_experiment(animal_id, session, format='df')
¶
Retrieve trial experiment condition data for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
Returns:
Type | Description |
---|---|
Union[DataFrame, Any]
|
Union[pd.DataFrame, Any]: Trial experiment conditions DataFrame if format="df", DataJoint expression if format="dj" |
Note
This function combines trial data with experiment conditions based on the experiment_type from the session classes.
Source code in src/ethopy_analysis/data/loaders.py
get_trial_licks(animal_id, session, format='df')
¶
Retrieve all licks of a session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
Returns:
Type | Description |
---|---|
Union[DataFrame, Any]
|
Union[pd.DataFrame, Any]: Trial behavior conditions DataFrame if format="df", DataJoint expression if format="dj" |
Source code in src/ethopy_analysis/data/loaders.py
get_trial_proximities(animal_id, session, ports=None, format='df')
¶
Retrieve proximity sensor data for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
ports
|
Optional[List]
|
List of port numbers to filter by |
None
|
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
Returns:
Type | Description |
---|---|
Union[pd.DataFrame, Any]: Proximity data DataFrame if format="df", DataJoint expression if format="dj" |
Source code in src/ethopy_analysis/data/loaders.py
get_trial_states(animal_id, session, format='df')
¶
Retrieve trial state onset data for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
Returns:
Type | Description |
---|---|
Union[DataFrame, Any]
|
Union[pd.DataFrame, Any]: Trial states DataFrame if format="df", DataJoint expression if format="dj" |
Source code in src/ethopy_analysis/data/loaders.py
get_trial_stimulus(animal_id, session, stim_class=None, format='df')
¶
Retrieve trial stimulus condition data for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
stim_class
|
Optional[str]
|
Specific stimulus class to use. If None, uses the stimulus class from session data. Defaults to None. |
None
|
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
Returns:
Type | Description |
---|---|
Union[DataFrame, Any]
|
Union[pd.DataFrame, Any]: Trial behavior conditions DataFrame if format="df", DataJoint expression if format="dj" |
Raises: Exception: If the specified stimulus class table is not found in the stimulus schema
Note
This function combines trial data with stimulus conditions and all related child tables that contain data for the session.
Source code in src/ethopy_analysis/data/loaders.py
get_trials(animal_id, session, format='df', remove_abort=False)
¶
Retrieve trial data for a specific animal session.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
The animal identifier |
required |
session
|
int
|
The session number |
required |
format
|
str
|
Return format, either "df" for DataFrame or "dj" for DataJoint expression. Defaults to "df". |
'df'
|
remove_abort
|
bool
|
remove abort trials |
False
|
Returns:
Type | Description |
---|---|
Union[DataFrame, Any]
|
Union[pd.DataFrame, Any]: Trial DataFrame if format="df", DataJoint expression if format="dj" |