-
Notifications
You must be signed in to change notification settings - Fork 1
/
CellClass.py
50 lines (42 loc) · 1.49 KB
/
CellClass.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from neuron import h
from neuron import gui
class CellClass(object):
def __init__(self,x,y):
self.x = x
self.y = y
self.soma = h.Section(name='soma', cell=self)
self.soma.L = 10
self.soma.nseg = 1
self.soma.diam = 30
self.soma.insert('hh')
self.soma.Ra = 100
self.soma.cm = 10
#settings for synapse
# self.syn = h.ExpSyn(0.8,sec=self.soma)
# self.syn.tau = 5
# for excitatory inputs
self.AMPA = h.ExpSyn(0.5,sec=self.soma)
self.AMPA.tau = 5
self.AMPA.e = 0 # this is above resting potential, which causes depolarization
# for inhibitory inputs
self.GABA = h.ExpSyn(0.5,sec=self.soma)
self.GABA.tau = 10
self.GABA.e = -80 # this is below resting potential, which causes hyperpolarization
#STDP constant
d=1
p=1
self.LR = 0.000015#0.00001 stdp?
# self.LR = 0.000005#0.00001 hebb?
self.syn_STDP = h.ExpSynSTDP(0.8,sec=self.soma)
self.syn_STDP.tau = 5
self.syn_STDP.d = d#LTD
self.syn_STDP.p = p#LTP
self.syn_STDP.verbose=0
self.syn_STDP.LR = self.LR
def setWeightRange(self, minWeight,maxWeight):
self.syn_STDP.minWeight = minWeight
self.syn_STDP.maxWeight = maxWeight
def setLearningState(self,state):
self.syn_STDP.learning = state
def setLR(self,num):
self.syn_STDP.LR = self.LR*num