DoGKernel#
- class braintools.conn.DoGKernel(sigma_center, sigma_surround, amplitude_center=1.0, amplitude_surround=0.8, max_distance=None, allow_self_connections=False, 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).
Only the first two position dimensions (x, y) are used; any extra columns (e.g. z) are ignored.
- 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).allow_self_connections (
bool) – Whether a neuron may connect to itself when pre and post are the same population (default: False).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 ... )