Measurement Explorer
Switch measurement method and window on the same ERP and watch both the value and its across-subject variance move.
5 claims on this page are unverified. TODO(confirm) marks a specific statement the author has not yet checked against a
primary source. Everything else on this page has been reviewed. Treat a marked claim as
provisional and go to the cited source rather than quoting the sentence.
Modes: default — the widget below runs in default. Use Share state to put the exact view in the URL.
What it does
One noisy single-subject ERP, five ways of turning it into a number, and a noise control. Choose peak amplitude, mean amplitude, area, peak latency or fractional-area latency; drag the measurement window on the waveform; then either add seeded noise or thin the trial count, and watch two things at once — the value for this subject, and the spread of the same measurement across every subject the asset carries.
That second panel is the point of the widget. A measurement is not good or bad in isolation; it is good or bad relative to the variance it produces across subjects, which is what a group test has to see through.
Controls
| Control | What it sets |
|---|---|
| Method | Peak amplitude, mean amplitude, area, peak latency, fractional-area latency |
| Polarity | Which extremum the peak measures take |
| Area mode | Signed, rectified, positive-only or negative-only area |
| Fraction | The fraction for the fractional-area latency (50% by default) |
| Measurement window | The interval the measurement is taken over, draggable on the waveform |
| Baseline window | Where the residual-noise estimate is taken |
| Noise mode | Add seeded noise, or keep a fraction of the trials |
| Noise level / trials kept | How much noise, or what percentage of trials survives |
| New noise draw | Advances the seed |
| Subject / condition | Which subject and which condition (or the difference wave) is measured |
| Reference waveform | Draw the noise-free shipped average behind the noisy one |
What to look for
default
- With the noise at zero, peak and mean amplitude agree about which subject is large and which is small. They are measuring the same waveform.
- Raise the noise and every subject’s peak amplitude climbs, while the mean amplitudes stay put and only scatter. Noise can push a maximum further out but never pull it back, so the peak is biased upward by noise — which is what makes it unusable when conditions or subjects differ in trial count (
pf-peak-amplitude-noise-bias). - Watch the across-subject panel, not only the single subject: peak amplitude has the wider spread at every noise level, so a real effect has to be larger before it can be seen through it.
- Drag the window. A narrow window tracks the peak and inherits its noise; a wider one is steadier but mixes in whatever else falls inside it. A window chosen because it looked biggest is a post-hoc window (
pf-post-hoc-windows). - Peak latency and fractional-area latency answer the same question differently: the peak latency jumps between local maxima as the noise changes, while the 50% area latency moves smoothly, because every sample in the window contributes to it.
Used in
- L3.3 Measuring ERPs (
default)
Data provenance
ds-erpcore — ERP CORE (Kappenman et al., 2021), open access, per-subject downloadable. Biosemi ActiveTwo, 30 EEG + 3 EOG electrodes in a 10-20 placement scheme, 1024 Hz, CMS online reference, 60 Hz mains, no software filters, 40 participants per paradigm.
Two assets, both from the P3 paradigm. The single-trial asset is sub-001 at Pz: 200 trials over −0.199 to 0.801 s at 256 Hz, baseline-corrected to (−0.2, 0) s, every trial kept — including the ones a rejection criterion would drop — with a per-trial pre-stimulus noise estimate, so trial count can be thinned for real rather than simulated. The index file adds 20 subjects’ per-condition average waveforms on the same time grid, computed over accepted trials only, which is what the across-subject variance panel is computed from. Derived: FIR band-pass 0.1–40 Hz at the native rate, epoched, re-referenced offline to the average of P9 and P10 (the montage has no mastoid sites; P9/P10 are the nearest stand-in), resampled 1024 → 256 Hz. Generated by data/scripts/extract_p2_widgets.py; measurement.json is the widget index, trials.json the §4.5 sidecar of trials.bin, and both are registered in data/manifest.json. The frame’s provenance line is the authority.
TODO(confirm): the asset sidecar records a licence conflict in the source — the OSF node record for thsqg says CC BY 4.0, the per-paradigm component’s own LICENSE file says CC BY-SA 4.0, and its dataset_description.json says CC0. The site states CC BY 4.0 on the strength of the node record; the author reconciles the three (§10.11 item 8, §13 item 22) and mirrors the entry into data/registry.yaml. TODO(confirm): the dataset DOI and paper DOI are TODO(confirm) in data/directory.yaml. TODO(confirm): the per-trial and per-subject rejection flags are label_source: algorithmic until the author reviews them (§4.5), so the accepted-trial counts behind the subject averages are provisional.
Open the code
site/src/components/widgets/w-measurement-explorer/ — Widget.svelte, index.ts, meta.ts, README.md. Repository link: TODO(confirm) (GitHub org/repo, §13 item 3).