BimodalProfile#

class braintools.init.BimodalProfile(sigma1, sigma2, center1, center2, amplitude1=1.0, amplitude2=1.0, max_distance=None)#

Bimodal distance profile.

Connection probability has two peaks at different distances, useful for modeling connections with both local and long-range components.

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

  • sigma2 (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Standard deviation of second Gaussian peak.

  • center1 (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Center position of first peak (default: 0).

  • center2 (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Center position of second peak.

  • amplitude1 (float) – Amplitude of first peak (default: 1.0).

  • amplitude2 (float) – Amplitude of second peak (default: 1.0).

  • max_distance (Array | ndarray | bool | number | bool | int | float | complex | Quantity | None) – Maximum connection distance (connections beyond this are set to 0).

Examples

>>> import numpy as np
>>> import brainunit as u
>>> from braintools.init import BimodalProfile
>>>
>>> profile = BimodalProfile(
...     sigma1=30.0 * u.um,
...     sigma2=50.0 * u.um,
...     center1=0.0 * u.um,
...     center2=200.0 * u.um,
...     amplitude1=1.0,
...     amplitude2=0.8
... )
>>> distances = np.array([0, 50, 100, 200, 300]) * u.um
>>> probs = profile.probability(distances)
probability(distances)[source]#

Calculate connection probability based on distance.

Parameters:

distances (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Array of distances between neuron pairs.

Returns:

probability – Connection probabilities (values between 0 and 1).

Return type:

ndarray