CA1 pyramidal neuron: synaptic plasticity during theta cycles (Saudargiene et al. 2015)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:157157
This NEURON code implements a microcircuit of CA1 pyramidal neuron and consists of a detailed model of CA1 pyramidal cell and four types of inhibitory interneurons (basket, bistratified, axoaxonic and oriens lacunosum-moleculare cells). Synaptic plasticity during theta cycles at a synapse in a single spine on the stratum radiatum dendrite of the CA1 pyramidal cell is modeled using a phenomenological model of synaptic plasticity (Graupner and Brunel, PNAS 109(20):3991-3996, 2012). The code is adapted from the Poirazi CA1 pyramidal cell (ModelDB accession number 20212) and the Cutsuridis microcircuit model (ModelDB accession number 123815)
Reference:
1 . Saudargiene A, Cobb S, Graham BP (2015) A computational study on plasticity during theta cycles at Schaffer collateral synapses on CA1 pyramidal cells in the hippocampus. Hippocampus 25:208-18 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Synapse; Dendrite;
Brain Region(s)/Organism:
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hippocampus CA1 basket cell; Hippocampus CA1 bistratified cell; Hippocampus CA1 axo-axonic cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Long-term Synaptic Plasticity; STDP;
Implementer(s): Saudargiene, Ausra [ausra.saudargiene at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell;
/
SaudargieneEtAl2015
readme.html
ANsyn.mod *
bgka.mod *
bistableGB_DOWNUP.mod
burststim2.mod *
cad.mod
cadiffus.mod *
cagk.mod *
cal.mod *
calH.mod *
car.mod *
cat.mod *
ccanl.mod *
d3.mod *
gabaa.mod *
gabab.mod *
glutamate.mod *
gskch.mod *
h.mod
hha_old.mod *
hha2.mod *
hNa.mod *
IA.mod
ichan2.mod
Ih.mod *
kadbru.mod
kadist.mod *
kapbru.mod
kaprox.mod *
Kaxon.mod *
kca.mod *
Kdend.mod *
km.mod *
Ksoma.mod *
LcaMig.mod *
my_exp2syn.mod *
Naaxon.mod *
Nadend.mod *
nap.mod
Nasoma.mod *
nca.mod *
nmda.mod *
nmdaca.mod *
regn_stim.mod *
somacar.mod *
STDPE2Syn.mod *
apical-non-trunk-list.hoc
apical-tip-list.hoc
apical-tip-list-addendum.hoc
apical-trunk-list.hoc
axoaxonic_cell17S.hoc
axon-sec-list.hoc
BasalPath.hoc
basal-paths.hoc
basal-tree-list.hoc
basket_cell17S.hoc
bistratified_cell13S.hoc
burst_cell.hoc
current-balance.hoc *
main.hoc
map-segments-to-3d.hoc *
mod_func.c
mosinit.hoc
ObliquePath.hoc *
oblique-paths.hoc
olm_cell2.hoc
pattsN100S20P5_single.dat
PC.ses
peri-trunk-list.hoc
pyramidalNeuron.hoc
randomLocation.hoc
ranstream.hoc
screenshot.png
soma-list.hoc
stim_cell.hoc *
vector-distance.hoc
                            
// Data from Saraga et al. (2003) paper
// changed morphology and some channel densities (BPG 12-1-09)
//   OLM_Cell

begintemplate OLMCell
public is_art
public init, topol, basic_shape, subsets, geom, biophys, geom_nseg
public pre_list, connect2target

public soma, dend1, dend2, axon
public all

objref pre_list

proc init() {
  	topol()
  	subsets()
  	geom()
  	biophys()
  	geom_nseg()
  	pre_list = new List()
  	synapses()
  
}

create soma, dend1, dend2, axon

proc topol() { local i
  	connect dend1(0), soma(1)
  	connect dend2(0), soma(0)
  	connect axon(0), soma(1)
  	basic_shape()
}

proc basic_shape() {
  	soma {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(15, 0, 0, 1)}
  	dend1 {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(90, 0, 0, 1)}
  	dend2 {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-74, 0, 0, 1)}
  	axon {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(15, 120, 0, 1)}
}

objref all
proc subsets() { local i
  	objref all
  	all = new SectionList()
    	soma all.append()
    	dend1 all.append()
    	dend2 all.append()
    	axon all.append()

}

proc geom() {
  	forsec all {  }
  	soma {  L = 20  diam = 10  }
  	dend1 {  L = 250  diam = 3  }
  	dend2 {  L = 250  diam = 3  }
  	axon {  L = 150  diam = 1.5  }
}

external lambda_f
proc geom_nseg() {
  forsec all { nseg = int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1  }
}

proc biophys() {

	Rm = 20000
	//Rm = 1/5e-05		// original
	
  	forsec all {
  		Ra = 150
    		cm = 1.3
  	}
  	soma {
		insert IA
		gkAbar_IA = 0.0165
		insert Ih
		gkhbar_Ih = 0.0005
//		gkhbar_Ih = 0.001385
		insert Ksoma
		gksoma_Ksoma = 0.0319
		insert Nasoma
		gnasoma_Nasoma = 0.0107
		gl_Nasoma = 1/Rm
		el_Nasoma = -70  	
	}
  
  	dend1 {
		insert IA
    		gkAbar_IA = 0.004
     		//gkAbar_IA = 0.013
		//insert Ih
		//gkhbar_Ih = 0.001385
		insert Kdend
		gkdend_Kdend = 2*0.023
		insert Nadend
		gnadend_Nadend = 2*0.0117
		gl_Nadend = 1/Rm
		el_Nadend = -70
  	}
  
  	dend2 {
		insert IA
    		gkAbar_IA = 0.004
    		//gkAbar_IA = 0.013
		//insert Ih
		//gkhbar_Ih = 0.001385
		insert Kdend
		gkdend_Kdend = 2*0.023
		insert Nadend
		gnadend_Nadend = 2*0.0117
		gl_Nadend = 1/Rm
		el_Nadend = -70
  	}
  
  	axon {
		insert Kaxon
		gkaxon_Kaxon = 0.05104
		insert Naaxon
		gnaaxon_Naaxon = 0.01712
		gl_Naaxon = 1/Rm
		el_Naaxon = -70

      //print "OLM created in olm_cell2.hoc"


  	}
}

obfunc connect2target() { localobj nc //$o1 target point process, optional $o2 returned NetCon
  	soma nc = new NetCon(&v(1), $o1)
  	nc.threshold = -10
  	if (numarg() == 2) { $o2 = nc } // for backward compatibility
  	return nc

      //print "OLM connected to target in olm_cell2.hoc"
}

objref syn_
proc synapses() {
  	/* E0 */   dend2 syn_ = new Exp2Syn(0.5)  pre_list.append(syn_)		// AMPA		PC
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
  	/* E1 */   dend1 syn_ = new Exp2Syn(0.5)  pre_list.append(syn_)		// AMPA		PC
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
  	/* I2 */   soma syn_ = new Exp2Syn(0.5)  pre_list.append(syn_)		// GABA-A	Septum
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I3 */   soma syn_ = new Exp2Syn(0.5)  pre_list.append(syn_)		// GABA-B	Septum
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
}

func is_art() { return 0 }

endtemplate OLMCell