fNIRS analysis that does not treat HbO and HbR as one signal

An fNIRS file holds a HbO and a HbR channel per source-detector pair. Every fNIRS-capable step here exposes a chromophore control, because decomposing or ranking both together mixes two different physiological signals.

Most biosignal software is EEG software with fNIRS support added. The tell is the chromophore: if a tool ranks channels or runs a decomposition over HbO and HbR together, it is treating oxygenated and deoxygenated haemoglobin as two channels of one signal, which they are not.

BCILattice imports SNIRF, FIF and tabular fNIRS files, reads the sampling rate from the file rather than assuming an EEG-style rate, and exposes a chromophore control — All, HbO, HbR — on every fNIRS-capable step.

The chromophore control, and where it is not offered

Decomposing, ranking or reducing HbO and HbR together mixes two physiological signals with different time courses and different signs. Every fNIRS-capable step therefore lets you choose which chromophore it operates on.

Activation Maps is the deliberate exception: it offers HbO or HbR only, never both. A topomap draws one value per optode position, and rendering both at once would overplot the same sensors with two different quantities.

fNIRS conditioning

  • Optical density

    Conversion from raw intensity, the first step before anything haemodynamic is meaningful.

  • Beer-Lambert

    Modified Beer-Lambert conversion to concentration changes, producing the HbO and HbR channels the rest of the pipeline works on.

  • Motion correction

    For the artifact class that dominates fNIRS recordings in any task involving movement.

  • Short-channel regression

    Regressing out the superficial scalp signal that short source-detector separations capture, so what remains is closer to cortical.

Bands built for haemodynamics

The fNIRS band preset covers vlf (0.005–0.02 Hz), hemodynamic (0.01–0.08), Mayer (0.08–0.12), respiratory (0.2–0.4) and cardiac (0.8–1.5). The higher bands are there on purpose: Mayer waves, respiration and cardiac pulsation are the physiological confounds in an fNIRS recording, and being able to measure them is better than assuming them away.

Because sampling rate is read from the recording, a roughly 10 Hz fNIRS file is processed at 10 Hz. Nothing in the pipeline assumes a 250 Hz EEG rate.

A limit we document rather than hide

The haemodynamic response lives below about 0.1 Hz. At fNIRS sampling rates, a wavelet decomposition has limited resolution in that band, so time-frequency peaks read low — in our measurements, roughly 30% low in the fNIRS band.

That is a resolution limit of the method, not a defect in your recording and not a bug in the software. It is stated in the documentation because a number that is quietly wrong is worse than one you know how to interpret.

Everything else the suite does, applies

Chromophore handling is what is fNIRS-specific. The rest of the analysis suite is shared: epoching around events with baseline correction and rejection, channel quality scoring, channel selection by 20 criteria, dimensionality reduction with variance and separability reporting, and feature extraction across 71 families.

fNIRS and EEG recordings can live in the same study, which is what makes a genuinely multimodal analysis one project rather than two.

Questions

Which fNIRS formats are supported?

SNIRF, FIF, and tabular TXT, CSV and XLSX. Folder import handles multi-subject datasets in one action.

Can I analyse fNIRS and EEG in the same study?

Yes. A study can hold more than one modality, and each step reads the sampling rate and channel structure from the file it is operating on rather than from a study-wide assumption.

Does it do short-channel regression?

Yes, alongside optical density conversion, modified Beer-Lambert, and motion correction — the standard fNIRS conditioning chain before trial-level analysis begins.

Why do my time-frequency peaks look too low?

Because the haemodynamic response sits below about 0.1 Hz and wavelet resolution at fNIRS sampling rates is limited in that band. Peaks read roughly 30% low. It is a property of the method; interpret the peak location with that in mind rather than treating it as a measurement.

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.