Files
organism/elements/neuron/postsynapse.md
T

9.5 KiB
Raw Blame History

Table of Contents
include_toc
include_toc
true

postsynapse.md

Qui comprendiamo:

  • POSTSYNAPSE: Postsynapse
  • POST-AMPA: AMPA receptors (α-amino-3-hydroxy-5-methyl-4-isoxazolepropionic acid receptors)

Simplified Behaviors:

— ms:

  • NT arrives in cleft → AMPA receptors bind NT (receptor availability constant, no desensitization)
  • V_post rises with AMPA conductance, decays passively each ms
  • bAP arrives → V_post receives additional depolarisation boost
  • NMDA gate checks coincidence: NT_cleft AND V_post both non-zero
  • Mg_block_removal = V_post / (V_post + V_NMDA_half) — sigmoid of V_post
  • _Ca2 enters spine via NMDA: Ca_post += k_NMDA × NT_cleft × Mg_block_removal
  • Ca_post decays slowly each ms (single exponential, no pump detail)
  • Ca_post_history updated every ms (feeds seconds loop)
  • V_post_history updated every ms (retained for reference)

— seconds:

  • Ca_post_history mean computed over past 2 s
  • eCB synthesised when Ca_post_history mean exceeds eCB threshold
  • eCB_level decays when Ca_post_history mean falls below threshold
  • eCB_level written → read by presynapse as retrograde brake on VGCCs
  • Ca_post_history compared to LTP/LTD thresholds → plasticity tag set

— mins:

  • If Plasticity_LTP tagged → AMPA density increases
  • If Plasticity_LTD tagged → AMPA density decreases
  • AMPA density feeds back into receptor_conductance ceiling for next cycle

G expression:


*bAP
    POSTSYNAPSE (ms)
      -- Ca Influx
      CaNDMAEnterMax: ( active: 2x ) accumulator
      CaNDMAEnterMed: ( active: 4x ) accumulator

NOT *bAP:
    POSTSYNAPSE (ms)
      -- Ca Influx
      CaNDMAEnterMedNotBap: ( active: 4x ) accumulator
      CaNDMAEnterLow: ( active: 12x ) accumulator
      -- Ca Clearence
      CaClearance: ( active: 24x ) accumulator
      -- V Influx
      VPostMax: ( active: 4x ) accumulator ->VPost 
      VPostMed: ( active: 8x ) accumulator ->VPost
      VPostLow: ( active: 16x ) accumulator ->VPost
      -- V Clearence
      VPostClearance: ( active: 18x ) accumulator ~->VPost
    POST-AMPA (ms) ~ NT
        -- Na Influx
        NaAMPAEnterMax: ( active: 2x ) accumulator ~NT
        NaAMPAEnterMed: ( active: 4x ) accumulator ~NT
    POST-NA-CLEAR (ms)
        -- Na Clearence
        NaClearanceHigh: ( active: 4x ) accumulator
        NaClearanceLow: ( active: 16x ) accumulator

TunPossible_ctx
    TUN-POST-AMPA (sec)
      CheckTunPostAmpa: ( active: 60x ) contexting
          TryTunUpPostAmpa_ctx
              PossibleUpPostAmpaTun: ( active: 10x ) accumulator
          TryTunDownPostAmpa_ctx
              PossibleDownPostAmpaTun: ( active: 10x ) accumulator

Tubs:

  • Na: Ioni entranti tramite AMPA receptors
  • NT:
  • _Ca2: Ioni entranti tramite NMDA
  • VPost: il voltage che viene sentito in DB
  • eCB:
  • Nox:?

POSTSYNAPSE: Comprehension

POSTSYNAPSE
 type: comprehension

 expansion:
 
  _@PostAmpaAll: TUB [ comprehension: POST-AMPA, full: 10x, active: 5x, empty: 2x ]

  intrication:

    # Scope
    !DAY: INTRICATION [ ref: &ORGANISM.!DAY ]
    !NIGHT: INTRICATION [ ref: &ORGANISM.!NIGHT ]

    # Context  
    *bAP: INTRICATION [ ref: &SOMA.*bAP ]
    *TunPossible: INTRICATION [ ref: &?.*TunPossible ]
    
    # Tub
    _NT: INTRICATION [ ref: &ASTROSYNAPSE._NT ] 
    _Vpost: INTRICATION [ ref: ??._VPost ]
   
  instantiation:

    # Context

    # Tub
    _Ca2: TUB [ full: 60x, active: 30x, empty: 0x ]
    _Na: TUB [ full: 60x, active: 30x, empty: 0x ]
    _Nox: TUB [ full: 100x, active: 20x, empty: 0x ] # Nitric Oxide (NO):  A gas that diffuses freely.
    _eCB: TUB [ full: 100x, active: 20x, empty: 0x ] # Endocannabinoids (e.g., 2-AG)
    
    _posMod: TUB [ full: None, active: ??, empty: 0x)  # riferimento a possible di BEH-PRE
    _actMod: TUB [ full: None, active: ??, empty: ??)  # riferimento a active di BEH-PRE

    # Behaviour
    $: BEHAVIOUR [ behaviour: MAIN_POST ]
    $: BEHAVIOUR [ behaviour: TUN-POST-AMPA ]

MAIN_POST: Behaviour

MAIN_POST
  type: behaviour

  within_scope: !DAY

  snippet:
    *bAP
    @: ACCUMULATOR [ snippet: CaNDMAEnterMax, rf: active 2x ]
    @: ACCUMULATOR [ snippet: CaNDMAEnterMed, rf: active 4x ]

    NOT *bAP
    @: ACCUMULATOR [ snippet: CaNDMAEnterLow, rf: active 12x ]
    @: ACCUMULATOR [ snippet: CaNDMAEnterMedNotBap, rf: active 4x ]
    @: ACCUMULATOR [ snippet: CaClearance, rf: active 24x ]
    @: ACCUMULATOR [ snippet: VPostMax, rf: active 4x ]
    @: ACCUMULATOR [ snippet: VPostMed, rf: active 8x ]
    @: ACCUMULATOR [ snippet: VPostMin, rf: active 16x ]
    @: ACCUMULATOR [ snippet: VPostClearance, rf: active 18x ]
    @: ACCUMULATOR [ snippet: NaClearanceHigh, rf: active 4x ]
    @: ACCUMULATOR [ snippet: NaClearanceLow, rf: active 16x ]

*bAP

post-ltp-ltd.png

CaNDMAEnterMax: ( active: 2x ) accumulator
CaNDMAEnterMax
    type: accumulator

    in_context: *bAP
    
    hypothesis: NOT _Ca2 full AND
               ( _Na fullness OR _Na mediumness )
      action: [ _Ca2 increase ]
      trace: 
CaNDMAEnterMed: ( active: 4x ) accumulator
CaNDMAEnterMed
    type: accumulator

    in_context: *bAP
    
    hypothesis: NOT _Ca2 full AND _Na emptiness
      action: [ _Ca2 increase ]
      trace: 

NOT *bAP

CaNDMAEnterLow: ( active: 12x ) accumulator
CaNDMAEnterLow
    type: accumulator

    in_context: NOT *bAP
    
    hypothesis: NOT _Ca2 full AND _Na mediumness
      action: [ _Ca2 increase ]
      trace: 
CaNDMAEnterMedNotBap: ( active: 4x ) accumulator
CaNDMAEnterMedNotBap
    type: accumulator

    in_context: NOT *bAP
    
    hypothesis: NOT _Ca2 full AND _Na fullness
      action: [ _Ca2 increase ]
      trace: 
CaClearance: ( active: 24x ) accumulator
CaClearance # Low
    type: accumulator

    in_context: NOT *bAP
    
    hypothesis: NOT _Ca2 empty
      action: [ _Ca2 decrease ]
      trace: None
VPostMax: ( active: 4x ) accumulator
VPostMa
    type: accumulator

    in_context: NOT *bAP
    
    hypothesis: _NA fullness
      action: [ _VPost increase ]
      trace: None
VPostMed: ( active: 8x ) accumulator
VPostMed
    type: accumulator

    in_context: NOT *bAP

    hypothesis: _NA mediumness
      action: [ _VPost increase ]
      trace: None
VPostMin: ( active: 16x ) accumulator
VPostMin
    type: accumulator

    in_context: NOT *bAP
    
    hypothesis: _NA emptiness
      action: [ _VPost increase ]
      trace: None

Il VPost clearance lo facciamo qui nel container dove creaiamo anche i VPost, perche' altrimenti, se lo facessimo in DB, perderemmo l'aspetto temporale della contribuzione dei singoli POST.

VPostClearance: ( active: 18x ) accumulator
VPostClearance
    type: accumulator

    in_context: NOT *bAP

    hypothesis: NOT _VPost empty
      action: [ _VPost decrease ]
      trace: None

Il NA clearance lo mettiamo qui come sniplet, perche' gli AMPA creano, e questi pompano fuori. Qui non e' un problema di perdere l'integrazione temporale, perche' gli AMPA sono tutti uguali nel loro behavior. Abbiamo messo gli AMPA come container perche' cosi' possiamo modularne la numerosita'.

NaClearanceHigh: ( active: 4x ) accumulator
NaClearanceHigh
    type: accumulator

    in_context: NOT *bAP 
  
    hypothesis: _Na mediumness OR _Na fullness
      action: [ _Na decrease ]
      trace: None
NaClearanceLow: ( active: 16x ) accumulator
NaClearanceLow
    type: accumulator

    in_context: NOT *bAP 
    
    hypothesis: NOT _Na empty
      action: [ _Na decrease ]
      trace: None

TUN-POST-AMPA: Behaviour

TUN-POST-AMPA
  type: behaviour
  
  activity_scope: !DAY
  
  snippet:
    # *TunPossible
    @: CONTEXTOR [ snippet: CheckTunPostAmpa, rf: active 60x ]

    # *TryTunUpPostAmpa
    @: ACCUMULATOR [ snippet: PossibleUpPostAmpaTun, rf: active 10x ]

    # *TryTunDownPostAmpa
    @: ACCUMULATOR [ snippet: PossibleDownPostAmpaTun, rf: active 10x ]
  
  

TunPossible_ctx

CheckTunPostAmpa: ( active: 60x ) contextor
CheckTunPostAmpa
  type: contextor

  in_context: *TunPossible
    condition:   tbd1
    out_context: *TryTunUpPostAmpa

    condition:   tbd2
    out_context: *TryTunDownPostAmpa
PossibleUpPostAmpaTun: ( active: 10x ) accumulator
PossibleUpPostAmpaTun: ( active: 10x )
  type: accumulator

  in_context: TryTunUpPostAmpa
    hypothesis:  
      action: 
      trace: 
PossibleDownPostAmpaTun: ( active: 10x ) accumulator
PossibleDownPostAmpaTun
  type: accumulator

  in_context: *TryTunDownPostAmpa
    hypothesis:  
      action: 
      trace: 

POST-AMPA: Comprehension

POST-AMPA
  type: comprehension

  expansion:

  intrication:
    # Tub
    _NT: INTRICATION [ ref: &ASTROSYNAPSE._NT ] 
    _Na: INTRICATION [ ref: &POSTSYNAPSE._Na ] 
    
  instantiation:
    $: BEHAVIOUR [ behaviour: POST-AMPA-BHE ]
  

POST-AMPA: Behaviour

POST-AMPA-BHE
  type: behavior

  within_scope: !DAY

  snippet:
    # NOT *bAP
    @: ACCUMULATOR [ snippet: NaAMPAEnterMax, rf: active 2x ]
    @: ACCUMULATOR [ snippet: NaAMPAEnterMed, rf: active 4x ]
    

NOT *bAP

NaAMPAEnterMax: ( active: 2x ) accumulator
NaAMPAEnterMax
  type: accumulator

  in_context: NOT *bAP
    hypothesis: _NT fullness
      action: [ _Na increase ]
      trace: 
NaAMPAEnterMed: ( active: 4x ) accumulator
NaAMPAEnterMed
  type: accumulator

  in_context: NOT *bAP
    hypothesis: _NT mediumness
      action: [ _Na increase ]
      trace: