Compare commits
4 Commits
106aaff6c1
...
7e2b1fb607
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e2b1fb607 | |||
| 45e7fafaa5 | |||
| cd374bd8b6 | |||
| 6096202642 |
@@ -6,6 +6,10 @@ include_toc: true
|
|||||||
|
|
||||||
This document compiles the complete, integrated framework of your tripartite synapse model. It translates the biological interactions of the **presynapse**, **postsynapse**, **astrocyte**, and **neuromodulators** into a singular, high-level metaphor of **wave propagation, resonance, and acoustic carving** across multiple time scales.
|
This document compiles the complete, integrated framework of your tripartite synapse model. It translates the biological interactions of the **presynapse**, **postsynapse**, **astrocyte**, and **neuromodulators** into a singular, high-level metaphor of **wave propagation, resonance, and acoustic carving** across multiple time scales.
|
||||||
|
|
||||||
|
## Intro
|
||||||
|
|
||||||
|
The presynapse, postsynapse, and astrocyte each maintain a **default low-energy baseline** when input frequency is within normal range (~1–10 Hz): the presynapse releases vesicles at low probability, the postsynapse stays clamped by the Mg²⁺ block, and the astrocyte simply clears the cleft and ticks over its fuel pipeline. When current input deviates from this baseline — either upward into high-frequency bursts or downward into disuse — the system begins to adapt, but the *direction* of that adaptation depends on **past influence**: if the high-frequency drive is sustained and coincides with a neuromodulatory validation signal (dopamine), the deviation gets permanently encoded as structural expansion; if the drive is transient, only temporary facilitation occurs and the system rebounds; if the signal is chronically weak or mistimed, the astrocyte actively dissolves the existing structure and the synapse contracts back toward silence. In other words, current input sets the *alarm*, but accumulated history — stored in vesicle pool sizes, receptor counts, and ECM integrity — determines whether the response is ignored, temporarily buffered, permanently carved in, or actively erased.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. The Cast of the Acoustic Chamber
|
## 1. The Cast of the Acoustic Chamber
|
||||||
@@ -96,6 +100,170 @@ Operating high-fidelity wave generators and vibrating resonators drains the syst
|
|||||||
---
|
---
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Pseudocode, organized by variable, influence, and time
|
||||||
|
|
||||||
|
## global state variables
|
||||||
|
|
||||||
|
// ─── FAST (ms–s) ─── INTERMEDIATE (s–min) ─── SLOW (h–days) ───
|
||||||
|
|
||||||
|
// Presynaptic
|
||||||
|
vesicle_release_prob // P(0.1–1.0) — baseline 0.2
|
||||||
|
active_zone_size // docking slots — scales launchpad
|
||||||
|
RRP_pool // readily-releasable pool (fast)
|
||||||
|
reserve_pool // chained vesicles in deep storage
|
||||||
|
presynaptic_Ca // [Ca²⁺] at active zone
|
||||||
|
|
||||||
|
// Postsynaptic
|
||||||
|
AMPA_count // surface receptors = sensitivity
|
||||||
|
NMDA_Mg_block // bool — mechanical clamp on/off
|
||||||
|
postsynaptic_Ca // [Ca²⁺] in spine — triggers LTP/LTD
|
||||||
|
membrane_potential // Vm — depolarization state
|
||||||
|
|
||||||
|
// Astrocyte
|
||||||
|
glutamate_clearance_rate // EAAT transporter speed
|
||||||
|
D_serine_release // gliotransmitter — NMDA co-agonist
|
||||||
|
astro_Ca // internal Ca²⁺ wave state
|
||||||
|
ECM_integrity // extracellular matrix density
|
||||||
|
lactate_output // fuel export rate to neurons
|
||||||
|
|
||||||
|
// Neuromodulators (global broadcast)
|
||||||
|
dopamine_level // "save button" — validates LTP
|
||||||
|
norepinephrine_level // arousal / signal-to-noise gain
|
||||||
|
acetylcholine_level // attention — lowers LTP threshold
|
||||||
|
|
||||||
|
## fast time scale — wave propagation (ms → s)
|
||||||
|
|
||||||
|
function fire_action_potential(input_freq):
|
||||||
|
|
||||||
|
// Presynapse: launch wavefront
|
||||||
|
presynaptic_Ca += spike_influx(input_freq)
|
||||||
|
released_vesicles = binomial(RRP_pool, vesicle_release_prob)
|
||||||
|
glutamate_cleft = released_vesicles × quantal_content
|
||||||
|
RRP_pool -= released_vesicles
|
||||||
|
|
||||||
|
// Postsynapse: wavefront strikes resonator
|
||||||
|
AMPA_current = glutamate_cleft × AMPA_count
|
||||||
|
membrane_potential += AMPA_current
|
||||||
|
|
||||||
|
// NMDA gate — needs coincidence (clamp check)
|
||||||
|
if membrane_potential > -40mV and D_serine_release > threshold:
|
||||||
|
NMDA_Mg_block = False // Mg²⁺ ejected — clamp unlocked
|
||||||
|
postsynaptic_Ca += NMDA_influx(glutamate_cleft)
|
||||||
|
|
||||||
|
// Astrocyte: vacuum up trailing echoes
|
||||||
|
glutamate_cleft -= glutamate_clearance_rate × Δt
|
||||||
|
lactate_output += glycolysis_rate(glutamate_clearance_rate)
|
||||||
|
|
||||||
|
// Fuel consumed by post + pre to reset
|
||||||
|
membrane_potential restored by NaK_ATPase(lactate_output)
|
||||||
|
RRP_pool refilled by VATPase_pump(lactate_output)
|
||||||
|
|
||||||
|
## intermediate time scale — temporary tuning (s → min)
|
||||||
|
|
||||||
|
function short_term_plasticity(input_freq):
|
||||||
|
|
||||||
|
// Presynapse: facilitate or depress based on Ca²⁺ history
|
||||||
|
if input_freq > 20Hz: // facilitation
|
||||||
|
vesicle_release_prob *= 1.3 // residual Ca²⁺ primes launchpad
|
||||||
|
mobilize(reserve_pool → RRP_pool) // break storage chains
|
||||||
|
elif input_freq < 5Hz: // depression
|
||||||
|
vesicle_release_prob *= 0.7 // RRP depleted faster than refill
|
||||||
|
|
||||||
|
// Postsynapse: NMDA gate primed if frequency sustained
|
||||||
|
if input_freq >= 50Hz and duration > 1s:
|
||||||
|
NMDA_Mg_block = False // sustained depolarization
|
||||||
|
postsynaptic_Ca accumulates // early-LTP signal rises
|
||||||
|
|
||||||
|
// Astrocyte: sense volume → deploy co-agonist
|
||||||
|
if glutamate_cleft > threshold_mid:
|
||||||
|
D_serine_release += gliotransmitter_pulse() // acoustic stabilizer
|
||||||
|
astro_Ca += IP3_wave()
|
||||||
|
|
||||||
|
// Neuromodulators: shift operational threshold globally
|
||||||
|
LTP_threshold *= gain(1 / (1 + acetylcholine_level))
|
||||||
|
signal_to_noise += norepinephrine_level × β_receptor_gain
|
||||||
|
|
||||||
|
## slow time scale — structural carving (h → weeks)
|
||||||
|
|
||||||
|
function late_LTP_consolidation():
|
||||||
|
|
||||||
|
// Gate: dopamine "save button" must arrive
|
||||||
|
if postsynaptic_Ca > Ca_LTP_threshold and dopamine_level > D1_threshold:
|
||||||
|
|
||||||
|
// Postsynapse: anchor new receptors
|
||||||
|
AMPA_count += receptor_insertion(CaMKII_signal)
|
||||||
|
spine_volume *= 1.5 // spine head enlarges
|
||||||
|
|
||||||
|
// Presynapse: expand active zone, fill launchpad
|
||||||
|
active_zone_size *= 1.4
|
||||||
|
vesicle_release_prob += 0.1 // VGCC clustering beneath AZ
|
||||||
|
|
||||||
|
// Astrocyte: seal the acoustic channel
|
||||||
|
ECM_integrity += secrete(Glypicans, Thrombospondins)
|
||||||
|
retract(perisynaptic_process) // astrocyte walls in closer → insulate
|
||||||
|
glutamate_clearance_rate *= 0.85 // tighter diffusion barrier
|
||||||
|
|
||||||
|
// Late-LTP endpoint: carved channel
|
||||||
|
return synapse_state = "potentiated"
|
||||||
|
|
||||||
|
|
||||||
|
function LTD_active_forgetting():
|
||||||
|
|
||||||
|
// Trigger: low-freq, out-of-sync — discordant leakage only
|
||||||
|
if input_freq ≈ 1Hz and timing == "uncorrelated":
|
||||||
|
// Postsynapse: small Ca²⁺ rise activates phosphatases
|
||||||
|
AMPA_count -= receptor_internalization(PP1_signal)
|
||||||
|
|
||||||
|
// Astrocyte: deploy molecular scissors → dissolve matrix
|
||||||
|
D_serine_release = 0 // cut co-agonist supply
|
||||||
|
ECM_integrity -= secrete(MMPs) // matrix metalloproteinases
|
||||||
|
|
||||||
|
// Presynapse: dismantle launchpad
|
||||||
|
active_zone_size -= docking_slot_removal()
|
||||||
|
vesicle_release_prob *= 0.6
|
||||||
|
sequester(RRP_pool → reserve_pool)
|
||||||
|
|
||||||
|
return synapse_state = "depressed"
|
||||||
|
|
||||||
|
|
||||||
|
function shockwave_lockdown(): // Mode 3 — >100Hz uncoordinated
|
||||||
|
|
||||||
|
// Astrocyte: global Ca²⁺ wave triggers circuit-breaker
|
||||||
|
astro_Ca = GLOBAL_WAVE // soma-level flood
|
||||||
|
release(GABA, ATP) // gel floods postsynapse
|
||||||
|
AMPA_count -= mass_internalization()
|
||||||
|
membrane_potential = HYPERPOLARIZED
|
||||||
|
|
||||||
|
// Presynapse: overdrive clustering to preserve signal
|
||||||
|
cluster(VGCC → beneath_active_zone) // ensures penetration
|
||||||
|
|
||||||
|
## energy supply chain — metabolic gating (continuous)
|
||||||
|
|
||||||
|
function metabolic_loop(Δt):
|
||||||
|
// Astrocyte: glucose → lactate pipeline
|
||||||
|
glucose_uptake = blood_capillary_supply()
|
||||||
|
lactate_output = glycolysis(glucose_uptake, glutamate_clearance_rate)
|
||||||
|
|
||||||
|
// Both neurons absorb lactate → power pumps
|
||||||
|
RRP_pool refill rate ∝ VATPase(lactate_output)
|
||||||
|
membrane_potential reset ∝ NaK_ATPase(lactate_output)
|
||||||
|
|
||||||
|
// Feedback: harder clearance work → faster fuel pump
|
||||||
|
lactate_output *= load_factor(glutamate_clearance_rate)
|
||||||
|
|
||||||
|
|
||||||
|
**State variables** at the top declare every quantity that gets modified — split by which cell "owns" it. These are the nodes that the rest of the code reads and writes.
|
||||||
|
|
||||||
|
**Three time-scale functions** then show how those variables evolve:
|
||||||
|
- `fire_action_potential` is pure fast physics — Ca²⁺ triggers vesicle release, AMPA opens, NMDA unlocks only under coincidence, astrocyte clears the cleft, fuel is consumed.
|
||||||
|
- `short_term_plasticity` runs on top of repeated firing — the presynapse facilitates or depresses based on Ca²⁺ history, the astrocyte drops D-serine when volume is high, and neuromodulators shift the gain coefficient globally.
|
||||||
|
- `late_LTP_consolidation` and `LTD_active_forgetting` are the permanent rewrite layer — they require the dopamine "save button" as an AND-gate, and they modify structural variables (`active_zone_size`, `ECM_integrity`, `AMPA_count`) that persist independently of individual spikes.
|
||||||
|
|
||||||
|
The `shockwave_lockdown` and `metabolic_loop` sit alongside as two special-case routines that override the normal flow — one a circuit-breaker, the other a continuous background process coupling astrocyte workload to fuel delivery.
|
||||||
|
|
||||||
|
---
|
||||||
|
---
|
||||||
|
|
||||||
# Core business of each component
|
# Core business of each component
|
||||||
|
|
||||||
## 1. The Core Businesses of Each Component
|
## 1. The Core Businesses of Each Component
|
||||||
|
|||||||
@@ -0,0 +1,129 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
## signal state variables
|
||||||
|
// ── 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?
|
||||||
|
|
||||||
|
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?
|
||||||
|
|
||||||
|
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?
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
## End
|
||||||
|
|
||||||
|
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.
|
||||||
Reference in New Issue
Block a user