Passive¶
The main passive-analysis stack in this repository is passive_interval_oddball_202412/.
This project is organized around passive visual interval paradigms such as:
3331Random1451ShortLong4131FixJitterOdd3331RandomExtended
Main entry points¶
passive_interval_oddball_202412/main.pypassive_interval_oddball_202412/run_main.shpassive_interval_oddball_202412/session_configs.pypassive_interval_oddball_202412/modules/passive_interval_oddball_202412/modeling/passive_interval_oddball_202412/webpage/
High-level workflow¶
main.py is the orchestration entry point. Its run(session_config_list, cate_list) function does the following:
- Expand the selected subject-level configuration into a list of session result directories.
- Read
ops.npyfor each session viamodules.ReadResults.read_ops. - Optionally trialize each session via
modules.Trialization. - Run visualization modules for the supported paradigms.
- Package outputs into an HTML report with
webpage.pack_webpage_main.
The script currently mixes production-style code with commented toggles for enabling or disabling individual analyses. That is typical of this repository: the project is a working lab analysis stack, not a strict library API.
Directory roles¶
modules/¶
This folder contains the low-level readers and alignment or trialization helpers that turn processed session outputs into per-trial analysis inputs.
Common responsibilities include:
- reading
dff.h5, masks, labels, and motion offsets - reading and unpacking Bpod session data
- constructing
neural_trials.h5 - cleaning temporary memmap files
modeling/¶
This folder holds the heavier computational analyses:
- clustering
- decoding
- GLM and generative modeling
- quantification helpers
- shared project utilities
The update history in README.md shows this layer has grown to include cross-session clustering, temporal scaling, latent dynamics, decoding, quantification, onset detection, and pupil-trace support.
visualization*.py¶
These files are paradigm-specific report builders:
visualization1_FieldOfView.pyvisualization2_3331Random.pyvisualization3_1451ShortLong.pyvisualization4_4131FixJitterOdd.pyvisualization5_3331RandomExtended.py
Each file typically assembles figures for one experiment family using plot/, modeling/, and modules/.
webpage/¶
This folder contains the HTML assembly layer used to publish session reports:
- CSS and JavaScript generators
- HTML fragments for logos, menus, and session lists
pack_webpage_main.pyfor final report assembly
This is why many passive outputs in this repo are webpage-based rather than static PDF figures.
Session configuration pattern¶
session_configs.py stores subject-level configuration dictionaries that group sessions and map raw session names to paradigm labels such as random, short_long, or fix_jitter_odd.
At runtime, main.py flattens these grouped configs into:
list_session_namelist_session_data_path- one output HTML target per subject or pooled report
Typical inputs and outputs¶
Inputs:
- postprocessed session directories under
results/ ops.npydff.h5- mask and label files
- Bpod and voltage-derived trial metadata
Outputs:
neural_trials.h5and related cached intermediates- per-paradigm figure panels
- one assembled HTML report in
results/
Related files¶
The passive project also contains notebooks and helper scripts for focused analyses:
quick_start.ipynbimage_alignment.ipynbrun_spike_inference.pysummarize_image_change_decoders.py