SigmoidProfile#

class braintools.init.SigmoidProfile(midpoint, slope=0.05, max_distance=None)#

Sigmoid distance profile.

Connection probability follows a sigmoid function that smoothly transitions from high to low probability around a midpoint distance.

Parameters:
  • midpoint (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Distance at which probability is 0.5.

  • slope (float) – Steepness of the sigmoid transition (higher values = steeper).

  • 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 SigmoidProfile
>>>
>>> profile = SigmoidProfile(
...     midpoint=100.0 * u.um,
...     slope=0.05,
...     max_distance=300.0 * u.um
... )
>>> distances = np.array([0, 50, 100, 150, 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