# gridcells.analysis.bumps - bump tracking¶

Classes and functions for processing data related to bump attractors.

## Classes¶

 MLFit(mu, sigma2, ln_lh, err2) Maximum likelihood fit data holer. MLFitList([mu, sigma2, ln_lh, err2, times]) A container for holding results of maximum likelihood fitting. MLGaussianFit(amplitude, mu_x, mu_y, sigma, ...) Gaussian fit performed by applying maximum likelihood estimator. MLGaussianFitList([amplitude, mu_x, mu_y, ...]) A container for holding maximum likelihood Gaussian fits. SingleBumpPopulation(senders, times, sheet_size) A population of neurons that is supposed to form a bump on a twisted torus. SymmetricGaussianParams(amplitude, mu_x, ...) Parameters for the symmetric Gaussian function.

## Functions¶

 fit_gaussian_tt(sig_f, i) Fit a 2D circular Gaussian function to a 2D signal using a maximum likelihood estimator. fit_gaussian_bump_tt(sig) Fit a 2D Gaussian onto a (potential) firing rate bump on the twisted torus. fit_maximum_lh(sig) Fit a maximum likelihood solution under Gaussian noise.
class gridcells.analysis.bumps.MLFit(mu, sigma2, ln_lh, err2)[source]

Bases: object

Maximum likelihood fit data holer.

class gridcells.analysis.bumps.MLFitList(mu=None, sigma2=None, ln_lh=None, err2=None, times=None)[source]

Bases: gridcells.analysis.bumps.MLFit, collections.abc.Sequence

A container for holding results of maximum likelihood fitting.

Can be accessed as a Sequence object.

append_data(d, t)[source]

d must be an instance of MLFit

class gridcells.analysis.bumps.MLGaussianFit(amplitude, mu_x, mu_y, sigma, err2, ln_lh, lh_precision)[source]

Gaussian fit performed by applying maximum likelihood estimator.

class gridcells.analysis.bumps.MLGaussianFitList(amplitude=None, mu_x=None, mu_y=None, sigma=None, err2=None, ln_lh=None, lh_precision=None, times=None)[source]

Bases: gridcells.analysis.bumps.MLGaussianFit, collections.abc.Sequence

A container for holding maximum likelihood Gaussian fits.

Can be accessed as a Sequence.

append_data(d, t)[source]

d must be an instance of MLGaussianFit

class gridcells.analysis.bumps.SingleBumpPopulation(senders, times, sheet_size)[source]

A population of neurons that is supposed to form a bump on a twisted torus.

Parameters: senders : array_like A an array of neurons’ IDs. times : array_like An array of spike times. Length must be the same as as . sheet_size : A pair A pair of X and Y dimensions of the torus.
bump_position(tstart, tend, dt, win_len, full_err=True)[source]

Estimate bump positions during the simulation time:

1. Estimates population firing rate for each bin.
2. Apply the bump position estimation procedure to each of the population activity items.
Parameters: tstart, tend, dt, win_len : float Start and end time, time step, and window length. See also sliding_firing_rate(). full_err : bool If True, save the full error of fit. Otherwise a sum only. pos:list MLGaussianFitList A list of fitted Gaussian parameters

Notes

This method uses the Maximum likelihood estimator to fit the Gaussian function (fit_gaussian_bump_tt())

uniform_fit(tstart, tend, dt, win_len, full_err=True)[source]

Estimate the mean firing rate using maximum likelihood estimator (fit_maximum_lh())

1. Uses sliding_firing_rate().
2. Apply the estimator.
Parameters: tstart, tend, dt, win_len As in sliding_firing_rate(). full_err : bool If True, save the full error of fit. Otherwise a sum only. MLFitList A list of fitted parameters.
class gridcells.analysis.bumps.SymmetricGaussianParams(amplitude, mu_x, mu_y, sigma, err2)[source]

Bases: object

Parameters for the symmetric Gaussian function.

gridcells.analysis.bumps.fit_gaussian_bump_tt(sig)[source]

Fit a 2D Gaussian onto a (potential) firing rate bump on the twisted torus.

Parameters: sig : np.ndarray 2D firing rate map to fit. Axis 0 is the Y position. This will be passed directly to fit_gaussian_tt(). analysis.image.MLGaussianFit Estimated values of the fit.

Notes

The function initialises the Gaussian fitting parameters to a position at the maximum of sig.

gridcells.analysis.bumps.fit_gaussian_tt(sig_f, i)[source]

Fit a 2D circular Gaussian function to a 2D signal using a maximum likelihood estimator.

The Gaussian is not generic: $$\sigma_x = \sigma_y = \sigma$$, i.e. it is circular only.

The function fitted looks like this:

$f(\mathbf{X}) = |A| \exp\left\{\frac{-|\mathbf{X} - \mathbf{\mu}|^2}{2\sigma^2}\right\}$

where $$|\cdot|$$ is a distance metric on the twisted torus.

Parameters: sig_f : np.ndarray A 2D array that specified the signal to fit the Gaussian onto. The dimensions of the torus will be inferred from the shape of sig_f: (dim.y, dim.x) = sig_f.shape. i : SymmetricGaussianParams Guassian initialisation parameters. The err2 field will be ignored. MLGaussianFit Estimated values, together with maximum likelihood value and precision (inverse variance of noise: NOT of the fitted Gaussian).
gridcells.analysis.bumps.fit_maximum_lh(sig)[source]

Fit a maximum likelihood solution under Gaussian noise.

Parameters: sig : np.ndarray A vector containing the samples Returns fit : MLFit Maximum likelihood parameters