Data from: Spatially targeted inhibitory rhythms differentially affect neuronal integration
Data files
Mar 03, 2026 version files 2.02 GB
-
Headley_etal_eLifeDRYAD.zip
2.02 GB
-
README.md
19.09 KB
Abstract
This dataset contains simulation output from a biophysical model of a cortical pyramidal neuron receiving excitatory Poisson input and inhibitory input that was either Poisson or rhythmically modulated. The simulations investigated how beta (16 Hz) and gamma (64 Hz) inhibitory rhythms targeted to different dendritic compartments (distal dendrites vs. perisomatic region) differentially affect dendritic spike generation and somatic action potential output.
Key findings:
- Beta (16 Hz) inhibition on distal dendrites strongly entrains Ca²⁺, NMDA, and Na⁺ dendritic spikes in a phase-dependent manner, with ~75% modulation depth.
- Gamma (64 Hz) inhibition on the perisomatic region minimally modulates dendritic spikes but modulates action potential generation by shifting the somatic voltage threshold via shunting.
- Excitation/inhibition balance effects differ by location: lagging perisomatic inhibition reduces firing, while lagging distal inhibition decreases firing up to 125 ms lag then recovers.
- Beta is the fastest rhythm capable of coordinating dendritic spike entrainment across the full dendritic tree.
- Oscillatory bursts of both rhythms reproduce their tonic effects within the first few burst cycles.
- Clustered excitatory inputs are bidirectionally modulated in a location-dependent manner: beta modulates distal apical inputs, gamma modulates proximal basal inputs.
https://doi.org/10.5061/dryad.v6wwpzhb8
See manuscript at Headley et al. (2026), "Spatially targeted inhibitory rhythms differentially affect neuronal integration", eLife.
Overview
This dataset contains simulation output from a biophysical model of a cortical pyramidal neuron receiving excitatory Poisson input and inhibitory input that was either Poisson or rhythmically modulated. The simulations investigated how beta (16 Hz) and gamma (64 Hz) inhibitory rhythms targeted to different dendritic compartments (distal dendrites vs. perisomatic region) differentially affect dendritic spike generation and somatic action potential output.
Key findings:
- Beta (16 Hz) inhibition on distal dendrites strongly entrains Ca²⁺, NMDA, and Na⁺ dendritic spikes in a phase-dependent manner, with ~75% modulation depth.
- Gamma (64 Hz) inhibition on the perisomatic region minimally modulates dendritic spikes but modulates action potential generation by shifting the somatic voltage threshold via shunting.
- Excitation/inhibition balance effects differ by location: lagging perisomatic inhibition reduces firing, while lagging distal inhibition decreases firing up to 125 ms lag then recovers.
- Beta is the fastest rhythm capable of coordinating dendritic spike entrainment across the full dendritic tree.
- Oscillatory bursts of both rhythms reproduce their tonic effects within the first few burst cycles.
- Clustered excitatory inputs are bidirectionally modulated in a location-dependent manner: beta modulates distal apical inputs, gamma modulates proximal basal inputs.
The simulation used a 10 kHz sample rate (0.1 ms time step) with spike times stored in milliseconds.
Description of the data and file structure
Top-level structure
Headley_etal_eLifeDRYAD.zip
DendCompOscPublic/
├── README.md
├── environment.yml # Conda environment specification
├── data/ # Simulation output data
├── figures/ # Jupyter notebooks for figure generation
└── src/ # Python analysis modules
Data directory
Each subdirectory under data/ corresponds to one simulation condition and contains the output files for that condition. Folders are organized into several categories:
Baseline (Poisson) simulation
| Folder | Description |
|---|---|
output_allpoisson/ |
All-Poisson excitatory and inhibitory input (no rhythmic modulation) |
Rhythmic inhibition frequency sweeps
Folders named {freq}{location}_inh/ contain simulation output with rhythmic inhibition at the specified frequency and dendritic location. Frequencies of 0.5 Hz are denoted p5Hz.
| Frequency | Distal folder | Proximal folder |
|---|---|---|
| 0.5 Hz | p5Hzdistal_inh/ |
p5Hzproximal_inh/ |
| 2 Hz | 2Hzdistal_inh/ |
2Hzproximal_inh/ |
| 5 Hz | 5Hzdistal_inh/ |
5Hzproximal_inh/ |
| 10 Hz | 10Hzdistal_inh/ |
10Hzproximal_inh/ |
| 16 Hz | 16Hzdistal_inh/ |
16Hzproximal_inh/ |
| 20 Hz | 20Hzdistal_inh/ |
20Hzproximal_inh/ |
| 30 Hz | 30Hzdistal_inh/ |
30Hzproximal_inh/ |
| 40 Hz | 40Hzdistal_inh/ |
40Hzproximal_inh/ |
| 50 Hz | 50Hzdistal_inh/ |
50Hzproximal_inh/ |
| 60 Hz | 60Hzdistal_inh/ |
60Hzproximal_inh/ |
| 80 Hz | 80Hzdistal_inh/ |
80Hzproximal_inh/ |
Rhythmic inhibition with reversed or swapped locations
| Folder | Description |
|---|---|
output_16Hz_no_exc_mod/ |
16 Hz inhibition, no excitatory modulation |
output_16Hz_on_soma_dom_20p/ |
16 Hz inhibition targeted to soma, 20% dominance |
output_64Hz_no_exc_mod_dom_40p/ |
64 Hz inhibition, no excitatory modulation, 40% dominance |
output_64Hz_on_dends_dom_40p/ |
64 Hz inhibition targeted to dendrites, 40% dominance |
Excitation/inhibition balance variations
Folders named output_EI_prox_{X}_dist_{Y}/ contain simulations where perisomatic (proximal) and distal inhibitory E/I lags were varied independently. X and Y are the E/I lag in ms; negative values (prefixed with n) indicate inhibition leading excitation.
| Folder | Proximal lag (ms) | Distal lag (ms) |
|---|---|---|
output_EI_prox_4_dist_4/ |
4 | 4 |
output_EI_prox_4_dist_10/ |
4 | 10 |
output_EI_prox_4_dist_50/ |
4 | 50 |
output_EI_prox_4_dist_125/ |
4 | 125 |
output_EI_prox_4_dist_250/ |
4 | 250 |
output_EI_prox_4_dist_500/ |
4 | 500 |
output_EI_prox_4_dist_n10/ |
4 | −10 |
output_EI_prox_4_dist_n50/ |
4 | −50 |
output_EI_prox_4_dist_n500/ |
4 | −500 |
output_EI_prox_10_dist_4/ |
10 | 4 |
output_EI_prox_50_dist_4/ |
50 | 4 |
output_EI_prox_125_dist_4/ |
125 | 4 |
output_EI_prox_250_dist_4/ |
250 | 4 |
output_EI_prox_500_dist_4/ |
500 | 4 |
output_EI_prox_n10_dist_4/ |
−10 | 4 |
output_EI_prox_n50_dist_4/ |
−50 | 4 |
output_EI_prox_n500_dist_4/ |
−500 | 4 |
Oscillatory burst simulations
| Folder | Description |
|---|---|
output_burst_16Hz_dist/ |
16 Hz inhibitory bursts on distal dendrites |
output_burst_64Hz_prox/ |
64 Hz inhibitory bursts on perisomatic region |
Clustered excitatory input simulations
Folders named output_clust_{freq}_{pattern}/ contain simulations with clustered excitatory inputs under different rhythmic inhibition conditions and spatial patterns.
| Folder | Rhythm | Spatial pattern |
|---|---|---|
output_clust_16Hz_conc_apical/ |
16 Hz | Concentrated on apical dendrites |
output_clust_16Hz_conc_basal/ |
16 Hz | Concentrated on basal dendrites |
output_clust_16Hz_diff/ |
16 Hz | Diffuse (distributed) |
output_clust_64Hz_conc_apical/ |
64 Hz | Concentrated on apical dendrites |
output_clust_64Hz_conc_basal/ |
64 Hz | Concentrated on basal dendrites |
output_clust_64Hz_diff/ |
64 Hz | Diffuse (distributed) |
output_clust_poiss_conc_apical/ |
Poisson | Concentrated on apical dendrites |
output_clust_poiss_conc_basal/ |
Poisson | Concentrated on basal dendrites |
output_clust_poiss_diff/ |
Poisson | Diffuse (distributed) |
File types within each data folder
Each simulation folder contains a subset of the following files:
HDF5 files (.h5)
| File | Description |
|---|---|
spikes.h5 |
Somatic action potential times and (where applicable) presynaptic excitatory stimulus spike times. Present in all simulation folders. |
dist_inh_stim_spikes.h5 |
Distal inhibitory stimulus spike times. Present in some conditions (e.g., output_16Hz_no_exc_mod/). |
prox_inh_stim_spikes.h5 |
Proximal inhibitory stimulus spike times. Present in some conditions. |
exc_stim_aux_spikes2.h5 |
Auxiliary excitatory stimulus spike times. Present in clustered input conditions. |
HDF5 internal structure:
spikes.h5:/spikes/biophysical/timestamps— somatic action potential times (ms)/spikes/exc_stim_aux/timestamps— presynaptic excitatory spike times (ms), when present
*_stim_spikes.h5:- Inhibitory or excitatory stimulus spike times (ms)
- Voltage data (when stored in H5):
/report/biophysical/data— membrane voltage matrix (time × segment)
All spike times are stored in milliseconds. The analysis code converts them to integer sample indices at 10 kHz (i.e., multiplied by 10).
CSV files
| File suffix | Description |
|---|---|
*_ca.csv |
Ca²⁺ dendritic spike events across all dendritic segments |
*_na.csv |
Na⁺ dendritic spike events across all dendritic segments |
*_nmda.csv |
NMDA dendritic spike events across all dendritic segments |
*_ca_nex.csv |
Ca²⁺ spike events at the apical nexus segment (baseline condition only) |
*_na_nex.csv |
Na⁺ spike events at the nexus (baseline condition only) |
*_nmda_nex.csv |
NMDA spike events at the nexus (baseline condition only) |
*_soma_v.csv |
Somatic membrane voltage trace (select conditions only) |
Dendritic event CSV columns (*_ca.csv, *_na.csv, *_nmda.csv):
| Column | Description |
|---|---|
segmentID |
Integer identifier for the dendritic segment |
Type |
Dendritic segment type (e.g., apical, basal) |
Elec_distanceQ |
Electrotonic distance quantile (integer) — groups segments by their electrotonic distance from the soma |
{event}_lower_bound |
Start time of the dendritic spike event (in simulation time steps). The prefix matches the event type: ca, na, or nmda |
{event}_upper_bound |
End time of the dendritic spike event (in simulation time steps). Present for Ca²⁺ and NMDA events, which have extended durations. Not present for Na⁺ events (point events) |
mag |
Magnitude of the dendritic spike event. Present for Ca²⁺ and NMDA events |
Nexus CSV columns (*_ca_nex.csv, *_na_nex.csv, *_nmda_nex.csv):
Same columns as above, plus:
| Column | Description |
|---|---|
Elec_distance_nexus |
Electrotonic distance from the apical nexus (the nexus segment has the maximum value) |
Elec_distance_nexusQ |
Electrotonic distance from the nexus, quantiled |
Soma voltage CSV columns (*_soma_v.csv):
| Column | Description |
|---|---|
voltage_mV |
Somatic membrane voltage in millivolts |
Each row in a dendritic event CSV represents one dendritic spike event at a specific segment. Segments with no detected events have NaN in the time columns and are excluded during loading.
NumPy files (.npy)
| File | Description |
|---|---|
modulatory_trace_{freq}.npy |
The inhibitory modulatory waveform used in burst simulations. Present only in burst simulation folders. |
Figures directory
The figures/ directory contains Jupyter notebooks that reproduce each figure in the manuscript:
| Notebook | Description |
|---|---|
Fig2_3.ipynb |
Relationship between dendritic and somatic spikes under baseline Poisson input |
Fig4.ipynb |
Distinct E/I balance effects of perisomatic vs. distal dendritic inhibition |
Fig5.ipynb |
Phase-dependent effects of beta and gamma rhythmic inhibition on dendritic spikes |
Fig5_Supp.ipynb |
Effects of reversing rhythm locations on dendritic spikes (supplement to Fig. 5) |
Fig6.ipynb |
Phase-dependent modulation of action potential threshold by rhythmic inhibition |
Fig6_Supp.ipynb |
Effects of reversing rhythm locations on AP threshold (supplement to Fig. 6) |
Fig7.ipynb |
Frequency-specific effects of distal dendritic rhythmic inhibition (0.5–80 Hz) |
Fig8.ipynb |
Frequency- and phase-dependent effects of perisomatic rhythmic inhibition (0.5–80 Hz) |
Fig9.ipynb |
Phase-dependent effects of oscillatory bursts on dendritic spikes |
Fig10.ipynb |
Beta and gamma modulation of clustered synaptic drive by location |
Source code directory
The src/ directory contains Python modules used by the figure notebooks for data loading, signal processing, and statistical analysis. Key modules include:
Data loading:
| Module | Description |
|---|---|
load_spike_h5.py |
Load somatic action potential times from HDF5 |
load_spike_aux_h5.py |
Load presynaptic excitatory spike times from HDF5 |
load_v_h5.py |
Load membrane voltage traces from HDF5 |
load_dendevt_csv.py |
Load dendritic spike events from CSV |
load_caspks_csv.py |
Load Ca²⁺ spike times at the apical nexus from CSV |
load_axcurrent_csv.py |
Load axial currents entering the soma from CSV |
Spike train analysis:
| Module | Description |
|---|---|
cc.py |
Cross-covariance between two time series |
cc_ptpt.py |
Cross-correlation between two point processes |
cc_serpt.py |
Cross-correlation between a time series and a point process |
cc_serser.py |
Cross-correlation between two time series |
cc_phdep_files.py |
Phase-dependent cross-correlation between APs and dendritic events |
cc_presyn_phdep_files.py |
Phase-dependent cross-correlation with presynaptic events |
sta_dendevt.py |
Spike-triggered average of dendritic events |
sta_files.py |
Calculate spike-triggered averages from files |
Rhythmic entrainment analysis:
| Module | Description |
|---|---|
bin_rhym_dendevt.py |
Bin dendritic events by rhythmic inhibition phase |
bin_rhythmic_files.py |
Bin spike events by oscillation phase from files |
bin_rhythmic_burst_files.py |
Bin spike events by oscillatory burst phase |
bin_ptser.py |
Bin a point process by values in a time series |
bin_serser.py |
Bin a time series by values in another time series |
ent_rhym_dendevt.py |
Pairwise Phase Consistency (PPC) entrainment of dendritic events |
ent_rhythmic_files.py |
PPC entrainment analysis from files |
ent_serser.py |
PPC entrainment between two series |
ph_rhym_dendevt.py |
Extract phases at which dendritic events occur |
Utility modules:
| Module | Description |
|---|---|
ppc.py |
Pairwise Phase Consistency (PPC and PPC2) calculation |
count_dendevt_files.py |
Count dendritic spike events |
expparams.py |
Simulation parameter definitions |
mean_dendevt_eq.py |
Average dendritic events within electrotonic quantiles |
seg_dendevts.py |
Aggregate dendritic events within segments |
ts_pt.py |
Generate count time series from point process times |
ts_dendevt.py |
Create binary time series of dendritic event occurrences |
ts_ss.py |
Generate count time series using start/stop times |
Code/Software
Environment setup
A Conda environment specification is provided in environment.yml. To recreate the environment:
conda env create -f environment.yml
conda activate dend_comp
Dependencies
- Python 3.9
- pandas
- numpy
- matplotlib
- scipy
- h5py
- holoviews
- scikit-learn
- scikit-image
- statsmodels
- prettytable
Running the notebooks
From the repository root, launch Jupyter and open any notebook in the figures/ directory:
conda activate dend_comp
jupyter notebook figures/
Each notebook loads data using relative paths (e.g., ../data/) and imports analysis functions from the src/ package.
