932 lines
40 KiB
Markdown
932 lines
40 KiB
Markdown
# 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)
|
||
```
|