BCI analysis software where every step is reviewable

Eleven steps sit between a conditioned recording and a labelled design matrix. In BCILattice each one shows you its result before you commit it, and records what it ran with afterwards.

Analysis is the part of a BCI study where the decisions that decide the result get made — which components were artifacts, where the trial window started, which channels carried class information, which features were extracted. It is also the part most often buried in a script nobody reads again.

The BCILattice Analysis Suite makes each of those decisions a step you look at. Every step reads a named stage and writes a named stage, so nothing is destructive, every intermediate result stays inspectable and exportable, and re-running a step never silently overwrites what a different step produced.

The eleven steps

The suite is split into two sections. Prepare cleans the recording and cuts it into trials; Reduce & Extract narrows those trials down to a labelled design matrix.

#StepWhat it is for
1ICA ReviewDecompose the recording into independent components, label the artifactual ones, reconstruct without them.
2Channel QualityScore every channel, flag dead or noisy sensors, drop the ones you confirm.
3EpochingCut the continuous recording into labelled trials around events, with baseline correction and rejection.
4NormalizationRescale the signal with a scaler fitted once over the whole recording.
5AugmentationSynthesise additional trials, with a report on what the synthesis did to the data.
6Activation Maps2D topographies and a 3D cortical surface rendered from epoched data. View-only.
7Time-FrequencyERSP / ITC decomposition with seven derived views over one cached computation.
8Channels SelectionRank and keep the channels carrying class information, by any of 20 criteria.
9Dimensionality ReducerProject the channel space onto fewer components, with variance and separability reporting.
10Feature ExtractionTurn trials into a named, ranked design matrix across five feature domains.
11Data ProjectionEncode a 1-D time course as a 2-D image for vision models.

Preview on one file, then batch the rest

Every step opens as two tabs. View is the interactive workspace: pick one file, set the parameters, run it, read the result. Apply is the batch tab — it takes exactly the settings currently in View and runs them across many files at once.

The two produce identical outputs because Apply calls the same code path with the same payload, not a parallel implementation. Ten of the eleven steps have a working Apply tab; Activation Maps is view-only because it renders figures rather than writing a stage.

The step order is a default, not a constraint

The sidebar shows the conventional preparation order, but the seven Prepare steps can be dragged into a different one and the app remembers it across restarts. There is no single correct sequence — some labs screen channels before ICA, others after; some normalise before epoching, others after.

Reordering is presentational only. A step identity, output name and dependency rules do not move with it, so a reordered sidebar can never cause one step result to be written under another step name.

Seventy-one feature families across five domains

Feature Extraction is where trials become a design matrix. The catalogue spans five domains, and every extracted column is named, so a ranked feature list points at something you can interpret rather than at an index.

DomainFamiliesExamples
Time27RMS, mean absolute value, waveform length, zero crossing rate, Hjorth parameters, sample and permutation entropy, Higuchi and Katz fractal dimension, AR coefficients
Frequency18Absolute / relative / log band power, band peak frequency, spectral entropy, centroid, bandwidth, rolloff, flatness, slope, theta/beta and alpha/beta ratios
Time-Frequency9Wavelet sub-band energy and entropy, ERD/ERS, windowed band power, Hilbert envelope statistics, instantaneous frequency, time-frequency entropy
Spatial8Common Spatial Patterns, covariance matrix, Riemannian tangent space, global field power, Laplacian and CAR variance, region band power over 10-20 ROIs
Connectivity9Correlation, coherence, imaginary coherence, PLV, PLI, wPLI, mutual information, graph metrics

A first run that produces something usable

Turning on all 71 families produces thousands of columns and a model that overfits them. A working default is preselected instead — one strong, cheap, well-understood family per domain: variance, RMS, waveform length, Hjorth parameters, relative and log band power, spectral entropy, ERD/ERS, CSP and correlation.

That is enough to train a real decoder on the first run, and a sensible baseline to widen from once you know which domain carries the signal.

Questions

Can I export the intermediate results?

Yes. Every step writes a named stage that stays inspectable and exportable, so the epoched data or the design matrix can go out to your own tooling at any point, not only at the end.

Does it modify my original recording?

No. No step in the suite is destructive. Each reads one named stage and writes another, and the imported recording remains as it was.

How does it handle multi-subject data?

Import a folder rather than a file, preview the pipeline on one recording in the View tab, then run the identical settings across the rest from the Apply tab. Later, grouped cross-validation keeps a subject out of both train and test.

What if I need a method the suite does not implement?

The ML Suite canvas accepts custom Python blocks, and the results notebook runs against the study in-process, so a method the suite does not implement can still run over the same stages.

Read the reference

Related

Run a study end to end, on your own machine

The free plan covers two studies, the full analysis suite, and 118 of the 119 ML blocks.