Receptor Dynamics and Interventions

Introduction

Between any pre- and postsynaptic neurons in a Neuroblox model, there exist a synapse that captures the dynamics of the transmitter release and the receptor on the postsynaptic side. Here we will see how to choose synapses when connecting neurons and how to change synapse parameters to model interventions like drugs that alter receptor dynamics.

Receptors between two neurons

Firstly we make a reciprocal connection between an excitatory and inhibitory neuron. The excitatory projections contains both AMPA and NMDA receptors, whereas the inhibitory one is mediated by a GABA A receptor.

using Neuroblox
using OrdinaryDiffEqVerner
using CairoMakie

@graph g begin
    @nodes begin
        ne = HHNeuronExci(; I_bg=8)
        ni = HHNeuronInhib(; I_bg=0.4)
    end
    @connections begin
        ne => ni , [weight=0.1, synapse=Glu_AMPA_Synapse(name=:ampa)]
        ne => ni , [weight=0.1, synapse=NMDA_Synapse(name=:nmda)]
        ni => ne , [weight=1, synapse=GABA_A_Synapse(name=:gabaa)]
     end
end
GraphSystem(...2 nodes and 3 connections...)

Using the stackplot recipe we plot the voltage of both neurons (blue for excitatory and red for inhibitory).

prob = ODEProblem(g, [], (0, 1000))
sol = solve(prob, Vern7())

stackplot([ne, ni], sol)
Example block output

Now let us change the inhibitory connection to a GABA B receptor. The excitatory connection remains the same.

@graph g begin
    @nodes begin
        ne = HHNeuronExci(; I_bg=8)
        ni = HHNeuronInhib(; I_bg=0.4)
    end
    @connections begin
        ne => ni , [weight=0.1, synapse=Glu_AMPA_Synapse(name=:glu)]
        ne => ni , [weight=0.1, synapse=NMDA_Synapse(name=:nmda)]
        ni => ne , [weight=1, synapse=GABA_B_Synapse(name=:gabab)]
    end
end
prob = ODEProblem(g, [], (0, 1000))
sol = solve(prob, Vern7())

stackplot([ne, ni], sol)
Example block output

Notice the changes in the firing rates of both neurons between the GABA A and GABA B cases. The GABA B receptor operates on a longer timescale for both during activation and deactivation. It takes longer to activate but also exhibits slower closing times compared to GABA A. Therefore the inhibition on the excitatory neuron remains active for longer, thus supressing its firing which in turn suppresses the excitation on the inhibitory neuron.

Changing E-I balance in a cortical microcircuit

Besides choosing the receptor types in neuronal connections, we can also change receptor parameters in circuit models, to simulate the effect of interventions, most commonly drugs. Here we will build a model containing a cortical microcircuit, derived from layers 2-3 of posterior cortex. We will add an ascending input to this microcircuit coming from the brainstem and working as a pacemaker.

@graph g begin
    @nodes begin
        Brainstem = NGNMM_theta(Cₑ=2*26,Cᵢ=1*26, Δₑ=0.5, Δᵢ=0.5, η_0ₑ=10.0, η_0ᵢ=0.0, v_synₑₑ=10.0, v_synₑᵢ=-10.0, v_synᵢₑ=10.0, v_synᵢᵢ=-10.0, alpha_invₑₑ=10.0/26, alpha_invₑᵢ=0.8/26, alpha_invᵢₑ=10.0/26, alpha_invᵢᵢ=0.8/26, kₑₑ=0.0*26, kₑᵢ=0.6*26, kᵢₑ=0.6*26, kᵢᵢ=0*26)
        Layer_2_3 = Cortical(N_wta=20, N_exci=5, density=0.05, weight=1, I_bg_ar=4, G_syn_inhib=4, τ_inhib=70, G_syn_ff_inhib=1.5)
    end
    @connections begin
        Brainstem => Layer_2_3, [weight = 20]
    end
end

prob = ODEProblem(g, [], (0.0, 1000.0))
sol = solve(prob, Vern7());

prob_EI = @experiment prob begin
    @setup begin
        p_I = 1.5 ## GABA factor
        p_E = 3.0 ## AMPA factor
    end
    GABA_A_Synapse, τ₂ -> τ₂ * p_I
    GABA_A_Synapse, G_syn -> G_syn * p_I

    Glu_AMPA_Synapse, τ₂ -> τ₂ * p_E
    Glu_AMPA_Synapse, G_syn -> G_syn * p_E
end
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
Non-trivial mass matrix: false
timespan: (0.0, 1000.0)
u0: 934-element Vector{Float64}:
  -0.6
   0.18
   0.02
   0.21
   0.0
   0.23
   0.26
   0.0
 -65.0
   0.32
   ⋮
   0.0
   0.0
   0.0
   0.0
   0.0
   0.0
   0.0
   0.0
   0.0

After solving the circuit model in its control condition, we design an @experiment above to simulate an intervention on both the GABA A and the AMPA receptors, which are the default receptos in the Cortical blox. This way we change the E-I balance of the circuit by affecting both components.

sol_EI = solve(prob_EI, Vern7());

fig = Figure()
ax = Axis(fig[1,1], title="Cortical LFP")
meanfield!(ax, Layer_2_3, sol; label="Control")
meanfield!(ax, Layer_2_3, sol_EI; color=:red, label="E-I Intervention")
axislegend(position=:rt, framevisible = false)
fig
Example block output

We solved the experiment problem and then used the solution objects to plot the cortical LFP activity for both conditions.


This page was generated using Literate.jl.