Playing values into a point process

Moderator: wwlytton

Post Reply
Krishna Chaitanya
Posts: 70
Joined: Wed Jan 18, 2012 12:25 am
Location: University of Pavia

Playing values into a point process

Post by Krishna Chaitanya »

Hi,

I want set of values which are generated in a similar fashion to that of spike generator (Pregen.mod) to be played into a point process. After that my point process should connect to a synapse and activate that cell. I have generated these set of values in {20,-90} fashion to mimic spike generator firing pattern but taken from another model after thresholding.

Now I could play the values into point process using vector.play but I am not able to connect to the synapse of another neuron. It is resulting in segmentation violation error. How can I resolve this?

And also is this the only way to get my desired input pattern into spike generator? Are there alternative better methods?

Thank you.
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Playing values into a point process

Post by ted »

I'm not quite sure what you want to do. If you have a vector of spike times, and you want to activate a synapse at those times, use the VecStim class. VecStim is defined by the code in vecevent.mod, which you'll find in
nrn/share/nrn/examples/nrniv/netcon
if you're a UNIX/Linux/OS X user, or
C:\nrn73\examples\nrniv\netcon
if you're using MSWin.

Copy vecevent.mod to the directory that contains your model's other mod files, then compile it with mknrndll or nrnivmodl (depending on your operating system). Now you can use VecStim just like any other artificial spiking cell. For example, suppose you have a Vector called spt whose elements are the times at which you want the VecStim to generate spike events.

Code: Select all

objref vs
vs = new VecStim()
vs.play(spt)
Now vs will produce spike events at the times contained in the spt Vector, and you can use one or more NetCons to convey those events to whatever targets you like--synaptic mechanisms, or artificial spiking cells, or anything else that is specified by NMODL code with a NET_RECEIVE block that specifies what it should do when an event is delivered to it.

You can do anything you like to fill the spike time vector. Just make sure that you do it before calling run() (right after model setup is a good place for this), and also make sure that the elements in the spike time vector are all positive and in monotonically increasing order.
Post Reply