CA1 pyramidal neuron network model (Ferguson et al 2015)

 Download zip file 
Help downloading and running models
Accession:185021
From the paper: Figure 4 (1000 cell network) is reproduced by running this brian code. The raster plot and one of the excitatory cell voltage is produced.
Reference:
1 . Ferguson KA, Njap F, Nicola W, Skinner FK, Campbell SA (2015) Examining the limits of cellular adaptation bursting mechanisms in biologically-based excitatory networks of the hippocampus. J Comput Neurosci [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Abstract Izhikevich neuron;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: Brian; Python;
Model Concept(s): Bursting;
Implementer(s):
/
FergusonEtAl2015
readme.txt
PYR_network_model.py
                            
'''
PYR network model
@author: Ferguson et al. (2015) J. Comput. Neurosci.
Figure 4, Network Size 1K 

'''

import brian_no_units
from brian import *

defaultclock.dt = 0.02*ms

seed(3)

####################################################
#intrinsic parameters

# Strongly Adapting PYR cell parameters
C = 115 * pF
vr = -61.8 * mV
vpeak = 22.6 * mV
c = -65.8 * mV
N = 1000
klow = 0.1 * nS/mV
khigh = 3.3  * nS/mV
a = 0.0012 /ms
d = 10 * pA
vt = -57.0 * mV
b = 3 * nS
Ishift= 0 * pA

# Weakly Adapting PYR cell parameters
#C = 300 * pF
#vr = -61.8 * mV
#vpeak = 22.6 * mV
#c = -65.8 * mV
#N = 10000
#klow = 0.5 * nS/mV
#khigh = 3.3  * nS/mV
#a = 0.00008 /ms
#d = 5 * pA
#vt = -57.0 * mV
#b = 3 * nS
#Ishift= -45 * pA


#######################################################
#synaptic parameters
g = 1.425 * nS
alpha = 2000 /second
Beta = 333.33 /second
s_inf =alpha/(alpha+Beta)
tau_s =1/(alpha+Beta)
Ee=-15 *mV

#applied input 
Iapp = 80*pA 
Iapp_std = 15*pA 

##########################################################

#PYR cell eqns
eqs_pyr = """
Iext  : amp
Isyn = g*(v-Ee)*s_sum : amp
s_sum : 1
k=(v<vt)*klow+(v>=vt)*khigh : (siemens/volt)
du/dt = a*(b*(v-vr)-u)            : amp
dv/dt = (k*(v-vr)*(v-vt)+Ishift+Iext-Isyn-u)/C : volt
"""

#define neuron group
PYR = NeuronGroup(N, model=eqs_pyr, reset ="v = c; u += d" , threshold="v>=vpeak")

#set excitatory drive for each neuron
PYR.Iext = randn(len(PYR))*Iapp_std + Iapp

##################################################################################################################
### PYR-PYR Synapses
S=Synapses(PYR,PYR,
       model="""ds0/dt=-(s0-s_inf)/(tau_s) :1
            ds1/dt=-s1*Beta :1
            s_tot=clip(s0,0,s1) :1""",
       pre="""s0=s1; s1=(s_inf*(1-exp(-0.001*second/tau_s))+s1*exp(-0.001*second/tau_s))*exp(0.001*Beta*second)""")

PYR.s_sum=S.s_tot

##############################################################################
#set initial conditions
S.s0=0
S.s1=0
PYR.v = rand(len(PYR))*0.01 -0.065

##############################################################################
### set connectivity to 1%
S[:,:]='(rand()<0.01)'

##########################################################################
#record membrane potential of one cell and spike times of all cells in network
PYR_v = StateMonitor(PYR,'v',record=[0])
PYR_spktimes = SpikeMonitor(PYR, record=True)

###################################################################

#run for x seconds of simulated time
duration = 2 * second  

#include neuron group, synapse group, and monitors in our simulation
net =Network(PYR,S,PYR_v,PYR_spktimes)
net.run(duration)

#####################
# plot PYR membrane potential
figure(1)
plot(PYR_v.times/ms,PYR_v[0]/mV) 
xlabel("Time (ms)")
ylabel("PYR Membrane Potential (mV)")
title('PYR network with gpyr=%.3f nS, Iapp=%d pA, IappSD=%d pA'%(g/nS,Iapp/pA,Iapp_std/pA))

#make raster plot
figure(2)
raster_plot(PYR_spktimes)
xlabel("Time (ms)")
ylabel("PYR Cell Number")
title('gpyr=%.3f nS, Iapp=%d pA, IappSD=%d pA'%(g/nS,Iapp/pA,Iapp_std/pA))

show()


Loading data, please wait...