Adding Synapses (Excitatory and Inhibatory) - Staring Help

The basics of how to develop, test, and use models.
Post Reply
nemomortus
Posts: 11
Joined: Fri Jan 08, 2016 11:05 pm

Adding Synapses (Excitatory and Inhibatory) - Staring Help

Post by nemomortus »

Hey guys,

I'm trying to understand how to add excitatory and inhibitory synapses to a simple cell and have been reading a lot of things online. I'm not really sure where to start, and I was wondering if anyone could point me in the right direction? I know in order to add these synapses, you have to use point processes and something about NetCon. Any help like tutorials or papers to read would be appreciated!
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Adding Synapses (Excitatory and Inhibatory) - Staring He

Post by ted »

Suggest you read chapter 9 of The NEURON Book. If you don't have the book, here's an early draft of that chapter
https://www.neuron.yale.edu/ftp/ted/boo ... xedref.pdf
You'll probably also find it interesting to read
Hines, M.L. and Carnevale, N.T.
Translating network models to parallel hardware in NEURON.
J. Neurosci. Methods 169:425-455, 2008
(preprint downloadable from http://www.neuron.yale.edu/neuron/nrnpubs)
and especially to examine the source code for the serial implementations of the ring and all-to-all network models (actual files are downloadable from https://senselab.med.yale.edu/modeldb/, but the printouts are included with the preprint).
nemomortus
Posts: 11
Joined: Fri Jan 08, 2016 11:05 pm

Re: Adding Synapses (Excitatory and Inhibatory) - Staring He

Post by nemomortus »

Thanks for your suggestion Ted! I have been reading and using the AlphaSynapse built in function in NEURON and was wondering a question. Can you put multiple AlphaSynapses in a cell model and have then both fire at different times?

I have used a simple model with soma, dend[2], and an axon. I placed AlphaSynapses on both dend, but when observing the output of the model, both AlphaSynapses does not seem to have an effect - only the last one placed does.

Here is the HOC code:

Code: Select all

load_file("nrngui.hoc")

ndend = 2

create soma, dend[ndend], axon
access soma

soma {
  nseg = 1
  diam = 18.8
  L = 18.8
  Ra = 123.0
  insert hh
  gnabar_hh = 0.25
  gl_hh = .0001666
  el_hh = -60.0
}

dend[0] {
    nseg = 5
    diam = 3.18
    L = 701.9
    Ra = 123
    insert pas
    g_pas = .0001666
    e_pas = -60.0
}

dend[1] {
    nseg = 5
    diam = 2.0
    L = 549.1
    Ra = 123
    insert pas
    g_pas = .0001666
    e_pas = -60.0
}

axon {
	nseg = 50
	diam = 10
	L = 20
	insert hh
}

// Connect things together
connect dend[0](0), soma(0)
connect dend[1](0), soma(1)
connect axon(1), 	soma(0)

dend[0] syn = new AlphaSynapse(0.5)	//places synapse near access point
syn.tau = 0.1				//ms
syn.onset = 100				//ms
syn.gmax = 150				//uohm
syn.e = 15					//mV

dend[1] syn = new AlphaSynapse(0.5)	//places synapse near access point
syn.tau = 0.1				//ms
syn.onset = 150				//ms
syn.gmax = 150				//uohm
syn.e = 15					//mV

tstop = 300

//======================= plot settings ============================
objref gV

gV = new Graph()
gV.size(0,tstop,-80,60)
graphList[0].append(gV)
gV.addvar("soma.v( 0.5 )", 2, 1, 0.8, 0.9, 2)

//----------------//
run()
Image
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Adding Synapses (Excitatory and Inhibatory) - Staring He

Post by ted »

First, a couple of questions.

When developing/debugging make run time short enough fo see the time course of interesting phenomena. Spikes and PSPs last only a few ms. What's the point of a 200 ms run time and waiting 100 ms to deliver an EPSP?

What is a good way to choose the value of nseg? Should nseg be even or odd?
nemomortus wrote:I placed AlphaSynapses on both dend, but when observing the output of the model, both AlphaSynapses does not seem to have an effect - only the last one placed does.

I didn't see a statement that declared syn to be an objref. Did I just miss that? A point process is an instance of an object class. Each point process needs to be referenced by its own objref. hoc treats each new name as a floating point variable unless the name is first declared to be an objref. Time to read the manual/book/one or more of the introductory article about NEURON--see the bibliography page at http://www.neuron.hale.edu. Also browse through the FAQ list--see link on the documentation page.
Post Reply