Good questions. They are answered in the following chapters of The NEURON Book:
5. Representing neurons with a digital computer
6. How to build and use models of individual cells
12. hoc, NEURON's interpreter
13. Object-oriented programming
What follows is a brief summary that I hope will be useful while you wait for your order
to arrive (you did order it, right?).
1. Could someone please point me to where in the docs I might find a list of the objects that can be created (ie: via the create command), and a listing of their attributes?
A little history and terminological clarity will be helpful here.
hoc as defined originally by Kernighan and Ritchie was a simple interpreted language
that had some syntactical similarities to C and BASIC. Michael Hines added sections,
defined as unbranched cables, as a way to make it easy to specify models of neurons
one neurite at a time. Later, as programs became more complex, he added the ability
to define objects. It is an accident of history that sections and objects are declared
and managed with different syntax (there is, however, a SectionRef class which
allows sections to be referenced as normal object variables for assignment and
passing as arguments).
"Age before beauty," as they say, so let's focus on sections first.
create is used to create sections. section attributes include topology, geometry, and
biophysical properties of membrane and cytoplasm. For more information about
sections, see
http://www.neuron.yale.edu/neuron/stati ... ml#Section
Typing
topology()
at the oc> prompt will produce a "teletype-style" printout of the branching pattern of all
existing sections. The command
forall psection()
will produce a listing of all sections and an abbreviated summary of their geometrical
and biophysical properties--however, if parameters such as diameter or ion channel
densities are inhomogeneous along the length of a section, it may be desirable to use
sectionname for (x) print x, parameter(x)
to see more detail--read about
currently accessed section
http://www.neuron.yale.edu/neuron/stati ... sedSection
for (var) stmt
http://www.neuron.yale.edu/neuron/stati ... r.html#for
The GUI also has several tools for managing or monitoring the properties of sections.
The CellBuilder is perhaps the most powerful and convenient way to create sections and
specify their properties. The ModelView tool is very useful for discovering the properties
of a model (especially a model that was constructed by someone else, who may have
a very different programming style than one's own). You will find tutorials for these tools
on NEURON's Documentation page
http://www.neuron.yale.edu/neuron/docs
Also, every Graph has a PlotWhat? tool that is really a variable name browser--see
http://www.neuron.yale.edu/neuron/docs/pwt/pwt.html
Now for objects. Read this
http://www.neuron.yale.edu/neuron/stati ... n/obj.html
http://www.neuron.yale.edu/neuron/stati ... rogramming
and you'll be well prepared to deal with objects in NEURON.
2. Once created, what ui features or other methods are available for showing the current population of objects (in the workspace, or whatever neuron's equivalent is called), and their attributes and values?
(I was rather hoping for a simple tree view, in which I could get feedback on the current structure of the workspace, navigate to a particular object, browse its attributes and possibly set them, and so forth... )
The hoc functions
allobjects
and
allobjectvars
(see
http://www.neuron.yale.edu/neuron/stati ... #functions)
print lists as you might expect.
ModelView presents a browsable outline of whatever currently exists, but it doesn't
let you specify attributes.
NEURON Main Menu / Tools / Point Processes / Managers / Point Group
brings up the The PointProcessGroupManager, which has a Show All button that
will reveal all instances of point processes. Click on any item in that list to examine
and modify its parameters.
3. From Neuron main menu, if I load a hoc file, play with it, close that window and attempt to open another hoc file, nothing happens. I have to quit and start from scratch -- is this expected behavior or is some setting messed up?
Sections at the top level are not destroyed by closing the window that created or
managed them. Objects may also persist if the "close" action does not destroy all
references to them. It is safest to exit and start anew.
It is possible to write one's own programs in such a way that loading a new hoc file
destroys whatever one had created previously. However, this requires that the new
hoc file contain statements that destroy all existing sections and user-created
objects. You also have to be careful not to redefine user-defined class specifications
(i.e. not to present hoc a template with the same name as one that was previously
parsed).
--Ted