DoGKernel

DoGKernel#

class braintools.conn.DoGKernel(sigma_center, sigma_surround, amplitude_center=1.0, amplitude_surround=0.8, max_distance=None, weight=None, delay=None, **kwargs)#

Difference of Gaussians (DoG) kernel for center-surround receptive fields.

Implements DoG filters commonly found in retinal ganglion cells and LGN neurons, with excitatory center and inhibitory surround (or vice versa).

Parameters:
  • sigma_center (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Standard deviation of center Gaussian.

  • sigma_surround (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Standard deviation of surround Gaussian.

  • amplitude_center (float) – Amplitude of center Gaussian (default: 1.0).

  • amplitude_surround (float) – Amplitude of surround Gaussian (default: 0.8).

  • max_distance (Array | ndarray | bool | number | bool | int | float | complex | Quantity | None) – Maximum distance for connections (default: 3*sigma_surround).

  • weight (Initialization | float | int | ndarray | Array | Quantity | None) – Weight initialization (DoG values are multiplied by this).

  • delay (Initialization | float | int | ndarray | Array | Quantity | None) – Delay initialization.

Examples

>>> positions = np.random.uniform(0, 1000, (500, 2)) * u.um
>>> dog = DoGKernel(
...     sigma_center=30 * u.um,
...     sigma_surround=60 * u.um,
...     amplitude_center=1.0,
...     amplitude_surround=0.8,
...     weight=1.0 * u.nS
... )
>>> result = dog(
...     pre_size=500, post_size=500,
...     pre_positions=positions, post_positions=positions
... )
generate(**kwargs)[source]#

Generate DoG kernel connections.

Return type:

ConnectionResult