Processing math: 100%

Formulas used by fit_gaussian_2D

Overview

This document will provide specific details of 2D-Gaussian equations used by the different method options within gaussplotR::fit_gaussian_2D().

method = "elliptical"

Using method = "elliptical" fits a two-dimensional, elliptical Gaussian equation to gridded data.

G(x,y)=Ao+AeU/2

where G is the value of the 2D-Gaussian at each (x,y) point, Ao is a constant term, and A is the amplitude (i.e. scale factor).

The elliptical function, U, is:

U=(x/a)2+(y/b)2

where a is the spread of Gaussian along the x-axis and b is the spread of Gaussian along the y-axis.

x and y are defined as:

x=(xx0)cos(θ)(yy0)sin(θ) y=(xx0)sin(θ)+(yy0)cos(θ) where x0 is the center (peak) of the Gaussian along the x-axis, y0 is the center (peak) of the Gaussian along the y-axis, and θ is the rotation of the ellipse from the x-axis in radians, counter-clockwise.

Therefore, all together:

G(x,y)=Ao+Ae((((xx0)cos(θ)(yy0)sin(θ))/a)2+(((xx0)sin(θ)+(yy0)cos(θ))/b)2)/2

Setting the constrain_orientation argument to a numeric will optionally constrain the value of θ to a user-specified value. If a numeric is supplied here, please note that the value will be interpreted as a value in radians. Constraining θ to a user-supplied value can lead to considerably poorer-fitting Gaussians and/or trouble with converging on a stable solution; in most cases constrain_orientation should remain its default: "unconstrained".

method = "elliptical_log"

The formula used in method = "elliptical_log" uses the modification of a 2D Gaussian fit used by Priebe et al. 20031.

G(x,y)=Ae((xx0)2)/σ2xe((yy(x)))/σ2y

and

y(x)=2(Q+1)(xx0)+y0 where A is the amplitude (i.e. scale factor), x0 is the center (peak) of the Gaussian along the x-axis, y0 is the center (peak) of the Gaussian along the y-axis, σx is the spread along the x-axis, σy is the spread along the y-axis and Q is an orientation parameter.

Therefore, all together:

G(x,y)=Ae((xx0)2)/σ2xe((y(2(Q+1)(xx0)+y0)))/σ2y

This formula is intended for use with log2-transformed data.

Setting the constrain_orientation argument to a numeric will optionally constrain the value of Q to a user-specified value, which can be useful for certain kinds of analyses (see Priebe et al. 2003 for more). Keep in mind that constraining Q to a user-supplied value can lead to considerably poorer-fitting Gaussians and/or trouble with converging on a stable solution; in most cases constrain_orientation should remain its default: "unconstrained".

method = "circular"

This method uses a relatively simple formula:

G(x,y)=Ae((((xx0)2/2σ2x)+((yy0)2/2σ2y)))

where A is the amplitude (i.e. scale factor), x0 is the center (peak) of the Gaussian along the x-axis, y0 is the center (peak) of the Gaussian along the y-axis, σx is the spread along the x-axis, and σy is the spread along the y-axis.

That’s all!

🐢


  1. Priebe NJ, Cassanello CR, Lisberger SG. The neural representation of speed in macaque area MT/V5. J Neurosci. 2003 Jul 2;23(13):5650-61. doi: 10.1523/JNEUROSCI.23-13-05650.2003.↩︎