SpindleModel#

class SpindleModel(
simulation_time__ms: Quantity__ms,
time_step__ms: Quantity__ms,
spindle_parameters: Dict[str, Any],
)[source]#

Bases: object

API wrapper for the muscle spindle model.

This class provides an intuitive interface for creating muscle spindle models with user-friendly parameter names that are internally mapped to the correct format expected by the underlying Spindle implementation.

The muscle spindle is a proprioceptive sensory organ that detects changes in muscle length and velocity, providing feedback for motor control.

Parameters:
  • simulation_time__ms (Quantity__ms) – Total simulation time in milliseconds

  • time_step__ms (Quantity__ms) – Integration time step in milliseconds

  • spindle_parameters (Dict[str, Any]) – Dictionary containing spindle model parameters

Methods

__init__

create_default_spindle_parameters

Create default spindle parameter dictionary.

integrate

Integrate the spindle model for one time step.

Attributes

bag1_activation

Get Bag1 fiber activation time series.

bag2_activation

Get Bag2 fiber activation time series.

chain_activation

Get Chain fiber activation time series.

intrafusal_tensions

Get intrafusal fiber tensions matrix (3 × time_points) [Bag1, Bag2, Chain].

primary_afferent_firing__Hz

Get primary afferent (Ia) firing rate time series in Hz.

secondary_afferent_firing__Hz

Get secondary afferent (II) firing rate time series in Hz.

time_vector

Get simulation time vector in milliseconds.

integrate(
muscle_length__L0: float,
muscle_velocity__L0_per_s: float,
muscle_acceleration__L0_per_s2: float,
gamma_dynamic_drive__Hz: float,
gamma_static_drive__Hz: float,
) tuple[float, float][source]#

Integrate the spindle model for one time step.

Parameters:
  • muscle_length__L0 (float) – Current muscle length normalized to L0

  • muscle_velocity__L0_per_s (float) – Current muscle velocity in L0/s

  • muscle_acceleration__L0_per_s2 (float) – Current muscle acceleration in L0/s²

  • gamma_dynamic_drive__Hz (float) – Gamma dynamic motor neuron drive frequency in Hz

  • gamma_static_drive__Hz (float) – Gamma static motor neuron drive frequency in Hz

Returns:

Primary afferent (Ia) and secondary afferent (II) firing rates in Hz

Return type:

tuple[float, float]

property primary_afferent_firing__Hz: ndarray#

Get primary afferent (Ia) firing rate time series in Hz.

property secondary_afferent_firing__Hz: ndarray#

Get secondary afferent (II) firing rate time series in Hz.

property bag1_activation: ndarray#

Get Bag1 fiber activation time series.

property bag2_activation: ndarray#

Get Bag2 fiber activation time series.

property chain_activation: ndarray#

Get Chain fiber activation time series.

property intrafusal_tensions: ndarray#

Get intrafusal fiber tensions matrix (3 × time_points) [Bag1, Bag2, Chain].

property time_vector: ndarray#

Get simulation time vector in milliseconds.

static create_default_spindle_parameters(
species: str = 'human',
deafferent_ia: bool = False,
deafferent_ii: bool = False,
) Dict[str, Any][source]#

Create default spindle parameter dictionary.

Parameters:
  • species (str, optional) – Species type (“human” or “cat”), by default “human”

  • deafferent_ia (bool, optional) – Whether to simulate Ia afferent deafferentation, by default False

  • deafferent_ii (bool, optional) – Whether to simulate II afferent deafferentation, by default False

Returns:

Dictionary of spindle parameters with detailed explanations

Return type:

Dict[str, Any]

Raises:

ValueError – If species is not recognized