From 83f4239f3871e2bd2b500128e665ee13a726a2dd Mon Sep 17 00:00:00 2001 From: ocrampal Date: Fri, 5 Jun 2026 12:31:11 +0200 Subject: [PATCH] Update 2026-06-04-modulation-of-future-behavior.md --- ...026-06-04-modulation-of-future-behavior.md | 89 ++++++++++--------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/elements/astrocyte/appunti/2026-06-04-modulation-of-future-behavior.md b/elements/astrocyte/appunti/2026-06-04-modulation-of-future-behavior.md index f9548fd..0e6323c 100644 --- a/elements/astrocyte/appunti/2026-06-04-modulation-of-future-behavior.md +++ b/elements/astrocyte/appunti/2026-06-04-modulation-of-future-behavior.md @@ -56,26 +56,26 @@ If the calcium event occurred but the neuromodulatory save signal did not arrive The astrocyte's perisynaptic wall distance is the variable that makes both outcomes self-reinforcing rather than merely additive. When it moves inward during potentiation, it concentrates glutamate at the cleft, maintains D-serine near the postsynapse, and tightens the presynaptic feedback loop — making future high-frequency events even more likely to cross the threshold. When it moves outward during depression, it dilutes the signal, starves the NMDA gate, and loosens the presynaptic feedback — making future events even less likely to reach threshold. The astrocyte therefore does not simply mirror what the neurons decide: it actively deepens the valley the synapse has already rolled into, in whichever direction that happens to be. -## Pseudocode +# Pseudocode [pseudocode](tripartite_synapse_full_pseudocode.html) -### global state variables -#### ── Fast (ms–s): wave propagation ───────────────────────────── -##### Presynapse +## global state variables +### ── Fast (ms–s): wave propagation ───────────────────────────── +#### Presynapse pre_Ca_residual // leftover Ca²⁺ between spikes — short-term trace vesicle_release_prob // P(0.1–1.0) per docking slot RRP_pool // readily-releasable vesicle pool reserve_pool // chained vesicles in deep storage -##### Postsynapse +#### Postsynapse membrane_potential // Vm — depolarization state NMDA_Mg_block // bool — mechanical clamp on/off post_Ca_amplitude // peak [Ca²⁺] rise in spine post_Ca_rise_speed // d(Ca)/dt — fast=LTP signal, slow=LTD signal -##### Astrocyte +#### Astrocyte glutamate_cleft // [glu] in synaptic cleft glutamate_spillover // extrasynaptic [glu] — saturates mGluRs astro_Ca_local // IP3-triggered local rise near synapse @@ -83,7 +83,7 @@ astro_Ca_global // soma-wide wave — network overload flag D_serine_release // gliotransmitter — NMDA co-agonist pulse lactate_output // fuel export rate to pre and post -#### ── Intermediate (s–min): temporary tuning ──────────────────── +### ── Intermediate (s–min): temporary tuning ──────────────────── mGluR2_3_activation // presynaptic Gi — autoinhibitory brake mGluR5_activation // astrocytic Gq — IP3→Ca²⁺→D-serine cascade cAMP_level // set by dopamine/NE via Gs → adenylyl cyclase @@ -92,7 +92,7 @@ GluA1_Ser845_primed // bool — AMPA insertion threshold lowered by PKA DARPP32_phospho // bool — PP1 (LTD phosphatase) silenced by PKA CREB_active // bool — structural gene expression enabled -#### ── Slow (h–weeks): structural architecture ─────────────────── +### ── Slow (h–weeks): structural architecture ─────────────────── AMPA_count // surface receptors — postsynaptic sensitivity spine_volume // physical size of dendritic spine active_zone_size // docking slot count @@ -103,10 +103,10 @@ ECM_integrity // extracellular matrix density D_serine_tonic_level // baseline co-agonist supply (sustained) glutamate_clearance_rate // EAAT transporter density -#### fast time scale — wave propagation (ms → s) +### fast time scale — wave propagation (ms → s) function fire_action_potential(input_freq): -##### Presynapse: launch wavefront +#### Presynapse: launch wavefront pre_Ca_residual += spike_influx(input_freq) pre_Ca_residual *= decay(τ ≈ 100ms) // fades unless spikes keep arriving vesicle_release_prob *= facilitation(pre_Ca_residual) @@ -114,7 +114,7 @@ released_vesicles = binomial(RRP_pool, vesicle_release_prob) glutamate_cleft = released_vesicles × quantal_content RRP_pool -= released_vesicles -##### Astrocyte: overflow sensing and co-agonist release +#### Astrocyte: overflow sensing and co-agonist release glutamate_spillover = extrasynaptic_diffusion(glutamate_cleft) if glutamate_spillover > spillover_threshold: mGluR5_activation = True // Gq arm → IP3 → Ca²⁺ → D-serine @@ -124,46 +124,46 @@ mGluR2_3_activation = True // Gi arm → brake presynapse cAMP_level -= Gi_inhibition(adenylyl_cyclase) vesicle_release_prob -= VGCC_suppression() // autoinhibitory brake -##### Astrocyte: check for network overload +#### Astrocyte: check for network overload astro_Ca_global = soma_wave(astro_Ca_local > OVERLOAD_threshold) if astro_Ca_global: trigger(shockwave_lockdown) -##### Postsynapse: wavefront strikes resonator +#### Postsynapse: wavefront strikes resonator AMPA_current = glutamate_cleft × AMPA_count membrane_potential += AMPA_current -##### NMDA gate: coincidence check +#### NMDA gate: coincidence check if membrane_potential > -40mV and D_serine_release > threshold: NMDA_Mg_block = False // Mg²⁺ ejected post_Ca_amplitude += NMDA_influx(glutamate_cleft) post_Ca_rise_speed = d(post_Ca_amplitude) / dt -##### Astrocyte: vacuum trailing echoes + fuel pipeline +#### Astrocyte: vacuum trailing echoes + fuel pipeline glutamate_cleft -= glutamate_clearance_rate × Δt lactate_output += glycolysis_rate(glutamate_clearance_rate) membrane_potential restored by NaK_ATPase(lactate_output) RRP_pool refilled by VATPase(lactate_output) -#### intermediate time scale — temporary tuning (s → min) +### intermediate time scale — temporary tuning (s → min) function short_term_plasticity(input_freq, duration): -##### Presynapse: facilitate or depress based on Ca²⁺ history +#### Presynapse: facilitate or depress based on Ca²⁺ history if input_freq > 20Hz: vesicle_release_prob *= 1.3 // residual Ca²⁺ primes launchpad mobilize(reserve_pool → RRP_pool) // break storage chains elif input_freq < 5Hz: vesicle_release_prob *= 0.7 // RRP depleted faster than refill -##### Postsynapse: NMDA gate primed if frequency sustained +#### Postsynapse: NMDA gate primed if frequency sustained if input_freq >= 50Hz and duration > 1s: NMDA_Mg_block = False // sustained depolarization post_Ca_amplitude accumulates // early-LTP signal rises -##### Astrocyte: sustained volume → escalate co-agonist +#### Astrocyte: sustained volume → escalate co-agonist if astro_Ca_local > local_threshold: D_serine_release += gliotransmitter_pulse() // widens NMDA window -##### Neuromodulators: set context gate via Gs protein +#### Neuromodulators: set context gate via Gs protein if dopamine_level > D1_threshold or NE_level > β_threshold: cAMP_level += Gs_activation(adenylyl_cyclase) PKA_activity = proportional_to(cAMP_level) @@ -174,74 +174,74 @@ DARPP32_phospho = True // silences PP1 — blocks LTD translocate(PKA → nucleus) → phosphorylate(CREB) CREB_active = True // enables structural gene expression -##### Acetylcholine: lower LTP threshold globally +#### Acetylcholine: lower LTP threshold globally LTP_threshold *= (1 / (1 + ACh_level × mAChR_gain)) -#### slow time scale — structural commit (h → weeks) +### slow time scale — structural commit (h → weeks) function commit_to_structural_change(): -##### Hierarchical filter: three conditions must align +#### Hierarchical filter: three conditions 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? -##### ── Branch 1: LTP — potentiation ────────────────────────────── +#### ── Branch 1: LTP — potentiation ────────────────────────────── if event_detected and overflow_sensed and context_validated: -###### Postsynapse: anchor receptors, enlarge spine +##### Postsynapse: anchor receptors, enlarge spine activate(CaMKII) AMPA_count += receptor_insertion(CaMKII, GluA1_Ser845_primed) spine_volume *= 1.5 -###### Presynapse: expand launchpad, increase output reliability +##### Presynapse: expand launchpad, increase output reliability active_zone_size *= 1.4 // more docking slots RRP_pool_capacity += pool_expansion(active_zone_size) VGCC_clustering += cluster_beneath_AZ() // tighter Ca²⁺ coupling vesicle_release_prob += 0.1 // driven by VGCC clustering -###### Astrocyte: seal and insulate the channel +##### Astrocyte: seal and insulate the channel perisynaptic_distance -= process_retraction() // walls move IN → tighter wrap ECM_integrity += secrete(Glypicans, Thrombospondins) D_serine_tonic_level += upregulate_synthesis() // sustained NMDA priming glutamate_clearance_rate *= 0.85 // tighter wrap → slower diffusion away return "potentiated" -##### ── Branch 2: temporary only — Ca²⁺ rose, no save signal ───── +#### ── Branch 2: temporary only — Ca²⁺ rose, no save signal ───── elif event_detected and not context_validated: AMPA_count += transient_insertion() // early-LTP only — reverses in minutes vesicle_release_prob += transient_facilitation() -###### No astrocyte structural change +##### No astrocyte structural change return "temporary facilitation only" -##### ── Branch 3: LTD — active forgetting ───────────────────────── +#### ── Branch 3: LTD — active forgetting ───────────────────────── elif event_detected and not overflow_sensed and not context_validated: -###### Postsynapse: internalize receptors, shrink spine +##### Postsynapse: internalize receptors, shrink spine activate(PP1) AMPA_count -= receptor_internalization(PP1) spine_volume *= 0.7 -###### Presynapse: dismantle launchpad +##### Presynapse: dismantle launchpad active_zone_size -= docking_slot_removal() RRP_pool_capacity -= pool_contraction() VGCC_clustering -= scatter_VGCCs() // decouple Ca²⁺ from AZ vesicle_release_prob *= 0.6 -###### Astrocyte: dissolve matrix, pull away, cut support +##### Astrocyte: dissolve matrix, pull away, cut support ECM_integrity -= secrete(MMPs) // molecular scissors D_serine_tonic_level = 0 // co-agonist supply cut perisynaptic_distance += process_extension() // walls move OUT → loose wrap glutamate_clearance_rate *= 1.2 // looser wrap → faster spillover return "depressed" -##### ── Branch 4: baseline ──────────────────────────────────────── +#### ── Branch 4: baseline ──────────────────────────────────────── else: -###### All structural variables unchanged — system holds current state +##### All structural variables unchanged — system holds current state return "baseline — no change" -##### special case — shockwave lockdown (>100Hz uncoordinated) +#### special case — shockwave lockdown (>100Hz uncoordinated) function shockwave_lockdown(): astro_Ca_global = GLOBAL_WAVE // soma-level flood @@ -250,18 +250,19 @@ AMPA_count -= mass_internalization() membrane_potential = HYPERPOLARIZED cluster(VGCC → beneath_active_zone) // ensures signal survives chaos -##### energy supply chain — metabolic gating (continuous) +#### energy supply chain — metabolic gating (continuous) function metabolic_loop(Δt): -###### Astrocyte: glucose → lactate pipeline + +##### Astrocyte: glucose → lactate pipeline glucose_uptake = blood_capillary_supply() lactate_output = glycolysis(glucose_uptake, glutamate_clearance_rate) lactate_output *= load_factor(glutamate_clearance_rate) -###### Pre + post absorb lactate → power their pumps +##### Pre + post absorb lactate → power their pumps RRP_pool refill rate ∝ VATPase(lactate_output) membrane_potential reset ∝ NaK_ATPase(lactate_output) -##### key asymmetry — perisynaptic distance is bidirectional +#### key asymmetry — perisynaptic distance is bidirectional // LTP: astrocyte moves IN → tighter diffusion barrier // → glutamate_clearance_rate ↓ (signal contained, not diluted) // → D_serine_tonic_level ↑ (NMDA gate chronically primed) @@ -274,7 +275,7 @@ membrane_potential reset ∝ NaK_ATPase(lactate_output) // potentiation becomes self-reinforcing; depression becomes self-reinforcing -## Neuromodulators +# Neuromodulators These are produced by small, anatomically concentrated nuclei that broadcast widely across the brain: @@ -282,14 +283,14 @@ dopamine_level // "save button" — validates LTP norepinephrine_level // arousal / signal-to-noise gain acetylcholine_level // attention — lowers LTP threshold -### Dopamine +## 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 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 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.