Source code for jaxley.synapses.tanh_rate

# This file is part of Jaxley, a differentiable neuroscience simulator. Jaxley is
# licensed under the Apache License Version 2.0, see <https://www.apache.org/licenses/>

from typing import Dict, Optional, Tuple

import jax.numpy as jnp

from jaxley.synapses.synapse import Synapse


[docs] class TanhRateSynapse(Synapse): """ Compute synaptic current for tanh synapse (no state). """ def __init__(self, name: Optional[str] = None): super().__init__(name) prefix = self._name self.synapse_params = { f"{prefix}_gS": 1e-4, f"{prefix}_x_offset": -70.0, f"{prefix}_slope": 1.0, } self.synapse_states = {} def update_states( self, states: Dict, delta_t: float, pre_voltage: float, post_voltage: float, params: Dict, ) -> Dict: """Return updated synapse state and current.""" return {} def compute_current( self, states: Dict, pre_voltage: float, post_voltage: float, params: Dict ) -> float: """Return updated synapse state and current.""" prefix = self._name current = ( -1 * params[f"{prefix}_gS"] * jnp.tanh( (pre_voltage - params[f"{prefix}_x_offset"]) * params[f"{prefix}_slope"] ) ) return current