Importing two different morphologies into same canvas/GUI

Using the graphical user interface to build and exercise models. Includes customizing the GUI by writing a little bit of hoc.
Post Reply
sanjaybioe
Posts: 14
Joined: Sun Apr 24, 2011 11:35 pm

Importing two different morphologies into same canvas/GUI

Post by sanjaybioe » Thu Apr 05, 2012 12:32 am

How do I import two different neuron models (two neurons with two morphologies) thru the GUI and create a connectivity between them?

If I have a template of a model and say there are 4 copies of the neuron created from that template,how can I incorporate slightly different distribution of channels in these 4 neurons? i.e 4 neurons with same morpho but slightly differing distribution of channels. Thereafter the neurons will be synaptically connected to each other.

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

Re: Importing two different morphologies into same canvas/GU

Post by ted » Thu Apr 05, 2012 12:57 pm

sanjaybioe wrote:How do I import two different neuron models (two neurons with two morphologies) thru the GUI and create a connectivity between them?
First, define two different cell classes--one for each morphology. Second, write a program that
creates as many instances of each class as you need
sets up synaptic connections between the instances

The task of defining cell classes is most easily done with the Import3D tool and the CellBuilder (tutorials for each are on the Documentation page at http://www.neuron.yale.edu/). Work on one cell morphology at a time, to create a corresponding cell class. After the specification of the discretization strategy and biophysical properties is complete, save the CellBuilder to a ses file. Use that CellBuilder to create a "top level" model cell (click on its Continuous create button) and perform some modeling experiments to verify that your model cell works properly. After those tests, you are ready to create a template that defines a cell class. You could do this by following these steps:
  • clicking on the CellBuilder's Management button, then clicking on the Classname button and entering an appropriate name for your cell class
  • verifying that it is soma.v(1) that you want to use as the location that is monitored for the occurrence of a spike, and that 10 mV with be the threshold used by NetCons that use the soma as the source; if not, change the location and/or threshold
  • clicking on the "Save hoc code in a file" button and enter the name of the file that the tool will write. This file will contain the template for a cell class that has the morphology and biophysical properties specified in the CellBuilder
Alternatively you could create templates by using your CellBuilders with the Network Builder's tools (tutorials for this are also available from the Documentation page). For each CellBuilder you would
  • load its ses file
  • make sure its "Continuous create" button is "off"
  • click on
    NEURON Main Menu / Build / Network cell / From Cell Builder
    then select the CellBuilder and use the NetReadyCellGUI tool to specify the desired class name and to set up appropriate synapse classes and attach them to the cell
When all NetReadyCellGUI tools are complete, you would start a Network Builder and then create a toy net by dragging a single instance of each cell class onto the canvas and setting up a few synaptic connections. The final step is to click on the Network Builder's "Hoc File" button to generate a hoc file, from which you would be able to extract chunks of code (templates, examples of statements for connecting cells) that you would reuse in constructing your more elaborate network model.
If I have a template of a model and say there are 4 copies of the neuron created from that template,how can I incorporate slightly different distribution of channels in these 4 neurons?
After you create an instance of a cell class, you can use hoc or Python statements to do whatever you like to its biophysical properties. For example, let's say your cell instances have been appended to a List called cells, and you want to change gnabar_hh at soma(0.5) of the 3rd cell in that List.
cells.o(2).soma.gnabar_hh(0.5) = some_new_value
would do it (note that the elements in a List are numbered 0, 1, ...)

sanjaybioe
Posts: 14
Joined: Sun Apr 24, 2011 11:35 pm

Re: Importing two different morphologies into same canvas/GU

Post by sanjaybioe » Thu Apr 12, 2012 12:26 am

Dear Ted, thanks for the advice. But at the beginning of your reply have you missed some word/phrase or sentence, in the dotted portion of

"First, define two different cell classes--one for each morphology. Second, write a program that
creates as many instances of each class as you need....................
sets up synaptic connections between the instances"

Another query regarding cells with same morpho but slightly different channel distributions. You gave the example of gnabar_hh. But how about varying distribution of a Calcium channel described by a mod file?

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

Re: Importing two different morphologies into same canvas/GU

Post by ted » Thu Apr 12, 2012 9:17 am

sanjaybioe wrote:But at the beginning of your reply have you missed some word/phrase or sentence, in the dotted portion of

"First, define two different cell classes--one for each morphology. Second, write a program that
creates as many instances of each class as you need....................
sets up synaptic connections between the instances"
I see the source of confusion. Nothing omitted where the dots are. Imagine a "bullet" at the beginning of each of those two phrases.
Another query regarding cells with same morpho but slightly different channel distributions. You gave the example of gnabar_hh. But how about varying distribution of a Calcium channel described by a mod file?
That's a pretty fundamental question. The answer is: it depends on whether the mod file specifies the properties of a density ("distributed") mechanism or a "point process." Which of course brings up another question. And suggests that there are other fundamental questions on topics that you haven't yet bumped into. Many if not most of these will be quickly dispelled by reading either chapters 5 and 6 of The NEURON Book, and maybe the first 5 or 10 pages of chapter 9, OR all of this paper
Hines, M.L. and Carnevale, N.T.
The NEURON simulation environment.
Neural Computation 9:1179-1209, 1997
and the first 5 or 10 pages of
Hines, M.L. and Carnevale, N.T.
Expanding NEURON's repertoire of mechanisms with NMODL.
Neural Computation 12:995-1007, 2000.

Post Reply