From 8df75c37acc30897555104d7f86c9b0451932823 Mon Sep 17 00:00:00 2001 From: Martin Esparza Date: Wed, 30 Jul 2025 16:22:30 +0100 Subject: [PATCH 1/2] added function to drop empty states --- bnd/pipeline/pyaldata.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/bnd/pipeline/pyaldata.py b/bnd/pipeline/pyaldata.py index 7f271b3..593dd08 100644 --- a/bnd/pipeline/pyaldata.py +++ b/bnd/pipeline/pyaldata.py @@ -736,9 +736,6 @@ def expand_dim_in_single_bin_trials(self, column_subset="_spikes") -> None: column_subset : String expression to look for in columns to be expanded. Defaults to 'spikes_' - Returns - ------- - """ def _expand_dim_in_single_bin_trial(value): @@ -752,13 +749,25 @@ def _expand_dim_in_single_bin_trial(value): return + def drop_empty_states_at_end(self) -> None: + """ + Drop last column if all spike fields are empty + + """ + + spike_cols = [col for col in self.pyaldata_df.columns if col.endswith("_spikes")] + final_state = self.pyaldata_df.iloc[-1] + all_zero = (final_state[spike_cols].size == 0).all() + + if all_zero: + self.pyaldata_df.drop(self.pyaldata_df.index[-1], inplace=True) + + return + def run_conversion(self): """ Main routine for pyaldata conversion - Returns - ------- - """ # Define all the necessary columns @@ -794,6 +803,9 @@ def run_conversion(self): # Expand dimensions self.expand_dim_in_single_bin_trials() + # Drop empty states at the end + self.drop_empty_states_at_end() + logger.info("Session converted to pyaldata format") return From d368ffe1a5d6e95bb0101a885e2d7ac977a1240b Mon Sep 17 00:00:00 2001 From: Martin Esparza Date: Wed, 30 Jul 2025 16:50:32 +0100 Subject: [PATCH 2/2] fixed boolean error --- bnd/pipeline/pyaldata.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bnd/pipeline/pyaldata.py b/bnd/pipeline/pyaldata.py index 593dd08..b0ee052 100644 --- a/bnd/pipeline/pyaldata.py +++ b/bnd/pipeline/pyaldata.py @@ -754,10 +754,9 @@ def drop_empty_states_at_end(self) -> None: Drop last column if all spike fields are empty """ - spike_cols = [col for col in self.pyaldata_df.columns if col.endswith("_spikes")] final_state = self.pyaldata_df.iloc[-1] - all_zero = (final_state[spike_cols].size == 0).all() + all_zero = all(final_state[spike_col].size == 0 for spike_col in spike_cols) if all_zero: self.pyaldata_df.drop(self.pyaldata_df.index[-1], inplace=True)