From 755f558a17a7ba18330f00fb32532d3744cc299c Mon Sep 17 00:00:00 2001 From: ocrampal Date: Thu, 11 Jun 2026 15:37:33 +0200 Subject: [PATCH] v6 --- .../2026-06-11-tripartite_synapse_v5.md | 38 + .../2026-06-11-tripartite_synapse_v6.md | 931 ++++++++++++++++++ 2 files changed, 969 insertions(+) create mode 100644 elements/neuron/appunti/2026-06-11-tripartite_synapse_v6.md diff --git a/elements/neuron/appunti/2026-06-11-tripartite_synapse_v5.md b/elements/neuron/appunti/2026-06-11-tripartite_synapse_v5.md index eae647a..2e2ea72 100644 --- a/elements/neuron/appunti/2026-06-11-tripartite_synapse_v5.md +++ b/elements/neuron/appunti/2026-06-11-tripartite_synapse_v5.md @@ -1085,3 +1085,41 @@ RECOVERY FLOWS (LTD → returns material to pools): pre LTD → AZ proteins → pre_material (axonal pool) astro LTD → ECM fragments → astro_material (partial, recycling_fraction) ``` + +# Flows + +## Energy flow + +``` +VASCULAR SUPPLY + → ASTROCYTE CELL BODY + glucose → lactate (glycolysis) + → astro_budget (local ATP for clearance, D-serine, ECM, process motility) + → lactate exported to: + → pre_budget (ATP for VGCC, vesicle fusion, VATPase) + → post_budget (ATP for NaK pump, AMPA trafficking, actin) + → dend_budget (ATP for bAP propagation, local translation) + + → SOMA + soma has own mitochondria — partly self-fueled + soma_budget (ATP for AP generation, CREB, protein synthesis, shipping) + → dend_budget top-up (organelle delivery) + → axon_budget top-up (transport machinery) +``` + +## Material flow + +``` +SOMA + protein synthesis (CREB-driven, peaks in NIGHT) + → soma_material (receptors, scaffold proteins, organelles, mRNA) + → dend_material (branch receives proteins + mRNA from soma) + → post_material (spine receives receptors + actin from branch) + → axon_material (boutons receive AZ proteins + VGCCs from soma via axon) + → pre_material (bouton active zone proteins) + +ASTROSYNAPSE + ECM proteins synthesized in astrocyte cell body + → astro_material (Glypicans, Thrombospondins, serine for D-serine) + → cleft environment (ECM sealing, D-serine availability) +``` diff --git a/elements/neuron/appunti/2026-06-11-tripartite_synapse_v6.md b/elements/neuron/appunti/2026-06-11-tripartite_synapse_v6.md new file mode 100644 index 0000000..5003178 --- /dev/null +++ b/elements/neuron/appunti/2026-06-11-tripartite_synapse_v6.md @@ -0,0 +1,931 @@ +# Tripartite Synapse — Pseudocode v6 +Naming convention: + DAY: {component}_budget = combined fast energy + fast consumable materials + NIGHT: {component}_energy = ATP for structural assembly + {component}_material = slow structural proteins (recoverable after LTD) + +## Part 1 — Conventions + +``` +SCOPE = { DAY, NIGHT } +CONTEXT = { AP, NOT_AP, bAP, NOT_bAP, CONTINUOUS } + +Variable types: + FIXED = externally imposed — does not change during simulation + VAR = changes dynamically + FAST_TRACE = accumulates and decays within DAY — never reaches NIGHT + role: biases next behavior within same context + TAG = set during DAY, decays slowly, survives to NIGHT + POST only: CANDIDATE (DAY) → STABLE (DAY) → commit (NIGHT) + BUDGET = DAY only: combined fast energy + fast consumable materials + one variable per component + replenished continuously during DAY + ENERGY = NIGHT only: ATP cost of structural assembly + replenished overnight + NOT recoverable after LTD + MATERIAL = NIGHT only: slow structural proteins + replenished by CREB synthesis + transport (hours–days) + RECOVERABLE after LTD — returns to shared pools + STRUCTURE = slow architectural variable + READ during DAY, WRITTEN only in NIGHT +``` + +## Part 2 — Fixed Parameters + +``` +// Thresholds +FIXED Ca_TAG_threshold // Ca²⁺ sufficient to set post CANDIDATE tag +FIXED Ca_HIGH // LTP-driving Ca²⁺ amplitude +FIXED Ca_LOW // LTD-driving Ca²⁺ amplitude +FIXED spillover_threshold // cleft saturation for mGluR activation +FIXED eligibility_threshold // minimum fast_trace to be taggable +FIXED dopamine_threshold // minimum dopamine for tag stabilization +FIXED tagging_threshold // minimum possible_tagging for tag accumulation +FIXED tag_expiry_threshold // minimum tag to survive to NIGHT commit +FIXED homeostatic_ceiling // max soma firing before global downscale +FIXED disuse_threshold // silence duration before passive depotentiation +FIXED recycling_fraction // fraction of material recovered after LTD + +// Organism-level signals +FIXED dopamine_level // VTA broadcast — reward/save signal +FIXED NE_level // locus coeruleus — arousal/gain +FIXED ACh_level // basal forebrain — attention/threshold + +// Physical constraints +FIXED vascular_glucose_supply // hard energy ceiling — astrocyte root +FIXED branch_geometry // dendritic topology — affects bAP decay +FIXED Ca_cooperativity_n // Hill coefficient for Ca²⁺-driven NT release +FIXED Ca_half_max_K // half-maximal Ca²⁺ for NT release +``` + +## Part 3 — DAY Budget Declarations + +``` +// One budget variable per component — covers fast energy AND fast consumables +// Replenished continuously. Consumed by all DAY behaviors. + +VAR astro_budget + // SOURCE: vascular_glucose_supply → glycolysis (ROOT of all synaptic energy) + // COVERS: ATP for EAAT glutamate clearance + // serine → D-serine synthesis (serine racemase running cost) + // lactate production and export to all neuronal components + // fast process motility adjustments + // (combines: astro_ATP + serine_precursor_fast_pool + EAAT_running_cost) + +VAR astro_lactate + // Fuel exported by astrocyte → feeds pre, post, dend, axon budgets + // = min(glycolysis(vascular_glucose_supply), astro_budget × export_fraction) + // Hard cap: vascular_glucose_supply (FIXED) + +VAR pre_budget + // SOURCE: astro_lactate × pre_fraction (primary) + // COVERS: ATP for VGCC opening + // vesicle fusion (SNARE-mediated) + // VATPase refill of vesicles + // fast vesicle membrane lipid turnover + // synaptotagmin recycling + // (combines: bouton_ATP + fast_vesicle_consumables) + +VAR post_budget + // SOURCE: astro_lactate × post_fraction (primary) + // COVERS: ATP for NaK pump membrane reset + // NMDA current handling + // AMPA receptor lateral diffusion + rapid recycling + // actin monomers for transient spine changes + // PKA phosphorylation (minor) + // (combines: spine_ATP + fast_actin_pool + receptor_recycling_lipids) + +VAR dend_budget + // SOURCE: astro_lactate × dend_fraction (primary) + // soma organelle delivery (minor) + // COVERS: ATP for bAP propagation along branch + // local mRNA translation (ribosome running cost) + // fast protein + organelle transport to spines + // branch Ca²⁺ handling (SERCA pump) + // mRNA consumed by local translation + // (combines: dend_ATP + fast_mRNA_consumables + local_translation_running_cost) + +VAR soma_budget + // SOURCE: own mitochondria (self-fueled — independent of astrocyte) + // COVERS: ATP for AP generation (Na⁺/K⁺ currents + NaK reset) + // CREB phosphorylation (minor) + // nuclear Ca²⁺ handling + // fast signaling molecule turnover + // shipping costs for organelle delivery to branches + axon + // (combines: soma_ATP + fast_signaling_consumables + shipping_running_cost) + +VAR axon_budget + // SOURCE: soma_budget × axon_fraction (primary) + // astro_lactate × axon_astro_fraction (minor, along shaft) + // COVERS: ATP for AP propagation at each node of Ranvier + // kinesin/dynein motor running cost (anterograde transport) + // myelin maintenance fast costs + // (combines: axon_ATP + transport_running_cost) +``` + +## Part 4 — NIGHT Energy and Material Declarations + +``` +// ENERGY: ATP cost of structural assembly — replenished overnight, NOT recoverable +// MATERIAL: slow structural proteins — replenished by CREB + transport, RECOVERABLE + +VAR astro_energy // NIGHT ATP for process retraction, ECM secretion, racemase upregulation + // SOURCE: overnight glycolysis replenishment + // NOT recovered after LTD structural reversal + // (covers: process_motility_ATP + ECM_secretion_ATP) + +VAR astro_material // NIGHT slow structural components + // SOURCE: astrocyte cell body synthesis (overnight) + // CONTAINS: EAAT transporter proteins + // serine racemase enzyme (upregulation) + // ECM proteins (Glypicans, Thrombospondins) + // process cytoskeleton components + // RECOVERABLE: partially after LTD (recycling_fraction) + // (combines: astro_ECM_pool + racemase_upregulation_proteins + // + EAAT_new_proteins + process_cytoskeleton) + +VAR pre_energy // NIGHT ATP for active zone scaffold incorporation + // SOURCE: replenished from soma overnight delivery + // NOT recovered after LTD + // (covers: RIM/Munc13_incorporation_ATP + VGCC_clustering_ATP) + +VAR pre_material // NIGHT slow structural components for bouton + // SOURCE: soma_material via axon transport (anterograde) + // CONTAINS: RIM, Munc13 (AZ scaffold) + // VGCC subunits + // vesicle membrane proteins (structural pool) + // SNARE proteins (structural pool) + // RECOVERABLE: significantly after LTD — proteins return to axonal pool + // (combines: AZ_scaffold_proteins + VGCC_subunit_pool) + +VAR post_energy // NIGHT ATP for CaMKII anchoring, actin polymerization, PSD remodeling + // SOURCE: replenished from soma overnight delivery + // NOT recovered after LTD + // (covers: CaMKII_anchoring_ATP + actin_polymerization_ATP + // + PSD_scaffold_remodeling_ATP) + +VAR post_material // NIGHT slow structural components for spine + // SOURCE: dend_material (branch pool + soma delivery) + // CONTAINS: AMPA receptor subunits (GluA1, GluA2) + // PSD scaffold proteins (PSD-95, SHANK, Homer) + // structural actin pool + // CaMKII (structural pool) + // RECOVERABLE: significantly — internalized receptors return to + // dendritic reserve pool after LTD + // (combines: receptor_reserve + PSD_scaffold_pool + structural_actin) + +VAR dend_energy // NIGHT ATP for mitochondria incorporation, cytoskeletal reinforcement + // SOURCE: soma overnight delivery + // NOT recovered after LTD + // (covers: mitochondria_incorporation_ATP + cytoskeletal_remodeling_ATP) + +VAR dend_material // NIGHT slow structural components for branch + // SOURCE: soma_material (shipped during DAY NOT_AP + NIGHT) + // CONTAINS: Arc mRNA + plasticity mRNAs (structural pool) + // mitochondria (for local energy capacity) + // cytoskeletal proteins (MAP2, tau) + // AMPA subunits in transit to spines + // RECOVERABLE: partially — organelles redistributed after branch pruning + // (combines: dend_mRNA_structural_pool + organelle_store + // + cytoskeletal_proteins) + +VAR soma_energy // NIGHT ATP for ribosome biogenesis, ion channel incorporation + // SOURCE: own mitochondria overnight + // NOT recovered + // (covers: ribosome_biogenesis_ATP + channel_incorporation_ATP) + +VAR soma_material // NIGHT slow structural components produced by soma + // SOURCE: CREB-driven synthesis (peaks in NIGHT) + // CONTAINS: all structural proteins for downstream components + // mRNA transcripts (Arc, BDNF, receptor subunits) + // organelles (mitochondria, ribosomes) + // DISTRIBUTES TO: dend_material + pre_material (via axon) + // (combines: CREB_synthesis_output + organelle_biogenesis_output) + +VAR axon_energy // NIGHT ATP for myelination, microtubule stabilization + // SOURCE: soma overnight delivery + // NOT recovered + // (covers: myelination_ATP + microtubule_stabilization_ATP) + +VAR axon_material // NIGHT slow structural components for axon + // SOURCE: soma_material (motor proteins, myelin components) + // CONTAINS: kinesin/dynein motor proteins (structural pool) + // microtubule components + // myelin maintenance proteins + // RECOVERABLE: partially after axon structural reduction + // (combines: transport_machinery + myelination_proteins) +``` + +## Part 5 — Structural Variables (Written Only in NIGHT) + +``` +VAR pre_structure // active zone capacity + // RRP_capacity ∝ pre_structure + // VGCC_coupling ∝ pre_structure + // refill_ceiling ∝ pre_structure + +VAR post_structure // spine sensitivity capacity + // anchoring_slots ∝ post_structure + // spine_volume ∝ post_structure + // local_reserve_ceiling ∝ post_structure + +VAR dend_structure // branch transmission and supply capacity + // bAP_fidelity ∝ dend_structure × attenuation(position) + // translation_ceiling ∝ dend_structure + // transport_speed ∝ dend_structure + +VAR soma_structure // somatic output and production capacity + // baseline_threshold ∝ 1/soma_structure + // AP_reliability ∝ soma_structure + // synthesis_ceiling ∝ soma_structure + +VAR axon_structure // axonal transmission and transport capacity + // propagation_reliability ∝ axon_structure + // transport_rate_ceiling ∝ axon_structure + +VAR astro_structure // astrosynaptic environmental capacity — SELF-REINFORCING + // perisynaptic_distance ∝ 1/astro_structure + // EAAT_density ∝ astro_structure + // D_serine_tonic ∝ astro_structure + // ECM_integrity ∝ astro_structure +``` + +## Part 6 — Trace Variables + +``` +// Fast traces: DAY only +FAST_TRACE pre_fast_trace // residual Ca²⁺ — τ ≈ 100ms +FAST_TRACE post_fast_trace // spine Ca²⁺ amplitude × rise_speed — τ ≈ tens of ms +FAST_TRACE dend_fast_trace // branch Ca²⁺ integration — τ ≈ 300ms +FAST_TRACE soma_fast_trace // nuclear Ca²⁺ — τ ≈ seconds +FAST_TRACE axon_fast_trace // AP propagation load — τ ≈ seconds +FAST_TRACE astro_fast_trace // perisynaptic Ca²⁺ from mGluR5 — τ ≈ seconds + +// Possible tagging: intermediate — τ ≈ seconds to minutes +VAR pre_possible_tagging +VAR post_possible_tagging // POST: CANDIDATE lifetime +VAR dend_possible_tagging +VAR soma_possible_tagging +VAR axon_possible_tagging +VAR astro_possible_tagging + +// Tags: slow, DAY→NIGHT bridge — τ ≈ hours +TAG pre_tag +TAG post_tag // POST only: CANDIDATE→STABLE before surviving to NIGHT +TAG dend_tag +TAG soma_tag +TAG axon_tag +TAG astro_tag +``` + +# SCOPE: DAY + {component}_budget consumed. Traces written and decay. Structures READ only. + No {component}_energy or {component}_material used in DAY. + +## PRE | CONTEXT: AP + +``` +scope DAY | context AP: + + // Budget gate + if pre_budget < AP_release_cost: + suppress(NT_flux) + exit context + // covers: VGCC_ATP + fusion_ATP + fast_vesicle_consumables + + // Fast trace: residual Ca²⁺ + pre_fast_trace += spike_Ca_influx(input_freq) + pre_fast_trace *= decay(τ = 100ms) + pre_budget -= Ca_handling_cost + + // NT flux: Hill function Ca²⁺ drive × RRP level + Ca_drive = pre_fast_trace^Ca_cooperativity_n / + (Ca_half_max_K^Ca_cooperativity_n + pre_fast_trace^Ca_cooperativity_n) + + if RRP_level > 0: + NT_flux = RRP_level × Ca_drive + glutamate += NT_flux × Δt + RRP_level -= NT_flux × Δt + pre_budget -= NT_flux × vesicle_fusion_cost + // covers: SNARE_ATP + fast_membrane_lipid_turnover + + // RRP refill — rate limited by pre_budget and pre_structure (READ) + RRP_refill = min(refill_rate_constant, pre_structure.refill_ceiling) + RRP_level += RRP_refill × Δt + RRP_level = clamp(RRP_level, 0, pre_structure.RRP_capacity) + pre_budget -= RRP_refill × VATPase_cost + + // Overflow brake: mGluR2/3 → Gi → VGCC suppression + if glutamate > spillover_threshold: + Ca_drive *= mGluR_brake_factor + + // Refuel from astrocyte lactate + pre_budget += astro_lactate × pre_fraction +``` + +## PRE | CONTEXT: NOT_AP + +``` +scope DAY | context NOT_AP: + + // Fast trace decays + pre_fast_trace *= decay(τ = 100ms) + + // RRP refills during silence + RRP_refill = min(refill_rate_constant, pre_structure.refill_ceiling) + RRP_level += RRP_refill × Δt + RRP_level = clamp(RRP_level, 0, pre_structure.RRP_capacity) + pre_budget -= RRP_refill × VATPase_cost + + // Possible tagging: graded, decays + if pre_fast_trace > eligibility_threshold: + pre_possible_tagging += pre_fast_trace + pre_possible_tagging *= decay(τ = seconds) + + // Dopamine decays locally + dopamine_local *= decay(τ = hundreds_of_ms) + + // Tag: local eligibility AND global validation must coincide + if dopamine_local > dopamine_threshold and + pre_possible_tagging > tagging_threshold: + pre_tag += dopamine_local × pre_possible_tagging + pre_tag *= decay(τ = hours) + // pre_budget cost: negligible (PKA is already running from dopamine broadcast) +``` + +## POST | CONTEXT: NOT_bAP + +``` +scope DAY | context NOT_bAP: + + // AMPA current — occupancy of existing slots, gated by post_structure (READ) + AMPA_current = glutamate × post_structure.sensitivity + Vm += AMPA_current + post_budget -= AMPA_current_cost + // covers: NaK_reset_ATP + fast_receptor_recycling_cost + + // NMDA gate: depolarization + D-serine + glutamate coincidence + if Vm > Mg_eject_threshold and + astro_D_serine > D_serine_threshold: + Ca_influx = NMDA_Ca_influx(glutamate) + post_fast_trace += Ca_influx × rise_speed(Ca_influx) + post_budget -= NMDA_current_cost + // covers: NMDA_handling_ATP + fast_actin_transient_cost + + // Fast trace decays + post_fast_trace *= decay(τ = tens_of_ms) + + // CANDIDATE tag: Ca²⁺ crossed tagging threshold — Hebbian anticipation + if post_fast_trace > Ca_TAG_threshold: + post_possible_tagging += post_fast_trace + post_possible_tagging *= decay(τ = minutes) // CANDIDATE lifetime + post_budget -= PKA_phosphorylation_cost // minor — PKA priming of GluA1-Ser845 + + // Refuel + post_budget += astro_lactate × post_fraction +``` + +## POST | CONTEXT: bAP + +``` +scope DAY | context bAP: + + // bAP arrives — strength set by dend_structure (READ) + Vm += bAP_depolarization × dend_structure.bAP_fidelity + post_budget -= bAP_reset_cost + // covers: NaK_reset_ATP for bAP depolarization + + // Coincidence confirmation: bAP finds CANDIDATE already set + if post_possible_tagging > Ca_TAG_threshold: + post_fast_trace += bAP_Ca_boost() + // supralinear Ca²⁺ summation — trace amplified above Ca_HIGH + + // Dopamine decays locally + dopamine_local *= decay(τ = hundreds_of_ms) + + // STABLE tag: CANDIDATE stabilized by dopamine within window + if dopamine_local > dopamine_threshold and + post_possible_tagging > tagging_threshold: + post_tag += dopamine_local × post_possible_tagging + post_tag *= decay(τ = hours) + // post_budget cost: already covered by PKA_phosphorylation_cost in NOT_bAP +``` + +## DEND | CONTEXT: CONTINUOUS + +``` +scope DAY | context CONTINUOUS: + + // Integrate spines upward + branch_Vm = integrate(POST.Vm, all_spines_on_branch) + + // Propagate bAP downward — fidelity from dend_structure (READ) + bAP_local = propagate_bAP(SOMA.AP_fired, + dend_structure.bAP_fidelity, + branch_geometry) + dend_budget -= bAP_propagation_cost + // covers: NaK_reset_ATP along branch + fast_Ca_handling + + // Fast trace: branch Ca²⁺ + dend_fast_trace += bAP_Ca_influx(bAP_local) + dend_fast_trace += spine_Ca_spillover(active_spines) + dend_fast_trace *= decay(τ = 300ms) + dend_budget -= branch_Ca_handling_cost + + // Possible tagging + if dend_fast_trace > eligibility_threshold: + dend_possible_tagging += dend_fast_trace + dend_possible_tagging *= decay(τ = seconds) + + // Dopamine decays + dopamine_local *= decay(τ = hundreds_of_ms) + + // Tag + if dopamine_local > dopamine_threshold and + dend_possible_tagging > tagging_threshold: + dend_tag += dopamine_local × dend_possible_tagging + dend_tag *= decay(τ = hours) + + // Local translation: runs when tag set, gated by dend_budget + // uses fast mRNA consumables from dend_budget + if dend_tag > tag_expiry_threshold and dend_budget > translation_cost: + local_proteins = translate(dend_fast_trace) + dend_budget -= translation_cost + // covers: ribosome_running_cost + fast_mRNA_consumed + // Note: this uses fast mRNA pool (in dend_budget), NOT dend_material + // dend_material mRNA is the slow structural pool consumed only in NIGHT + + // ACh modulates commit threshold + commit_threshold *= (1 / (1 + ACh_level × ACh_gain)) + + dend_budget -= branch_maintenance_cost + dend_budget += astro_lactate × dend_fraction +``` + +## SOMA | CONTEXT: AP + +``` +scope DAY | context AP: + + // Firing threshold: structure baseline × adaptation × neuromodulators × refractory + AP_threshold = soma_structure.baseline_threshold + × (1 + adaptation_factor(soma_fast_trace)) + × neuromod_factor(NE_level, ACh_level) + × refractory_factor(time_since_last_AP) + + if branch_Vm > AP_threshold: + AP_fired = True + soma_budget -= AP_generation_cost + // covers: Na⁺/K⁺ current ATP + NaK_reset + fast_signaling_consumables + + // Fast trace: nuclear Ca²⁺ + soma_fast_trace += nuclear_Ca_influx() + soma_fast_trace *= decay(τ = seconds) + + // Refractory period + refractory_timer = absolute_refractory_duration + + // Possible tagging + if soma_fast_trace > eligibility_threshold: + soma_possible_tagging += soma_fast_trace + soma_possible_tagging *= decay(τ = seconds) + + // Dopamine decays + dopamine_local *= decay(τ = hundreds_of_ms) + + // Tag: nuclear Ca²⁺ AND dopamine coincidence + if dopamine_local > dopamine_threshold and + soma_possible_tagging > tagging_threshold: + soma_tag += dopamine_local × soma_possible_tagging + soma_tag *= decay(τ = hours) + soma_budget -= CREB_phosphorylation_cost + // covers: CREB_phospho_ATP (minor fast cost) + // Note: full CREB-driven synthesis is a NIGHT operation consuming soma_energy +``` + +## SOMA | CONTEXT: NOT_AP + +``` +scope DAY | context NOT_AP: + + // Integrate dendritic inputs + branch_Vm = integrate(DEND.branch_Vm, all_branches) + refractory_timer = max(0, refractory_timer - Δt) + soma_fast_trace *= decay(τ = seconds) + + // Ship to tagged branches — priority by tag magnitude + for branch in branches_ranked_by(dend_tag): + delivery = min(shipping_fraction × soma_budget, + branch_demand(dend_tag)) + dend_budget[branch] += delivery × fuel_fraction + soma_budget -= delivery × shipping_cost + // covers: kinesin_running_cost for fast organelle delivery + // Note: structural protein shipping (soma_material → dend_material) + // happens in NIGHT, not here + + // Ship to axon for bouton running costs + axon_budget += soma_budget × axon_fuel_fraction + soma_budget -= soma_budget × axon_fuel_fraction +``` + +## AXON | CONTEXT: CONTINUOUS + +``` +scope DAY | context CONTINUOUS: + + // AP propagation reliability — set by axon_structure (READ) + propagation_reliability = axon_structure.myelination + × (1 - failure_rate(axon_fast_trace)) + APs_delivered = AP_fired × propagation_reliability + axon_budget -= AP_propagation_cost × APs_delivered + // covers: NaK_reset_ATP at nodes + fast_myelin_maintenance + + // Fast trace: propagation load + axon_fast_trace += APs_delivered + axon_fast_trace *= decay(τ = seconds) + + // Anterograde transport — delivers running supplies to boutons + transport_rate = min(axon_structure.transport_ceiling, + axon_budget × transport_fraction) + pre_budget += transport_rate × Δt // boutons receive running fuel + axon_budget -= transport_cost × transport_rate × Δt + // covers: kinesin_ATPase running cost + // Note: structural pre_material transport (soma_material → pre_material) + // happens in NIGHT, not here + + // Possible tagging + if axon_fast_trace > eligibility_threshold: + axon_possible_tagging += axon_fast_trace + axon_possible_tagging *= decay(τ = seconds) + + // Dopamine decays + dopamine_local *= decay(τ = hundreds_of_ms) + + // Tag + if dopamine_local > dopamine_threshold and + axon_possible_tagging > tagging_threshold: + axon_tag += dopamine_local × axon_possible_tagging + axon_tag *= decay(τ = hours) + + // Refuel + axon_budget += soma_budget × axon_fuel_fraction + axon_budget += astro_lactate × axon_astro_fraction +``` + +## ASTRO | CONTEXT: CONTINUOUS + +``` +scope DAY | context CONTINUOUS: + + // ROOT energy production + astro_budget += glycolysis(vascular_glucose_supply) × Δt + // hard cap: vascular_glucose_supply (FIXED) + // covers: all fast astrocyte operations + lactate export + + // Lactate export to all neuronal components + astro_lactate = min(astro_budget × lactate_export_fraction, + vascular_glucose_supply × max_export_fraction) + astro_budget -= astro_lactate + deliver(astro_lactate → pre_budget × pre_fraction, + post_budget × post_fraction, + dend_budget × dend_fraction, + axon_budget × axon_fraction) + + // Glutamate clearance — rate from astro_structure (READ) + clearance = astro_structure.EAAT_density × glutamate × Δt + glutamate -= clearance + astro_budget -= clearance × EAAT_ATP_cost + // covers: EAAT_cotransport_ATP + NaK_secondary_cost + + // Overflow detection and D-serine release + if glutamate > spillover_threshold: + astro_fast_trace += mGluR5_Ca_influx() + astro_fast_trace *= decay(τ = seconds) + + // D-serine release: budget-limited (serine + synthesis ATP both in budget) + D_serine_released = min(proportional_to(astro_fast_trace), + astro_budget × Ds_fraction) + astro_budget -= D_serine_released × Ds_synthesis_cost + // covers: serine_racemase_ATP + serine_precursor_fast_cost + astro_D_serine += D_serine_released + + // Simultaneous presynaptic brake — cross-compartment, no astro budget cost + Ca_drive_pre *= mGluR_brake_factor + + // Possible tagging + if astro_fast_trace > eligibility_threshold: + astro_possible_tagging += astro_fast_trace + astro_possible_tagging *= decay(τ = seconds) + + // Dopamine decays + dopamine_local *= decay(τ = hundreds_of_ms) + + // Tag + if dopamine_local > dopamine_threshold and + astro_possible_tagging > tagging_threshold: + astro_tag += dopamine_local × astro_possible_tagging + astro_tag *= decay(τ = hours) + + // Tonic D-serine from astro_structure (READ) — baseline supply + astro_D_serine += astro_structure.D_serine_tonic × Δt + astro_budget -= astro_structure.D_serine_tonic × tonic_synthesis_cost + // covers: constitutive_racemase_ATP + baseline_serine_fast_cost + + // Global overload + if astro_fast_trace > OVERLOAD_threshold: + trigger(shockwave_lockdown) +``` + +## Special Case — Shockwave Lockdown + +``` +scope DAY or NIGHT | context OVERLOAD: + + // Emergency — bypasses budget gates + Vm = HYPERPOLARIZED + AMPA_occupancy = mass_internalization() + post_budget -= emergency_reset_cost // DAY: uses post_budget + axon_fast_trace += overdrive_cluster() + astro_budget -= emergency_cost + // Note: in NIGHT, uses post_energy if structural receptors affected +``` + +# SCOPE: NIGHT + {component}_energy and {component}_material used — NOT {component}_budget + Structural variables WRITTEN. Tags evaluated and cleared. + +## Step 1 — Replenish Energy, Material, and Budgets + +``` +scope NIGHT | step 1: + + // Astrocyte: replenishes first — fuels everything + astro_budget += overnight_glycolysis(vascular_glucose_supply) × Δt_night + // covers: fast running costs for next DAY + astro_energy += overnight_astro_synthesis() × Δt_night + // covers: process_motility_ATP + ECM_secretion_ATP for structural work + astro_material += astrocyte_cellbody_synthesis() × Δt_night + // covers: EAAT proteins + racemase upregulation + ECM proteins + process cytoskeleton + + // Soma: self-fueled, replenishes own energy + produces all structural material + soma_budget += overnight_mitochondria_output() × Δt_night + soma_energy += overnight_soma_energy_reserve() × Δt_night + // covers: ribosome_biogenesis_ATP + ion_channel_incorporation_ATP + soma_material += CREB_driven_synthesis(soma_tag) × Δt_night + // peaks based on soma_tag magnitude — this is the production bottleneck + // covers: all structural proteins + mRNA + organelles for downstream components + + // Distribute soma_material to downstream components + dend_material += soma_material × dend_delivery_fraction + // mRNA + plasticity proteins + organelles shipped to branches + axon_material += soma_material × axon_delivery_fraction + // AZ scaffold proteins + VGCC subunits shipped via anterograde transport + soma_material -= (dend_delivery_fraction + axon_delivery_fraction) × soma_material + + // Branch delivers to spines + post_material += dend_material × spine_delivery_fraction + dend_material -= spine_delivery_fraction × dend_material + // AMPA subunits + PSD scaffold proteins delivered to spine reserve + + // Axon delivers to boutons + pre_material += axon_material × bouton_delivery_fraction + axon_material -= bouton_delivery_fraction × axon_material + + // Downstream energy replenishment + pre_energy += overnight_pre_energy_replenishment() + post_energy += overnight_post_energy_replenishment() + dend_energy += overnight_dend_energy_replenishment() + axon_energy += overnight_axon_energy_replenishment() + // all sourced from soma overnight mitochondrial output +``` + +## Step 2 — Structural Commits (Parallel, Independent) + +``` +scope NIGHT | step 2: + + // Coherence bonus: if pre, post, astro all tagged → amplified commit + all_aligned = (pre_tag > tag_expiry_threshold and + post_tag > tag_expiry_threshold and + astro_tag > tag_expiry_threshold) + coherence_bonus = all_aligned ? coherence_factor : 1.0 + + // ── PRE COMMIT ────────────────────────────────────────────────── + if pre_tag > tag_expiry_threshold: + Δpre = min(AZ_expansion_cost, + pre_material, // material gate + pre_energy × pre_fraction) // energy gate + pre_structure += Δpre × coherence_bonus // STRUCTURE WRITTEN + pre_material -= Δpre // material consumed (RECOVERABLE) + pre_energy -= Δpre × assembly_ATP_cost // energy consumed (NOT recoverable) + if Δpre < AZ_expansion_cost: + queue(pre_deficit → next NIGHT) + + // ── POST COMMIT ───────────────────────────────────────────────── + if post_tag > tag_expiry_threshold: + Δpost = min(AMPA_insertion_cost, + post_material, + post_energy × post_fraction) + post_structure += Δpost × coherence_bonus // STRUCTURE WRITTEN + post_material -= Δpost // RECOVERABLE + post_energy -= Δpost × assembly_ATP_cost // NOT recoverable + if Δpost < AMPA_insertion_cost: + queue(post_deficit → next NIGHT) + + // ── DEND COMMIT ───────────────────────────────────────────────── + if dend_tag > tag_expiry_threshold: + Δdend = min(branch_expansion_cost, + dend_material, + dend_energy × dend_fraction) + dend_structure += Δdend × coherence_bonus // STRUCTURE WRITTEN + dend_material -= Δdend // RECOVERABLE (partially) + dend_energy -= Δdend × assembly_ATP_cost + if Δdend < branch_expansion_cost: + queue(dend_deficit → next NIGHT) + + // ── SOMA COMMIT ───────────────────────────────────────────────── + if soma_tag > tag_expiry_threshold: + Δsoma = min(soma_expansion_cost, + soma_material, + soma_energy × soma_fraction) + soma_structure += Δsoma // STRUCTURE WRITTEN + soma_material -= Δsoma // RECOVERABLE (partially) + soma_energy -= Δsoma × assembly_ATP_cost + + // ── AXON COMMIT ───────────────────────────────────────────────── + if axon_tag > tag_expiry_threshold: + Δaxon = min(axon_expansion_cost, + axon_material, + axon_energy × axon_fraction) + axon_structure += Δaxon // STRUCTURE WRITTEN + axon_material -= Δaxon // RECOVERABLE (partially) + axon_energy -= Δaxon × assembly_ATP_cost + if Δaxon < axon_expansion_cost: + queue(axon_deficit → next NIGHT) + + // ── ASTRO COMMIT ──────────────────────────────────────────────── + if astro_tag > tag_expiry_threshold: + Δastro = min(process_retraction_cost, + astro_material, // ECM proteins + process cytoskeleton + astro_energy × astro_fraction) + astro_structure += Δastro × coherence_bonus // STRUCTURE WRITTEN — SELF-REINFORCING + astro_material -= Δastro // RECOVERABLE (recycling_fraction) + astro_energy -= Δastro × assembly_ATP_cost + if Δastro < process_retraction_cost: + queue(astro_deficit → next NIGHT) +``` + +## Step 3 — Passive Depotentiation + +``` +scope NIGHT | step 3: + + // Potentiation draws material first. + // Remaining material distributed as maintenance. + // What cannot be maintained decays passively. + // No active LTD signal required — depotentiation is resource neglect. + + remaining_material = total_material_pool - material_consumed_by_potentiation + maintenance_per_synapse = remaining_material × maintenance_fraction + / total_synapse_count + + for each synapse: + // Structural decay — passive, continuous + pre_structure -= structural_decay_rate × Δt_night + post_structure -= structural_decay_rate × Δt_night + dend_structure -= structural_decay_rate × Δt_night + astro_structure -= structural_decay_rate × Δt_night + + // Maintenance allocation from remaining material + if maintenance_per_synapse >= maintenance_cost: + // full maintenance — structure stable + pre_structure += maintenance_pre + post_structure += maintenance_post + dend_structure += maintenance_dend + astro_structure += maintenance_astro + else: + // partial maintenance — structure drifts downward + // DEPOTENTIATION BY NEGLECT — no signal, no active process + pre_structure += maintenance_per_synapse × pre_fraction + post_structure += maintenance_per_synapse × post_fraction + dend_structure += maintenance_per_synapse × dend_fraction + astro_structure += maintenance_per_synapse × astro_fraction + + // LTD material recovery: returned to pools, enriches remaining material + for each synapse where net_structure_change < 0: + recovered_material = structure_loss × recycling_fraction + pre_material += recovered_material × pre_fraction // AZ proteins recovered + post_material += recovered_material × post_fraction // receptors to reserve + astro_material += recovered_material × astro_fraction × recycling_fraction + // energy is NOT recovered — assembly ATP is gone + // this asymmetry is why material and energy must stay separate in NIGHT +``` + +## Step 4 — Homeostatic Scaling + +``` +scope NIGHT | step 4: + + if soma_tag > homeostatic_ceiling: + scale_factor = homeostatic_ceiling / soma_tag + for each synapse: + post_structure *= scale_factor // STRUCTURE WRITTEN + pre_structure *= scale_factor // STRUCTURE WRITTEN + // scaled-down material returned to pools + soma_material += sum(structure_reduction) × recycling_fraction + // energy NOT recovered +``` + +## Step 5 — Clear All Traces + +``` +scope NIGHT | step 5: + + // Fast traces: confirmed zero (decayed during DAY) + pre_fast_trace = post_fast_trace = dend_fast_trace = 0 + soma_fast_trace = axon_fast_trace = astro_fast_trace = 0 + + // Possible tagging: confirmed zero (decayed during DAY) + pre_possible_tagging = post_possible_tagging = dend_possible_tagging = 0 + soma_possible_tagging = axon_possible_tagging = astro_possible_tagging = 0 + + // Tags: cleared after commit, carried forward if above expiry threshold + if pre_tag < tag_expiry_threshold: pre_tag = 0 + if post_tag < tag_expiry_threshold: post_tag = 0 + if dend_tag < tag_expiry_threshold: dend_tag = 0 + if soma_tag < tag_expiry_threshold: soma_tag = 0 + if axon_tag < tag_expiry_threshold: axon_tag = 0 + if astro_tag < tag_expiry_threshold: astro_tag = 0 +``` + +## Summary: Energy and Material Flow + +``` +DAY — {component}_budget (combined fast energy + fast consumables): + + vascular_glucose_supply (FIXED) + → astro_budget (glycolysis ROOT) + → astro_lactate → pre_budget, post_budget, dend_budget, axon_budget + → soma_budget (own mitochondria — independent root) + → axon_budget (partial) + → dend_budget (partial) + +NIGHT — {component}_energy (structural assembly ATP, NOT recoverable): + + vascular_glucose_supply (FIXED) + → astro_energy (overnight glycolysis) + → soma_energy (overnight mitochondria) → pre_energy, post_energy, + dend_energy, axon_energy + +NIGHT — {component}_material (slow structural proteins, RECOVERABLE): + + soma (CREB synthesis — soma_tag driven) + → soma_material + → dend_material → post_material (spine delivery) + → axon_material → pre_material (bouton delivery) + astrocyte cell body (overnight synthesis) + → astro_material (EAAT + racemase + ECM + process cytoskeleton) + + LTD recovery flows (material only — not energy): + post LTD → post_material (receptors to dendritic reserve) + pre LTD → pre_material (AZ proteins to axonal pool) + astro LTD → astro_material (ECM fragments, recycling_fraction) +``` + +# Flows + +## Energy flow + +``` +VASCULAR SUPPLY + → ASTROCYTE CELL BODY + glucose → lactate (glycolysis) + → astro_budget (local ATP for clearance, D-serine, ECM, process motility) + → lactate exported to: + → pre_budget (ATP for VGCC, vesicle fusion, VATPase) + → post_budget (ATP for NaK pump, AMPA trafficking, actin) + → dend_budget (ATP for bAP propagation, local translation) + + → SOMA + soma has own mitochondria — partly self-fueled + soma_budget (ATP for AP generation, CREB, protein synthesis, shipping) + → dend_budget top-up (organelle delivery) + → axon_budget top-up (transport machinery) +``` + +## Material flow + +``` +SOMA + protein synthesis (CREB-driven, peaks in NIGHT) + → soma_material (receptors, scaffold proteins, organelles, mRNA) + → dend_material (branch receives proteins + mRNA from soma) + → post_material (spine receives receptors + actin from branch) + → axon_material (boutons receive AZ proteins + VGCCs from soma via axon) + → pre_material (bouton active zone proteins) + +ASTROSYNAPSE + ECM proteins synthesized in astrocyte cell body + → astro_material (Glypicans, Thrombospondins, serine for D-serine) + → cleft environment (ECM sealing, D-serine availability) +```