First, a side comment regarding this:
spine_neck . . . attached to end of basilar_dendrite (unable to reposition away from distal end)
True, the CellBuilder only allows the 0 end of a section to be connected to the 0 or 1 end of another section. So how does one use the CellBuilder to implement a model in which a spine is attached somewhere along the length of a parent neurite? Represent the parent by two sections connected in series, each section with appropriate length, and attach the child to their junction.* You'll see this in the CellBuilder that is part of the demo model I'll email to you.
*--This is also a useful strategy for implementing models in code if you want the location of the spine to be unaffected by changes of nseg.
End of the side comment.
Alpha Synapse seems to fire just once.
AlphaSynapse generates a single "synapse-like" conductance change that happens at a fixed, user-specified time. The practical way to implement repetitive synaptic activation is with an event-driven synaptic mechanism. ExpSyn with e = 0 mV and tau = 3 to 5 ms is a decent first-order approximation to an AMPAergic synapse.
But you'll also need two more things: an instance of the NetStim class to generate events, and a NetCon to convey events from the NetStim to the ExpSyn.
And at this point, the complexity of your model requires exploiting the strengths of the GUI and code. The GUI is helpful for creating and managing the properties of the NetStim and the ExpSyn (and to reposition the ExpSyn), but a bit of code is required to make the NetStim drive the ExpSyn.
To illustrate this, I used the CellBuilder to implement a model cell similar to what you described in a previous post. In the CellBuilder note:
0. section orientations were deliberately chosen to make it easy to identify where connections are located.
1. "head" appears to be a keyword, so the spine head needs to be called something else. I chose kopf because it's short.
2. subsets are used to simplify specification of the model cell's properties.
3. Ra is set to 100 ohm cm, which is in the range of values used for cytoplasmic resistivity.
4. g_pas is set to 1e-4 S/cm2, for a membrane time constant of 10 ms (assuming cm = 1 uF/cm2)
5. e_pas is set to -65 mV because the soma uses hh, which wants to rest at -65 mV. This makes initialization easy: just initialize membrane potential in all sections to -65 mV. Using a different value for e_pas would produce a model that has nonuniform resting potential and requires custom initialization.
I used the Print and File Window Manager (PFWM) to save the CellBuilder (in Continuous Create mode) to a session file (cell.ses) all by itself.
Then I created a RunControl panel, a "voltage axis graph" that shows v at the middle of the soma, and a "space plot" that shows membrane potential as a function of distance along two paths in the cell: one (red) from the distal end of the basilar dendrite to the 1 end of the soma, and the other (blue) from the distal end of the spine head to the 1 end of the soma. At rest the blue line lies right on top of the red line. I saved these three items to a ses file (basicrig.ses) by themselves.
Next, I used PointProcessManagers to create one instance each of the NetStim and ExpSyn classes. The ExpSyn I moved to the 1 end of kopf; it doesn't matter where the NetStim is located. I set the ExpSyn's tau to 3 ms, and saved these two PointProcessManagers to a file called syndrive.ses.
Now we get to the part where the GUI is combined with a bit of code.
With a plain text (programmer's) editor I created a file called init.hoc that contaned these statements:
load_file("nrngui.hoc")
load_file("cell.ses")
load_file("basicrig.ses") // RunControl, v vs. t, and v along paths
load_file("syndrive.ses") // PPMs as NetStim and ExpSyn
Then at the system (OS) prompt I executed the statement
nrngui init.hoc
and saw that NEURON recreated the model and all of the GUI tools that I had used. Running a simulation showed that, as usual, soma.v wobbled a little bit during the first 15 ms or so before settling to -65 mV. Clearly the first synaptic activation should be delayed until t ~ 15 ms.
But how to get the NetStim to send events to the ExpSyn? At NEURON's oc> prompt I entered the following statements, one at a time:
objref ns, syn, nc
ns = NetStim[0]
syn = ExpSyn[0]
nc = new NetCon(ns, syn)
nc.weight = 1e-3
The first statement creates variables with convenient names that can be used to refer to the class instances. The second and third statements make ns and syn refer to the NetStim and ExpSyn. The fourth statement creates an instance of the NetCon class that will convey events generated by ns to syn.
I ran a simulation, saw nothing, and noticed that Tstop was 5 ms but the NetStim's first event doesn't happen until 50 ms. So I changed Tstop to 25 ms and the NetStim's start parameter to 15 ms, and ran another simulation. Still nothing. But of course--the NetCon's default weight is 0, so the events delivered to the ExpSyn don't affect synaptic conductance.
Executing this statement
nc.weight = 0.001
made a single activation generate a synaptic conductance transient with maximum amplitude 0.001 uS = 1 nS. That's strong enough to elicit a ~0.4 mV EPSP at the soma.
This was a reasonable starting point. I used the text editor to add the following statements to the end of init.hoc:
objref ns, syn, nc
ns = NetStim[0]
syn = ExpSyn[0]
nc = new NetCon(ns, syn)
nc.weight = 1e-3 // just for a test
And in the RunControl panel I changed Tstop to 200 ms, then added kopf.v(0.5) to the v vs. t graph, and saved the RunControl panel, the v vs. t graph, and the v vs distance graph to basicrig.ses.
I'll zip up these files and email them to you so you can see and try the result.