166 lines
8.8 KiB
Markdown
166 lines
8.8 KiB
Markdown
---
|
|
include_toc: true
|
|
---
|
|
|
|
# Intro
|
|
|
|
The synapse uses three interlocking signal systems to translate present activity into future behavioral bias. Ca²⁺ is the universal event recorder — each compartment reads its concentration dynamics differently (amplitude and speed of rise in the postsynapse, residual accumulation in the presynapse, IP3-triggered waves in the astrocyte), so the same ion encodes distinct instructions depending on where and how it appears. cAMP/PKA is the contextual gate: driven by neuromodulatory broadcast (dopamine, norepinephrine), it doesn't write changes itself but determines whether the Ca²⁺ signal gets committed to permanent structure — by priming AMPA receptor insertion, silencing the LTD phosphatase machinery via DARPP-32, and activating CREB-driven gene expression for structural proteins. mGluRs provide the overflow sensing layer: when glutamate spills beyond the cleft, group II/III mGluRs on the presynapse activate a Gi-mediated autoinhibitory brake, while group I mGluRs on the astrocyte trigger the IP3→Ca²⁺→D-serine cascade that amplifies NMDA coincidence detection — a push-pull architecture that simultaneously throttles excessive release and widens the postsynaptic learning window.
|
|
|
|
Together these three systems form a hierarchical filter: Ca²⁺ asks did something happen?, mGluRs ask was it excessive?, and cAMP/PKA asks was it worth saving? — and only when all three align does the synapse commit to rewriting its future response.
|
|
|
|
|
|
<object data="tripartite_synapse_full_pseudocode.html" width="100%" height="500"></object>
|
|
|
|
## signal state variables
|
|
```Gen
|
|
// ── Ca²⁺ : event recorder ──────────────────────────────────────
|
|
pre_Ca_residual // leftover Ca²⁺ between spikes — encodes recent history
|
|
post_Ca_amplitude // peak rise magnitude in spine
|
|
post_Ca_rise_speed // rate of rise — fast=LTP, slow=LTD
|
|
astro_Ca_local // IP3-triggered local rise near synapse
|
|
astro_Ca_global // soma-wide wave — network overload flag
|
|
|
|
// ── cAMP/PKA : context gate ────────────────────────────────────
|
|
cAMP_level // set by dopamine/NE via Gs → adenylyl cyclase
|
|
PKA_activity // downstream of cAMP
|
|
GluA1_Ser845_primed // bool — AMPA insertion threshold lowered
|
|
DARPP32_phospho // bool — PP1 (LTD phosphatase) silenced
|
|
CREB_active // bool — structural gene expression enabled
|
|
|
|
// ── mGluRs : overflow sensor ───────────────────────────────────
|
|
glutamate_spillover // extrasynaptic [glu] — only high when cleft saturated
|
|
mGluR2_3_activation // presynaptic Gi — autoinhibitory brake
|
|
mGluR5_activation // astrocytic Gq — IP3 → Ca²⁺ → D-serine cascade
|
|
```
|
|
|
|
## layer 1 — Ca²⁺: did something happen?
|
|
```Gen
|
|
function Ca_event_recorder(spike_history, input_freq):
|
|
|
|
// Presynapse: residual Ca²⁺ = trace of recent firing
|
|
pre_Ca_residual += spike_influx(input_freq)
|
|
pre_Ca_residual *= decay(τ ≈ 100ms) // fades unless spikes keep arriving
|
|
vesicle_release_prob *= facilitation(pre_Ca_residual)
|
|
|
|
// Postsynapse: amplitude + speed encode the instruction
|
|
post_Ca_amplitude = NMDA_influx(glutamate_cleft, membrane_potential)
|
|
post_Ca_rise_speed = d(post_Ca_amplitude) / dt
|
|
|
|
if post_Ca_amplitude > Ca_HIGH and post_Ca_rise_speed > fast_threshold:
|
|
activate(CaMKII) // → LTP kinase pathway
|
|
elif post_Ca_amplitude > Ca_LOW and post_Ca_rise_speed < slow_threshold:
|
|
activate(PP1, PP2B) // → LTD phosphatase pathway
|
|
else:
|
|
pass // sub-threshold — no instruction encoded
|
|
|
|
// Astrocyte: local vs global Ca²⁺ = two different alarms
|
|
astro_Ca_local = IP3_release(mGluR5_activation) // activity-proportional
|
|
astro_Ca_global = soma_wave(astro_Ca_local > OVERLOAD_threshold)
|
|
|
|
if astro_Ca_local > local_threshold:
|
|
D_serine_release += gliotransmitter_pulse() // widens NMDA window
|
|
if astro_Ca_global:
|
|
trigger(shockwave_lockdown) // circuit-breaker
|
|
```
|
|
|
|
## layer 2 — mGluRs: was it excessive?
|
|
|
|
```Gen
|
|
function mGluR_overflow_sensor():
|
|
|
|
// Only fires when cleft is genuinely saturated (low-affinity receptors)
|
|
glutamate_spillover = extrasynaptic_diffusion(glutamate_cleft)
|
|
|
|
if glutamate_spillover > spillover_threshold:
|
|
|
|
// Presynapse arm: Gi → brake
|
|
mGluR2_3_activation = True
|
|
cAMP_level -= Gi_inhibition(adenylyl_cyclase) // suppress PKA locally
|
|
vesicle_release_prob -= VGCC_suppression() // autoinhibitory brake
|
|
|
|
// Astrocyte arm: Gq → amplify (push-pull)
|
|
mGluR5_activation = True
|
|
astro_Ca_local += IP3_cascade(PLC_activation) // feeds back into layer 1
|
|
D_serine_release += proportional_to(astro_Ca_local)
|
|
|
|
// Net: same overflow signal brakes pre, amplifies post-learning window
|
|
return (mGluR2_3_activation, mGluR5_activation)
|
|
```
|
|
|
|
## layer 3 — cAMP/PKA: was it worth saving?
|
|
|
|
```Gen
|
|
function PKA_context_gate():
|
|
|
|
// Neuromodulators set the gate via Gs protein
|
|
if dopamine_level > D1_threshold or norepinephrine_level > β_threshold:
|
|
cAMP_level += Gs_activation(adenylyl_cyclase)
|
|
PKA_activity = proportional_to(cAMP_level)
|
|
|
|
// Target 1: prime AMPA insertion
|
|
phosphorylate(GluA1, site=Ser845)
|
|
GluA1_Ser845_primed = True // lowers threshold for CaMKII to anchor receptors
|
|
|
|
// Target 2: silence the forgetting machinery
|
|
phosphorylate(DARPP32)
|
|
DARPP32_phospho = True // inhibits PP1 → LTD pathway blocked
|
|
|
|
// Target 3: enable structural gene expression
|
|
translocate(PKA → nucleus)
|
|
phosphorylate(CREB)
|
|
CREB_active = True // new receptors, cytoskeleton, scaffolding
|
|
```
|
|
|
|
## hierarchical filter — commit decision
|
|
|
|
```Gen
|
|
function commit_to_structural_change():
|
|
|
|
// All three layers must align
|
|
event_detected = post_Ca_amplitude > Ca_HIGH // layer 1: did something happen?
|
|
overflow_sensed = mGluR5_activation == True // layer 2: was it excessive?
|
|
context_validated = DARPP32_phospho and GluA1_Ser845_primed // layer 3: worth saving?
|
|
|
|
if event_detected and overflow_sensed and context_validated:
|
|
activate(CaMKII) // Ca²⁺ signal now gets converted
|
|
AMPA_count += receptor_insertion(CaMKII, GluA1_Ser845_primed)
|
|
active_zone_size += structural_expansion(CREB_active)
|
|
ECM_integrity += astrocyte_sealing(astro_Ca_local)
|
|
return "potentiated"
|
|
|
|
elif event_detected and not context_validated:
|
|
return "temporary facilitation only" // Ca²⁺ rose but no save signal
|
|
|
|
elif not event_detected and overflow_sensed:
|
|
activate(PP1) // phosphatase wins — LTD
|
|
AMPA_count -= receptor_internalization(PP1)
|
|
return "depressed"
|
|
|
|
else:
|
|
return "baseline — no change"
|
|
```
|
|
|
|
## Conclusion
|
|
|
|
The key architectural decision in this pseudocode is the separation into three explicit layers that feed into a single commit_to_structural_change function. Each layer answers one question independently before the final AND-gate runs — Ca²⁺ detects the event, mGluRs assess its magnitude, and cAMP/PKA validates its context. Notice also that mGluR layer has a push-pull side effect that feeds back into the Ca²⁺ layer (astro_Ca_local is updated by mGluR5_activation), making the system not a strict pipeline but a loop — the overflow sensor actively reshapes what the event recorder sees next.
|
|
|
|
## Neuromodulators
|
|
|
|
These are produced by small, anatomically concentrated nuclei that broadcast widely across the brain:
|
|
|
|
dopamine_level // "save button" — validates LTP
|
|
norepinephrine_level // arousal / signal-to-noise gain
|
|
acetylcholine_level // attention — lowers LTP threshold
|
|
|
|
### Dopamine
|
|
|
|
Dopamine is produced primarily by neurons in the Substantia Nigra pars compacta (projecting to the striatum, relevant for motor learning and habit formation) and the Ventral Tegmental Area (VTA) (projecting to the prefrontal cortex and limbic system via the mesolimbic and mesocortical pathways, relevant for reward, motivation, and the "save button" function in your model).
|
|
|
|
### Norepinephrine
|
|
Norepinephrine is produced almost exclusively by the Locus Coeruleus, a tiny nucleus in the brainstem pons. Despite its small size it projects diffusely across virtually the entire brain — cortex, hippocampus, cerebellum, spinal cord. It's essentially the brain's arousal and signal-to-noise broadcaster, firing tonically at low rates during calm wakefulness and phasically during novel or stressful events.
|
|
|
|
### Acetylcholine
|
|
Acetylcholine has two main sources: the basal forebrain nuclei (including the nucleus basalis of Meynert) projecting to the cortex and hippocampus — relevant for attention and learning gating — and the medial septum projecting specifically to the hippocampus, where it strongly modulates theta rhythms and memory encoding.
|
|
|
|
What's striking in the context of your model is that all three systems share the same architectural logic: a tiny, localized cell population broadcasts a global contextual signal that shifts the operational threshold of millions of synapses simultaneously — none of them carrying specific content, all of them modulating how content gets written.
|