diff --git a/CHANGELOG.md b/CHANGELOG.md index 729c07b..52bda8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ Versions follow [Semantic Versioning](https://semver.org) (`.. tuple[npt.NDArray[np.float6 Args: trials (pd.DataFrame): Trials table as written by `visiomode-analysis session`, with `start_time`, `cue_onset`, `stop_time`, `response_time` and `sdt_type` columns. Times are seconds from - behaviour start. + behaviour start, except `response_time`, which is seconds from `cue_onset`. event (str): One of `cue_onset`, `trial_start`, `response` or `reward`. Returns: @@ -80,8 +80,9 @@ def event_times(trials: pd.DataFrame, event: str) -> tuple[npt.NDArray[np.float6 elif event == "response": import pandas as pd + # `response_time` is measured from the cue. response_time = pd.to_numeric(trials["response_time"], errors="coerce").to_numpy(dtype=np.float64) - times = trials["start_time"].to_numpy(dtype=np.float64) + response_time + times = trials["cue_onset"].to_numpy(dtype=np.float64) + response_time keep = ~np.isnan(response_time) & (response_time >= 0) & ~np.isnan(times) elif event == "reward": times = trials["stop_time"].to_numpy(dtype=np.float64) diff --git a/tests/test_process.py b/tests/test_process.py index cc88833..dd1a0a8 100644 --- a/tests/test_process.py +++ b/tests/test_process.py @@ -1820,7 +1820,7 @@ class TestEventTimes: [ ("cue_onset", [1.0, 5.5, 10.5, 15.5, 20.5, 40.5], [0, 1, 2, 3, 4, 5]), ("trial_start", [0.5, 5.0, 10.0, 15.0, 20.0, 40.0], [0, 1, 2, 3, 4, 5]), - ("response", [1.2, 6.2, 20.8, 40.5], [0, 1, 4, 5]), + ("response", [1.7, 6.7, 21.3, 41.0], [0, 1, 4, 5]), ("reward", [3.0, 8.0, 23.0, 41.5], [0, 1, 4, 5]), ], )