- Organoids, electrodes, psychedelics
Cortical organoids grown on a 48-well multi-electrode array plate, dosed with psychedelics, recorded for ten minutes at a time over months. David's part: the entire signal-analysis pipeline, from Axion's raw broadband files to dose-response figures. This page replays that year chronologically; the page itself gets more polished as the analysis did.
- Chapter 1: MATLAB first, because Axion
Axion's MEA tooling speaks MATLAB, so the pipeline starts there: load the raw broadband, pull the downsampled LFP per well into one 6×8×time array, export spike times from the .spk files, save HDF5 for Python. The first Python notebook (ds_lfp_07-29-24) is 221 figures of pure looking-at-data.
- Chapter 2: what's in a spectrum
The analytical lens for everything after: FOOOF (specparam, also Voytek Lab software) splits each well's power spectrum into an aperiodic 1/f background (offset, knee, exponent) and oscillatory peaks. Click any well and watch the decomposition happen. The fixed-vs-knee toggle previews a choice that matters later: organoid spectra bend, and knee mode follows the bend.
- Chapter 3: dose and time (Plate D, 5-MeO-DMT)
The first real experiment: 5-MeO-DMT at 10 µM and 20 µM against methanol vehicle and blank wells, stim and no-stim rows, recorded from a day before dosing (D-1) to day 20. The plate view gains a dose overlay and a day slider; the parameter heatmap mode is where trends live. One well, one day, one notebook: that's how single notebooks reached 39 MB.
- Chapter 4: four compounds, sixty days (Plate F)
The full design: psilocybin, LSD, and psilocin against vehicle, stim vs no-stim rows, D-1 to D60, fitted in knee mode. Spikes join the story: inter-spike intervals, burst detection per electrode, and network events when several electrodes in a well fire together. The dose-response boxplots at the end are the year's payoff figure.
- Chapter 5: the library
By June 2025 the per-day notebook era ends: 25 functions consolidated into General_LFP_analysis_functions.py: load, spectra, FOOOF arrays, windows, spikes, bursts, heatmaps, boxplots. The dependency map shows how a per-day notebook walks the library; every panel above cites the function it mirrors.
- Rebuilt for this page (2026-09-01)
No lab data ships with this page: the interactive panels run on seeded synthetic signals (colored noise with dose-conditioned spectral parameters, labeled 'illustrative' wherever they appear), while the figures beside them are David's real rendered analysis outputs, extracted from the notebooks. The FOOOF fitting on this page is a TypeScript port of the real fooof 1.1 algorithm, fixture-tested against the Python package; the burst and network-event detectors are exact ports. Built with AI coding tools.