Utils Module#

This module contains utility functions for setup, NMODL file handling, current generation, plotting, and type definitions.

Current Generation#

create_ramp_current(n_pools, t_points, ...)

Create a matrix of ramp currents for multiple pools.

create_step_current(n_pools, t_points, ...)

Create a matrix of step currents for multiple pools.

create_sinusoidal_current(n_pools, t_points, ...)

Create a matrix of sinusoidal currents for multiple pools.

create_sawtooth_current(n_pools, t_points, ...)

Create a matrix of sawtooth currents for multiple pools.

create_trapezoid_current(n_pools, t_points, ...)

Create a matrix of trapezoidal currents for multiple pools.

NEURON Utilities#

inject_currents_into_populations(...)

Injects input currents into the specified populations.

inject_currents_and_simulate_spike_trains(...)

Injects input currents into populations and returns recorded spike trains.

Continuous Saver#

ContinuousSaver(save_path[, ...])

Manages continuous saving of simulation data in chunks to prevent memory overflow.

convert_chunks_to_neo(save_path[, ...])

Load chunks and convert to NEO Block format (compatible with SimulationRunner output).

Plotting & Visualization#

plot_raster_spikes(results, axs, populations)

Plot spike raster plots for neural populations, one per axis.

plot_membrane_potentials(results, axs[, ...])

Plot membrane potential traces for selected cells across populations.

plot_muscle_dynamics(results, joint_angle, ...)

Plot muscle dynamics from Hill model.

plot_antagonist_muscle_comparison(results, ...)

Plot comparison of antagonist muscle dynamics.

plot_spindle_dynamics(results, axs[, ...])

Plot spindle model dynamics.

plot_gto_dynamics(results, axs[, ...])

Plot Golgi tendon organ (GTO) dynamics.

Type Definitions#

Quantity Types#

Quantity__s

Physical quantity type for time in seconds.

Quantity__ms

Physical quantity type for time in milliseconds.

Quantity__rad

Physical quantity type for angles in radians.

Quantity__deg

Physical quantity type for angles in degrees.

Quantity__mV

Physical quantity type for electrical potential in millivolts.

Quantity__uV

Physical quantity type for electrical potential in microvolts.

Quantity__nA

Physical quantity type for electrical current in nanoamperes.

Quantity__uS

Physical quantity type for electrical conductance in microsiemens.

Quantity__S_per_m

Physical quantity type for conductivity in siemens per meter.

Quantity__Hz

Physical quantity type for frequency in hertz.

Quantity__pps

Physical quantity type for firing rate in pulses per second.

Quantity__mm

Physical quantity type for length in millimeters.

Quantity__m

Physical quantity type for length in meters.

Quantity__mm2

Physical quantity type for area in square millimeters.

Quantity__per_mm2

Physical quantity type for density per square millimeter.

Quantity__m_per_s

Physical quantity type for velocity in meters per second.

Quantity__mm_per_s

Physical quantity type for velocity in millimeters per second.

Neo Data Types#

CURRENT__AnalogSignal

Neo AnalogSignal for input currents in nanoamperes with time in seconds.

FORCE__AnalogSignal

Neo AnalogSignal for force measurements in newtons or dimensionless units.

SPIKE_TRAIN__Block

Neo Block containing spike train data organized by motor unit pools.

SURFACE_MUAP__Block

Neo Block containing surface motor unit action potentials (MUAPs).

SURFACE_EMG__Block

Neo Block containing surface EMG signals.

INTRAMUSCULAR_MUAP__Block

Neo Block containing intramuscular motor unit action potentials (MUAPs).

INTRAMUSCULAR_EMG__Block

Neo Block containing intramuscular EMG signals.

Matrix & Array Types#

CORTICAL_INPUT__MATRIX

2D floating-point array for cortical input patterns.

RECRUITMENT_THRESHOLDS__ARRAY

1D array of recruitment threshold values for motor units.

JOINT_ANGLE__ARRAY

1D array representing joint angle trajectory over time.

MOMENT_ARM__MATRIX

2D array of moment arms as a function of joint angle.