3333from util .streamlit import (_plot_population_x_y , add_auto_train_manager ,
3434 add_dot_property_mapper , add_session_filter ,
3535 add_xy_selector , add_xy_setting ,
36- aggrid_interactive_table_curriculum ,
36+ aggrid_interactive_table_basic ,
3737 aggrid_interactive_table_session , data_selector ,
3838 add_footnote )
3939from util .url_query_helper import (checkbox_wrapper_for_url_query ,
@@ -280,7 +280,7 @@ def show_curriculums():
280280 pass
281281
282282# ------- Layout starts here -------- #
283- def init (if_load_docDB_override = None ):
283+ def init (if_load_bpod_data_override = None , if_load_docDB_override = None ):
284284
285285 # Clear specific session state and all filters
286286 for key in st .session_state :
@@ -296,12 +296,17 @@ def init(if_load_docDB_override=None):
296296 # Because sync_URL_to_session_state() needs df to be loaded (for dynamic column filtering),
297297 # 'if_load_bpod_sessions' has not been synced from URL to session state yet.
298298 # So here we need to manually get it from URL or session state.
299- if (st .query_params ['if_load_bpod_sessions' ].lower () == 'true'
299+ _if_load_bpod = if_load_bpod_data_override if if_load_bpod_data_override is not None else (
300+ st .query_params ['if_load_bpod_sessions' ].lower () == 'true'
300301 if 'if_load_bpod_sessions' in st .query_params
301302 else st .session_state .if_load_bpod_sessions
302303 if 'if_load_bpod_sessions' in st .session_state
303- else False ):
304+ else False )
305+
306+ st .session_state .bpod_loaded = False
307+ if _if_load_bpod :
304308 df_bpod = load_data (['sessions' ], data_source = 'bpod' )
309+ st .session_state .bpod_loaded = True
305310
306311 # For historial reason, the suffix of df['sessions_bonsai'] just mean the data of the Home.py page
307312 df ['sessions_bonsai' ] = pd .concat ([df ['sessions_bonsai' ], df_bpod ['sessions_bonsai' ]], axis = 0 )
@@ -377,6 +382,10 @@ def _get_data_source(rig):
377382 _df .dropna (subset = ['session' ], inplace = True ) # Remove rows with no session number (only leave the nwb file with the largest finished_trials for now)
378383 _df .drop (_df .query ('session < 1' ).index , inplace = True )
379384
385+ # Remove invalid subject_id
386+ _df = _df [(999999 > _df ["subject_id" ].astype (int ))
387+ & (_df ["subject_id" ].astype (int ) > 300000 )]
388+
380389 # Remove abnormal values
381390 _df .loc [_df ['weight_after' ] > 100 ,
382391 ['weight_after' , 'weight_after_ratio' , 'water_in_session_total' , 'water_after_session' , 'water_day_total' ]
@@ -745,7 +754,7 @@ def app():
745754 pre_selected_rows = None
746755
747756 # Show df_curriculum
748- aggrid_interactive_table_curriculum (df = df_curriculums ,
757+ aggrid_interactive_table_basic (df = df_curriculums ,
749758 pre_selected_rows = pre_selected_rows )
750759
751760
0 commit comments