reduce

Dimensionality reduction and supervised projections.

The reduce operation supports seven methods:

  • pca

  • gpfa

  • dpca

  • coding_direction

  • logistic

  • lda

  • rrr

Quick examples

Example: PCA

PCA works on DataArray inputs with dimensions like (trials, units, time). If n_components is not specified, it defaults to 5.

ds = da.ephys.reduce(method="pca")
proj = ds["projections"]
w = ds["weights"]

Example: GPFA

GPFA works on pre-binned data with dimensions (trials, units, time) and uses the same default component behavior as PCA.

ds = da.ephys.reduce(method="gpfa", n_components=2)
proj = ds["projections"]
w = ds["weights"]

Example: Supervised methods

Supervised methods work on DataArray inputs with dimensions like (trials, units, time). They require labels to define condition/group structure. A window can optionally restrict fitting to a time range. When multiple labels or windows are used, outputs can be orthogonalized with "qr" (Gram-Schmidt) or "svd" (Singular Value Decomposition) methods.

ds = da.ephys.reduce(
    method="lda",
    labels=["choice", "stimulus"],
    window=(-0.2, 0.0),
    orthogonalize="qr",
)