You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
from neuron import h |
|
|
|
from .terminal import Terminal |
|
|
|
|
|
class SimpleTerminal(Terminal): |
|
""" |
|
Simple terminal using netcon. |
|
""" |
|
|
|
def __init__(self, pre_sec, target_cell, spike_source=None, loc=0.5): |
|
""" |
|
Parameters |
|
---------- |
|
pre_sec : :obj: `NEURON Section` |
|
The presynaptic section that is monitored for spikes. The voltage |
|
in this section is monitored to trigger the postsynaptic conductance |
|
as the spike source |
|
spike_source : :obj: `NEURON Section` |
|
Overrides the pre_sec as the spike source for this terminal. |
|
terminal : :obj: `Synapse Terminal` |
|
The presynaptic Terminal instance |
|
loc : float, default=0.5 |
|
Position on the postsynaptic section to insert the mechanism, from [0..1]. |
|
""" |
|
|
|
Terminal.__init__(self, pre_sec) |
|
if spike_source is None: |
|
spike_source = pre_sec(loc)._ref_v |
|
self.spike_source = spike_source |
|
self.pre_sec = pre_sec |
|
|
|
def connect(self, post, weight): |
|
""" |
|
Connect this terminal to a postsynaptic cell section |
|
The synaptic delay is 0.5 msec, and the presynaptic |
|
action potential threshold is -20 mV. |
|
|
|
Parameters |
|
---------- |
|
post : :obj: `NEURON Section` |
|
|
|
weight : float |
|
Strength of the connection |
|
|
|
""" |
|
thresh = -20 |
|
delay = 0.5 |
|
self.netcon = h.NetCon( |
|
self.spike_source, post, thresh, delay, weight, sec=self.pre_sec |
|
) |
|
self.netcon.weight[0] = weight
|
|
|