Files
organism/elements/neuron/appunti/2026-06-11-tripartite_synapse_v5.md
T
2026-06-11 10:25:16 +02:00

1088 lines
50 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tripartite Synapse — Pseudocode v5
# Energy and material flows explicit. Variables aggregated to minimum set.
---
## 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
role: gates structural commit in NIGHT
for POST only: two phases — CANDIDATE (DAY) → STABLE (DAY) → NIGHT
BUDGET = single energy variable per compartment
all costs deducted here
MATERIAL = single structural resource variable per compartment
all material draws and returns here
STRUCTURE = slow architectural variable
READ during DAY, WRITTEN only in NIGHT
```
---
## Part 2 — Fixed Parameters
```
// Thresholds
FIXED Ca_TAG_threshold // Ca²⁺ level 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 threshold for mGluR activation
FIXED eligibility_threshold // minimum fast_trace to be taggable (all components)
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 rate before global downscale
FIXED disuse_threshold // silence duration before passive depotentiation
FIXED recycling_fraction // fraction of material recovered after LTD dismantling
// External signals — organism level
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 (~3-4)
FIXED Ca_half_max_K // half-maximal Ca²⁺ for NT release
```
---
## Part 3 — Energy and Material Declarations
```
// ── ENERGY: one budget per compartment ────────────────────────────────
VAR astro_budget // ROOT energy variable for synaptic operations
// SOURCE: vascular_glucose_supply → glycolysis
// COSTS: glutamate clearance (EAAT transport)
// D-serine synthesis (serine racemase)
// ECM secretion (Glypicans, Thrombospondins)
// process motility (cytoskeletal remodeling)
// lactate production (exported to pre, post, dend)
// (simplifies: astro_ATP_budget + all enzyme running costs)
VAR astro_lactate // fuel exported by astrocyte → feeds pre, post, dend
// = min(glycolysis(vascular_glucose_supply), astro_budget × export_fraction)
// hard cap: vascular_glucose_supply (FIXED)
VAR pre_budget // bouton energy
// SOURCE: astro_lactate (primary) — via perisynaptic delivery
// COSTS: VGCC opening + vesicle fusion + VATPase refill
// active zone maintenance
// (simplifies: bouton_ATP + VATPase_running_cost)
VAR post_budget // spine energy
// SOURCE: astro_lactate (primary) — via perisynaptic delivery
// COSTS: NaK pump membrane reset
// AMPA receptor lateral diffusion + recycling
// actin remodeling for transient spine changes
// NMDA current handling
// (simplifies: spine_ATP + NaK_ATPase_cost + actin_cycling_cost)
VAR dend_budget // branch energy
// SOURCE: astro_lactate (primary) + soma organelle delivery (minor)
// COSTS: bAP propagation along branch
// local mRNA translation
// protein and organelle transport to spines
// branch calcium handling
// (simplifies: dend_mitochondria_ATP + local_translation_cost)
VAR soma_budget // somatic energy
// SOURCE: own mitochondria (self-fueled — not from astrocyte)
// COSTS: AP generation (Na⁺/K⁺ currents)
// CREB transcription
// protein synthesis machinery
// organelle biogenesis
// shipping to dend and axon
// (simplifies: soma_ATP + synthesis_running_cost)
VAR axon_budget // axonal energy
// SOURCE: soma_budget (primary) + astro_lactate along shaft (minor)
// COSTS: AP propagation at each node of Ranvier
// anterograde motor protein transport
// myelin maintenance
// (simplifies: axon_ATP + transport_running_cost)
// ── MATERIAL: one material variable per compartment ───────────────────
VAR astro_material // astrosynaptic structural components
// SOURCE: astrocyte cell body synthesis
// CONTAINS: EAAT transporter proteins
// serine racemase enzyme
// ECM proteins (Glypicans, Thrombospondins)
// process cytoskeleton components
// D-serine precursor (serine)
// COSTS: drawn by DAY D-serine release (serine consumed)
// drawn by NIGHT ECM secretion and process remodeling
// (simplifies: astro_ECM_pool + racemase_cap + EAAT_pool
// + process_extensions + D_serine_precursor)
VAR pre_material // presynaptic bouton structural components
// SOURCE: soma_material via axon transport (anterograde)
// CONTAINS: RIM, Munc13 (AZ scaffold)
// VGCC subunits
// vesicle membrane proteins
// synaptotagmin, SNARE proteins
// COSTS: drawn by NIGHT active zone expansion
// RETURNS: to shared axonal pool after LTD dismantling
// (simplifies: axon_vesicle_protein_pool + AZ_scaffold_proteins)
VAR post_material // postsynaptic spine structural components
// SOURCE: dend_material (branch local pool + soma delivery)
// CONTAINS: AMPA receptor subunits (GluA1, GluA2)
// PSD scaffold proteins (PSD-95, SHANK)
// actin monomers + polymerization machinery
// CaMKII
// COSTS: drawn by NIGHT receptor anchoring + spine enlargement
// RETURNS: to branch pool after LTD internalization
// (simplifies: dend_receptor_reserve + dend_actin_machinery
// + PSD_scaffold_pool)
VAR dend_material // dendritic branch structural and supply components
// SOURCE: soma_material (shipped during DAY NOT_AP + NIGHT)
// CONTAINS: plasticity proteins (Arc, Homer)
// mRNA pool (Arc mRNA, BDNF mRNA)
// AMPA receptor subunits (in transit to spines)
// organelles (mitochondria for local energy)
// COSTS: drawn by local translation (mRNA consumed)
// drawn by spine delivery (post_material replenishment)
// drawn by NIGHT branch structural expansion
// (simplifies: dend_protein_flux + dend_mRNA_pool
// + dend_organelle_store)
VAR soma_material // somatic production output
// SOURCE: CREB-driven synthesis (own ribosomes + nucleus)
// CONTAINS: all structural proteins for downstream compartments
// mRNA transcripts (Arc, BDNF, receptor subunits)
// organelles (mitochondria, ribosomes)
// COSTS: shipped to dend_material during DAY NOT_AP + NIGHT
// shipped to axon for pre_material replenishment
// depleted by soma's own NIGHT structural commit
// (simplifies: soma_protein_synthesis_rate + soma_organelle_pool
// + soma_receptor_synthesis_rate + mRNA_transcription)
VAR axon_material // axonal transport and structural components
// SOURCE: soma_material (motor proteins, myelin components)
// CONTAINS: kinesin/dynein motor proteins
// microtubule components
// myelin maintenance proteins
// COSTS: drawn by NIGHT axon structural expansion
// consumed continuously by anterograde transport
// (simplifies: transport_machinery + myelination_proteins)
```
---
## Part 4 — Structural Variables (Written Only in NIGHT)
```
VAR pre_structure // active zone capacity
// RRP_capacity ∝ pre_structure
// VGCC_coupling ∝ pre_structure
// refill_ceiling ∝ pre_structure
// (simplifies: active_zone_size + VGCC_clustering + RRP_pool_capacity)
VAR post_structure // spine sensitivity capacity
// anchoring_slots ∝ post_structure
// spine_volume ∝ post_structure
// local_reserve ∝ post_structure
// (simplifies: AMPA_count_ceiling + spine_volume + receptor_reserve_ceiling)
VAR dend_structure // branch transmission and supply capacity
// bAP_fidelity ∝ dend_structure × attenuation(position)
// translation_ceiling ∝ dend_structure
// transport_speed ∝ dend_structure
// (simplifies: mitochondria_density + cytoskeletal_integrity
// + mRNA_pool_ceiling)
VAR soma_structure // somatic output and production capacity
// baseline_threshold ∝ 1/soma_structure
// AP_reliability ∝ soma_structure
// synthesis_ceiling ∝ soma_structure
// (simplifies: ion_channel_density + ribosome_density
// + CREB_machinery)
VAR axon_structure // axonal transmission and transport capacity
// propagation_reliability ∝ axon_structure
// transport_rate ∝ axon_structure
// (simplifies: myelination_density + transport_machinery_capacity
// + axonal_mitochondria_density)
VAR astro_structure // astrosynaptic environmental capacity
// perisynaptic_distance ∝ 1/astro_structure
// EAAT_density ∝ astro_structure
// D_serine_tonic ∝ astro_structure
// ECM_integrity ∝ astro_structure
// SELF-REINFORCING in both directions:
// LTP → astro_structure ↑ → signal more contained,
// D-serine tonic ↑ → future LTP easier
// LTD → astro_structure ↓ → signal dilutes,
// D-serine tonic = 0 → future LTD easier
// (simplifies: perisynaptic_distance + ECM_integrity
// + D_serine_tonic_level + EAAT_density)
```
---
## Part 5 — Trace Variables
```
// ── Fast traces: DAY only, decay automatically ────────────────────────
FAST_TRACE pre_fast_trace
// += spike_Ca_influx() on each AP
// *= decay(τ ≈ 100ms)
// role: (1) biases NT flux in next AP context (residual Ca²⁺)
// (2) eligibility condition for pre_possible_tagging
// energy: no direct cost — Ca²⁺ dynamics are passive
// material: no direct cost
FAST_TRACE post_fast_trace
// += NMDA_Ca_influx × rise_speed() in NOT_bAP context
// += bAP_Ca_boost() if CANDIDATE tag confirmed in bAP context
// *= decay(τ ≈ tens of ms)
// role: (1) encodes LTP vs LTD instruction (amplitude × speed)
// (2) eligibility condition for post CANDIDATE tag
// energy cost: post_budget -= NMDA_current_cost
// material: no direct cost
FAST_TRACE dend_fast_trace
// += bAP_Ca_influx() + spine_Ca_spillover()
// *= decay(τ ≈ 300ms)
// role: (1) integrates branch co-activity
// (2) eligibility for dend_possible_tagging
// (3) gates local translation rate when dend_tag set
// energy cost: dend_budget -= branch_Ca_handling_cost
// material: no direct cost
FAST_TRACE soma_fast_trace
// += nuclear_Ca_influx() on each somatic AP
// *= decay(τ ≈ seconds)
// role: (1) adaptation — raises AP_threshold with recent firing
// (2) eligibility condition for soma CREB gate
// energy cost: soma_budget -= AP_generation_cost
// material: no direct cost
FAST_TRACE axon_fast_trace
// += AP_propagation_load(input_freq) on each AP
// *= decay(τ ≈ seconds)
// role: (1) drives propagation failure at branch points under high freq
// (2) eligibility for axon_possible_tagging
// energy cost: axon_budget -= AP_propagation_cost
// material: no direct cost
FAST_TRACE astro_fast_trace
// += mGluR5_Ca_influx() when glutamate > spillover_threshold
// *= decay(τ ≈ seconds)
// role: (1) drives D-serine release proportional to magnitude
// (2) eligibility for astro_possible_tagging
// (3) triggers global lockdown when > OVERLOAD_threshold
// energy cost: astro_budget -= D_serine_synthesis_cost
// material cost: astro_material -= D_serine_precursor_cost
// ── Possible tagging: intermediate, decays over secondsminutes ───────
VAR pre_possible_tagging // += pre_fast_trace when > eligibility_threshold
// *= decay(τ ≈ seconds)
VAR post_possible_tagging // += post_fast_trace when > Ca_TAG_threshold (bAP confirmed)
// *= decay(τ ≈ minutes) — CANDIDATE lifetime
VAR dend_possible_tagging // += dend_fast_trace when > eligibility_threshold
// *= decay(τ ≈ secondsminutes)
VAR soma_possible_tagging // += soma_fast_trace when > eligibility_threshold
// *= decay(τ ≈ secondsminutes)
VAR axon_possible_tagging // += axon_fast_trace when > eligibility_threshold
// *= decay(τ ≈ secondsminutes)
VAR astro_possible_tagging // += astro_fast_trace when > eligibility_threshold
// *= decay(τ ≈ secondsminutes)
// ── Tags: slow, DAY→NIGHT bridge ──────────────────────────────────────
TAG pre_tag // += dopamine × pre_possible_tagging when both > threshold
// *= decay(τ ≈ hours) — survives to NIGHT
// gates: pre_structure expansion in NIGHT
// energy cost: none — tag is a molecular state, not a process
TAG post_tag // TWO-PHASE for POST only:
// CANDIDATE phase:
// set when post_fast_trace > Ca_TAG_threshold AND bAP confirmed
// decays within minutes if dopamine does not arrive
// STABLE phase:
// += dopamine × post_possible_tagging when both > threshold
// *= decay(τ ≈ hours) — survives to NIGHT
// gates: post_structure expansion in NIGHT
// energy cost: post_budget -= PKA_phosphorylation_cost (minor)
// material cost: none
TAG dend_tag // += dopamine × dend_possible_tagging when both > threshold
// *= decay(τ ≈ hours)
// gates: dend_structure expansion + local translation activation in NIGHT
// energy cost: none
TAG soma_tag // += dopamine × soma_possible_tagging when both > threshold
// *= decay(τ ≈ hours)
// gates: soma_structure expansion + protein synthesis peak in NIGHT
// energy cost: soma_budget -= CREB_phosphorylation_cost (minor)
// material cost: none
TAG axon_tag // += dopamine × axon_possible_tagging when both > threshold
// *= decay(τ ≈ hours)
// gates: axon_structure expansion in NIGHT
// energy cost: none
TAG astro_tag // += dopamine × astro_possible_tagging when both > threshold
// *= decay(τ ≈ hours)
// gates: astro_structure expansion (process retraction + ECM sealing) in NIGHT
// energy cost: none
```
---
---
# SCOPE: DAY
Budgets consumed. Fast traces written and decay. Tags set but not cleared.
Structures READ only.
---
## PRE | CONTEXT: AP
```
scope DAY | context AP:
// Energy gate — release requires ATP
if pre_budget < AP_release_cost:
suppress(NT_flux)
exit context
// biological basis: ATP depletion → VGCC cannot open reliably
// Fast trace: residual Ca²⁺ deposit
pre_fast_trace += spike_Ca_influx(input_freq)
pre_fast_trace *= decay(τ = 100ms)
pre_budget -= Ca_handling_cost
// biological basis: Ca²⁺ enters via VGCCs, pumped out by PMCA/NCX
// NT flux: continuous release while RRP has content
// Ca_drive: Hill function — cooperative Ca²⁺ dependence of synaptotagmin
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 // proportional to pool × Ca²⁺
glutamate += NT_flux × Δt // cleft concentration rises
RRP_level -= NT_flux × Δt // pool depletes
pre_budget -= NT_flux × vesicle_fusion_cost // ATP per vesicle equivalent
// biological basis: SNARE-mediated vesicle fusion, each event costs ATP
// RRP refill from reserve — rate limited by pre_budget and pre_structure
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
// biological basis: VATPase pumps refill vesicles with NT, costs ATP
// Overflow brake — mGluR2/3 Gi-mediated autoinhibition
if glutamate > spillover_threshold:
Ca_drive *= mGluR_brake_factor
// biological basis: extrasynaptic glu activates mGluR2/3 → Gi →
// adenylyl cyclase ↓ → cAMP ↓ → VGCC opening ↓
// Refuel from astrocyte lactate
pre_budget += astro_lactate × pre_fraction
// biological basis: lactate → pyruvate → TCA → ATP via bouton mitochondria
```
## PRE | CONTEXT: NOT_AP
```
scope DAY | context NOT_AP:
// Fast trace decays — eligibility window closing
pre_fast_trace *= decay(τ = 100ms)
// RRP refills during silence — STP recovery
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 accumulation while eligible
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)
// biological basis: dopamine reuptake by DAT, enzymatic degradation (MAO, COMT)
// Tag: set only when BOTH local eligibility AND global validation coincide
if dopamine_local > dopamine_threshold and
pre_possible_tagging > tagging_threshold:
pre_tag += dopamine_local × pre_possible_tagging
pre_tag *= decay(τ = hours)
// biological basis: PKA phosphorylation of AZ proteins stabilizes tag
// requires both residual Ca²⁺ eligibility AND dopamine-driven PKA
```
---
## POST | CONTEXT: NOT_bAP
```
scope DAY | context NOT_bAP:
// AMPA current — gated by post_structure (READ)
// Occupancy: transient receptor insertion/removal from existing slots
AMPA_current = glutamate × post_structure.sensitivity
Vm += AMPA_current
post_budget -= AMPA_current_cost
// biological basis: AMPA receptor opening → Na⁺ influx → NaK pump cost
// NMDA gate: three-way coincidence
// (1) sufficient depolarization (Mg²⁺ block ejected)
// (2) D-serine from astrosynapse (co-agonist present)
// (3) glutamate bound
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
// biological basis: NMDA Ca²⁺ influx → CaMKII vs PP1 competition
// fast rise → CaMKII wins → LTP instruction
// slow rise → PP1 wins → LTD instruction
// CANDIDATE tag: set when Ca²⁺ crossed tagging threshold
// This is the Hebbian anticipation — before bAP confirms
if post_fast_trace > Ca_TAG_threshold:
post_possible_tagging += post_fast_trace // graded — higher Ca²⁺ → more contribution
post_possible_tagging *= decay(τ = minutes) // CANDIDATE lifetime — minutes
// biological basis: early CaMKII activation creates labile tag
// decays via phosphatase activity if not stabilized
// Fast trace decays
post_fast_trace *= decay(τ = tens_of_ms)
// Refuel
post_budget += astro_lactate × post_fraction
```
## POST | CONTEXT: bAP
```
scope DAY | context bAP:
// bAP arrives — strength set by dend_structure.bAP_fidelity (READ)
Vm += bAP_depolarization × dend_structure.bAP_fidelity
post_budget -= bAP_reset_cost
// biological basis: bAP Ca²⁺ entry via VDCCs in spine, NaK reset costs ATP
// Coincidence confirmation: bAP finds CANDIDATE already set
if post_possible_tagging > Ca_TAG_threshold:
post_fast_trace += bAP_Ca_boost() // trace amplified above Ca_HIGH
// biological basis: bAP + prior NMDA Ca²⁺ → supralinear Ca²⁺ summation
// this is the Hebbian coincidence — forward + backward signals
// else: bAP arrives but spine was not active — no amplification, no tag
// 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 -= PKA_phosphorylation_cost // minor ATP cost for PKA activity
// biological basis: dopamine → D1R → PKA → GluA1-Ser845 phosphorylation
// PKA also phosphorylates DARPP-32 → inhibits PP1
// stabilizes tag against phosphatase-driven decay
```
---
## DEND | CONTEXT: CONTINUOUS
```
scope DAY | context CONTINUOUS:
// Integrate spines upward toward soma
branch_Vm = integrate(POST.Vm, all_spines_on_branch)
// Propagate bAP downward — fidelity set by dend_structure (READ)
bAP_local = propagate_bAP(SOMA.AP_fired,
dend_structure.bAP_fidelity,
branch_geometry)
dend_budget -= bAP_propagation_cost
// biological basis: bAP propagation requires Na⁺ channel re-activation
// costs ATP via NaK reset along branch length
// Fast trace: branch Ca²⁺ from bAP + spine spillover
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
// biological basis: Ca²⁺ enters via VDCCs along branch,
// SERCA pump re-sequestration costs ATP
// Possible tagging: branch co-activity threshold
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: activated when tag set, gated by dend_budget
if dend_tag > tag_expiry_threshold and dend_budget > translation_cost:
local_proteins = translate(dend_material.mRNA_pool,
dend_fast_trace) // rate ∝ fast trace
dend_material.mRNA_pool -= local_proteins × mRNA_cost
post_material += local_proteins × delivery_fraction
dend_budget -= translation_cost
// biological basis: Arc mRNA + polyribosomes at branch
// fast local protein supply for early structural changes
// no soma wait required
// ACh modulates commit threshold globally
commit_threshold *= (1 / (1 + ACh_level × ACh_gain))
// Branch maintenance cost
dend_budget -= branch_maintenance_cost
dend_budget += astro_lactate × dend_fraction
// material: replenished by soma shipping during NOT_AP
```
---
## SOMA | CONTEXT: AP
```
scope DAY | context AP:
// Integrate — fires when branch inputs cross threshold
// Threshold modulated by fast trace (adaptation) and neuromodulators
AP_threshold = soma_structure.baseline_threshold
× (1 + adaptation_factor(soma_fast_trace)) // rises with recent firing
× neuromod_factor(NE_level, ACh_level) // NE lowers, ACh sharpens
× refractory_factor(time_since_last_AP) // hard block then graded recovery
if branch_Vm > AP_threshold:
AP_fired = True
soma_budget -= AP_generation_cost
// biological basis: Na⁺/K⁺ currents for AP, NaK pump reset
// Fast trace: nuclear Ca²⁺ accumulation
soma_fast_trace += nuclear_Ca_influx()
soma_fast_trace *= decay(τ = seconds)
// biological basis: L-type VGCC → nuclear Ca²⁺ → CaM kinase nuclear activation
// Refractory period
refractory_timer = absolute_refractory_duration // ~2ms hard block
// 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
// biological basis: nuclear Ca²⁺ + PKA → CREB phosphorylation
// requires both activity (Ca²⁺) AND reward (dopamine/PKA)
```
## SOMA | CONTEXT: NOT_AP
```
scope DAY | context NOT_AP:
// Integrate dendritic inputs
branch_Vm = integrate(DEND.branch_Vm, all_branches)
// Refractory timer counts down
refractory_timer = max(0, refractory_timer - Δt)
// Fast trace decays — threshold returning to baseline
soma_fast_trace *= decay(τ = seconds)
// Ship material to tagged branches — priority by tag magnitude
for branch in branches_ranked_by(dend_tag):
delivery = min(shipping_fraction × soma_material,
soma_budget × shipping_cost_fraction)
dend_material[branch] += delivery
soma_material -= delivery
soma_budget -= shipping_cost
// biological basis: kinesin-driven anterograde transport of mRNA + proteins
// tagged branches receive priority allocation
// Ship material to axon for bouton replenishment
axon_delivery = min(axon_shipping_fraction × soma_material,
soma_budget × axon_shipping_cost_fraction)
axon_material += axon_delivery
soma_material -= axon_delivery
soma_budget -= axon_shipping_cost
// biological basis: slow axonal transport — days to reach distal boutons
// Neuromodulator context: PKA broadcast amplifies all tagged component traces
if dopamine_level > dopamine_threshold or NE_level > NE_threshold:
for each component where possible_tagging > tagging_threshold:
tag += dopamine_level × possible_tagging × PKA_amplifier
// biological basis: dopamine → cAMP → PKA → phosphorylates targets
// throughout neuron simultaneously
```
---
## 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))
// biological basis: high axon_fast_trace → Na⁺ channel inactivation at branch points
// → some APs fail to reach distal boutons
// → this is axonal STD (frequency-dependent filtering)
APs_delivered = AP_fired × propagation_reliability
axon_budget -= AP_propagation_cost × APs_delivered
// Fast trace: propagation load
axon_fast_trace += APs_delivered
axon_fast_trace *= decay(τ = seconds)
// Anterograde transport — delivers pre_material to boutons
transport_rate = min(axon_structure.transport_capacity,
axon_budget × transport_fraction)
pre_material += transport_rate × Δt // boutons receive material
axon_material -= transport_rate × Δt // axon pool depletes
axon_budget -= transport_cost × transport_rate × Δt
// biological basis: kinesin moves cargo at ~1μm/s along microtubules
// costs ATP per step (kinesin ATPase)
// 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 from soma budget + local astrocyte
axon_budget += soma_budget × axon_fuel_fraction
axon_budget += astro_lactate × axon_astro_fraction
// biological basis: soma mitochondria supply axon proximally
// local astrocytes supply along shaft distally
```
---
## ASTRO | CONTEXT: CONTINUOUS
```
scope DAY | context CONTINUOUS:
// ROOT energy production: glycolysis from vascular glucose
astro_budget += glycolysis(vascular_glucose_supply) × Δt
// hard cap: vascular_glucose_supply (FIXED) — cannot be exceeded
// biological basis: glucose → lactate via glycolysis in astrocyte cytoplasm
// Lactate export to neuronal compartments
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)
// biological basis: lactate released into ECS → absorbed by MCT2 on neurons
// neurons convert lactate → pyruvate → TCA → ATP
// Glutamate clearance — rate set by astro_structure (READ)
clearance = astro_structure.EAAT_density × glutamate × Δt
glutamate -= clearance
astro_budget -= clearance × EAAT_ATP_cost
// biological basis: EAAT cotransports 3 Na⁺ per glutamate → NaK pump cost
// Overflow detection and D-serine release
if glutamate > spillover_threshold:
astro_fast_trace += mGluR5_Ca_influx()
// biological basis: spillover activates mGluR5 → Gq → PLC → IP3
// → Ca²⁺ release from ER → Ca²⁺-dependent exocytosis
// D-serine release: proportional to fast trace, material + budget limited
D_serine_released = min(proportional_to(astro_fast_trace),
astro_material.D_serine_precursor,
astro_budget × Ds_fraction)
astro_material -= D_serine_released × precursor_cost
astro_budget -= D_serine_released × synthesis_cost
astro_D_serine += D_serine_released
// biological basis: serine racemase converts L-serine → D-serine
// costs ATP, consumes serine from astro_material
// Simultaneous presynaptic brake (cross-compartment, no astro budget cost)
Ca_drive_pre *= mGluR_brake_factor
// biological basis: spillover also activates mGluR2/3 on PRE → Gi →
// suppresses VGCC — brakes release at source
// 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)
astro_fast_trace *= decay(τ = seconds)
// Global overload: circuit breaker
if astro_fast_trace > OVERLOAD_threshold:
trigger(shockwave_lockdown)
// biological basis: global Ca²⁺ wave → GABA + ATP release
// mass AMPA internalization, hyperpolarization
// Tonic D-serine baseline — set by astro_structure (READ)
astro_D_serine += astro_structure.D_serine_tonic × Δt
astro_budget -= astro_structure.D_serine_tonic × tonic_synthesis_cost
astro_material -= astro_structure.D_serine_tonic × tonic_precursor_cost
// biological basis: constitutive racemase activity maintains baseline
// D-serine availability independent of overflow events
```
---
## Special Case — Shockwave Lockdown (any scope)
```
scope DAY or NIGHT | context OVERLOAD:
// Emergency — bypasses budget gates
// Biological basis: global astrocytic Ca²⁺ wave →
// GABA release → hyperpolarization
// ATP release → purinergic inhibition
post_fast_trace = 0
Vm = HYPERPOLARIZED
AMPA_occupancy = mass_internalization() // returned to post_material reserve
post_material += recovered_AMPA
axon_fast_trace += overdrive_cluster() // VGCC clustering beneath AZ
astro_budget -= emergency_cost // large deduction — territory depleted
```
---
---
# SCOPE: NIGHT
Structural variables WRITTEN. Budgets replenished. Tags evaluated and cleared.
---
## Step 1 — Replenish Budgets and Material
```
scope NIGHT | step 1:
// Astrocyte replenishes first — it fuels everything
astro_budget += overnight_glycolysis(vascular_glucose_supply) × Δt_night
astro_material += astrocyte_cellbody_synthesis() × Δt_night
// biological basis: astrocyte protein synthesis overnight
// replenishes EAAT, racemase, ECM proteins, process cytoskeleton
// Soma replenishes from own mitochondria — self-fueled
soma_budget += overnight_mitochondria_output() × Δt_night
// Soma material production peaks in NIGHT — driven by soma_tag magnitude
soma_material += CREB_driven_synthesis(soma_tag) × Δt_night
// biological basis: CREB → Arc, BDNF, GluA1, scaffold proteins
// peaks during slow-wave sleep replay
// Soma ships material to downstream compartments
dend_material += soma_material × dend_delivery_fraction
axon_material += soma_material × axon_delivery_fraction
soma_material -= (dend_delivery_fraction + axon_delivery_fraction) × soma_material
// Downstream budgets refilled from soma and astrocyte
dend_budget += astro_lactate × dend_fraction
+ soma_budget × soma_to_dend_fraction
pre_budget += astro_lactate × pre_fraction
post_budget += astro_lactate × post_fraction
axon_budget += soma_budget × soma_to_axon_fraction
+ astro_lactate × axon_fraction
```
---
## Step 2 — Structural Commits (Parallel, Independent per Compartment)
```
scope NIGHT | step 2:
// Each compartment commits independently based on its own tag
// No global AND gate — coherence emerges from shared DAY events
// COHERENCE BONUS: if all tags SET simultaneously → 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,
pre_budget × pre_structural_fraction)
pre_structure += Δpre × coherence_bonus // STRUCTURE WRITTEN
pre_material -= Δpre // material consumed
pre_budget -= Δpre × structural_ATP_cost
if Δpre < AZ_expansion_cost:
queue(pre_deficit → next NIGHT) // deficit deferred
// biological basis: RIM + Munc13 incorporation → new docking slots
// VGCC clustering → tighter Ca²⁺-release coupling
// LTD: passive decay if maintenance not met (see step 3)
// ── POST COMMIT ─────────────────────────────────────────────────────
if post_tag > tag_expiry_threshold:
Δpost = min(AMPA_insertion_cost,
post_material,
post_budget × post_structural_fraction)
post_structure += Δpost × coherence_bonus // STRUCTURE WRITTEN
post_material -= Δpost // material consumed
post_budget -= Δpost × structural_ATP_cost
if Δpost < AMPA_insertion_cost:
queue(post_deficit → next NIGHT)
// biological basis: CaMKII anchors AMPA receptors into PSD scaffold
// actin polymerization enlarges spine head
// new anchoring slots created — not just slots filled
// ── DEND COMMIT ─────────────────────────────────────────────────────
if dend_tag > tag_expiry_threshold:
Δdend = min(branch_expansion_cost,
dend_material,
dend_budget × dend_structural_fraction)
dend_structure += Δdend × coherence_bonus // STRUCTURE WRITTEN
dend_material -= Δdend
dend_budget -= Δdend × structural_ATP_cost
if Δdend < branch_expansion_cost:
queue(dend_deficit → next NIGHT)
// biological basis: mitochondria incorporation → local ATP ceiling raised
// cytoskeletal reinforcement → better bAP propagation
// mRNA pool expanded → more local translation capacity
// ── SOMA COMMIT ─────────────────────────────────────────────────────
if soma_tag > tag_expiry_threshold:
Δsoma = min(soma_expansion_cost,
soma_material,
soma_budget × soma_structural_fraction)
soma_structure += Δsoma // STRUCTURE WRITTEN
soma_material -= Δsoma
soma_budget -= Δsoma × structural_ATP_cost
// biological basis: ion channel density increase at axon initial segment
// ribosome biogenesis → synthesis ceiling raised
// CREB machinery expansion
// ── AXON COMMIT ─────────────────────────────────────────────────────
if axon_tag > tag_expiry_threshold:
Δaxon = min(axon_expansion_cost,
axon_material,
axon_budget × axon_structural_fraction)
axon_structure += Δaxon // STRUCTURE WRITTEN
axon_material -= Δaxon
axon_budget -= Δaxon × structural_ATP_cost
if Δaxon < axon_expansion_cost:
queue(axon_deficit → next NIGHT)
// biological basis: myelination density increase
// motor protein pool expansion
// microtubule stabilization
// ── ASTRO COMMIT ────────────────────────────────────────────────────
if astro_tag > tag_expiry_threshold:
Δastro = min(process_retraction_cost,
astro_material,
astro_budget × astro_structural_fraction)
astro_structure += Δastro × coherence_bonus // STRUCTURE WRITTEN
astro_material -= Δastro // ECM proteins + cytoskeleton consumed
astro_budget -= Δastro × structural_ATP_cost
if Δastro < process_retraction_cost:
queue(astro_deficit → next NIGHT)
// biological basis: process retraction → perisynaptic_distance ↓
// ECM secretion (Glypicans, Thrombospondins) → cleft sealed
// racemase upregulation → D_serine_tonic ↑
// EAAT density increase → clearance ceiling ↑
// SELF-REINFORCING: astro_structure ↑ → future signals more contained
// → future D-serine higher
// → future LTP easier
```
---
## Step 3 — Passive Depotentiation (Resource Conservation)
```
scope NIGHT | step 3:
// Potentiation is the primary drive.
// Depotentiation is its shadow — a consequence of finite resources.
// Structures decay at a baseline rate.
// Decay is overcome only if maintenance allocation is sufficient.
// Maintenance draws from what remains AFTER potentiation has taken its share.
remaining_material = total_material - material_consumed_by_potentiation
remaining_budget = total_budget - budget_consumed_by_potentiation
maintenance_per_synapse = remaining_material / 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 — overcomes decay if resources available
if maintenance_per_synapse >= maintenance_cost:
pre_structure += maintenance_pre
post_structure += maintenance_post
dend_structure += maintenance_dend
astro_structure += maintenance_astro
// decay fully compensated — structure stable
else:
// maintenance_per_synapse < maintenance_cost
// partial compensation only — structure drifts downward
// THIS IS DEPOTENTIATION BY NEGLECT — no active signal required
// the synapse is not told to weaken
// it simply does not receive enough to stay where it is
pre_structure += maintenance_per_synapse × pre_fraction
post_structure += maintenance_per_synapse × post_fraction
// net: structure slowly declines toward lower baseline
// LTD material recovery: dismantled proteins returned to pools
// This enriches the remaining pool and partially benefits other synapses
for each synapse where net_structure_change < 0:
recovered = structure_loss × recycling_fraction
pre_material += recovered × pre_fraction
post_material += recovered × post_fraction
astro_material += recovered × astro_fraction × recycling_fraction
// biological basis: ubiquitin-proteasome degradation → amino acids recycled
// internalized receptors → endosomal reserve
// dismantled AZ proteins → axonal pool
```
---
## Step 4 — Homeostatic Scaling
```
scope NIGHT | step 4:
// If soma fired too much overall during DAY — global downscale
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
// biological basis: global AMPA downscaling during sleep
// relative differences preserved — absolute excitability restored
// material recovery: scaled-down proteins returned to soma_material
soma_material += sum(structure_reduction) × recycling_fraction
```
---
## Step 5 — Clear All Traces
```
scope NIGHT | step 5:
// FAST_TRACEs: already decayed during DAY — confirm zero
pre_fast_trace = 0
post_fast_trace = 0
dend_fast_trace = 0
soma_fast_trace = 0
axon_fast_trace = 0
astro_fast_trace = 0
// POSSIBLE_TAGGING: decayed during DAY — confirm zero
pre_possible_tagging = 0
post_possible_tagging = 0
dend_possible_tagging = 0
soma_possible_tagging = 0
axon_possible_tagging = 0
astro_possible_tagging = 0
// TAGS: explicitly cleared after commit
// Tags above expiry threshold carry forward to next NIGHT (multi-night consolidation)
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
// Tags above threshold: partial commit ran, deficit queued,
// remaining tag persists to next NIGHT for completion
```
---
## Summary of Energy and Material Relations
```
ENERGY FLOW:
vascular_glucose_supply (FIXED)
→ astro_budget (glycolysis)
→ astro_lactate → pre_budget, post_budget, dend_budget, axon_budget
→ soma_budget (own mitochondria — independent of astrocyte)
→ axon_budget (partial)
→ dend_budget (partial, via organelle delivery)
MATERIAL FLOW:
soma (CREB synthesis)
→ soma_material
→ dend_material (shipping during DAY NOT_AP + NIGHT)
→ post_material (local delivery to spines)
→ axon_material (shipping during DAY NOT_AP + NIGHT)
→ pre_material (anterograde transport to boutons)
astrocyte cell body (local synthesis)
→ astro_material
→ D-serine (consumed in DAY)
→ ECM proteins (consumed in NIGHT)
→ process cytoskeleton (consumed in NIGHT)
RECOVERY FLOWS (LTD → returns material to pools):
post LTD → AMPA receptors → post_material (local reserve)
pre LTD → AZ proteins → pre_material (axonal pool)
astro LTD → ECM fragments → astro_material (partial, recycling_fraction)
```