Changeset 1042
- Timestamp:
- 12/22/11 01:45:18 (5 months ago)
- Location:
- trunk
- Files:
-
- 5 added
- 11 modified
-
examples/StepCurrentSource.py (modified) (1 diff)
-
src/brian/__init__.py (modified) (1 diff)
-
src/brian/standardmodels/electrodes.py (added)
-
src/models.py (modified) (1 diff)
-
src/nemo/__init__.py (modified) (1 diff)
-
src/nemo/simulator.py (modified) (1 diff)
-
src/nemo/standardmodels/electrodes.py (added)
-
src/nest/__init__.py (modified) (1 diff)
-
src/nest/standardmodels/electrodes.py (added)
-
src/neuron/__init__.py (modified) (1 diff)
-
src/neuron/standardmodels/electrodes.py (added)
-
src/standardmodels/__init__.py (modified) (1 diff)
-
src/standardmodels/electrodes.py (added)
-
test/system/test_nest.py (modified) (1 diff)
-
test/unittests/test_neuron.py (modified) (3 diffs)
-
test/unittests/test_population.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/examples/StepCurrentSource.py
r647 r1042 16 16 17 17 cell = create(IF_curr_exp, {'v_thresh': -55.0, 'tau_refrac': 5.0}) 18 current_source = StepCurrentSource( [50.0, 110.0, 150.0, 210.0],19 [0.4, 0.6, -0.2, 0.2])18 current_source = StepCurrentSource({'times' : [50.0, 110.0, 150.0, 210.0], 19 'amplitudes' : [0.4, 0.6, -0.2, 0.2]}) 20 20 cell.inject(current_source) 21 21 -
trunk/src/brian/__init__.py
r1019 r1042 17 17 from pyNN.recording import files 18 18 from pyNN.brian.standardmodels.cells import * 19 from pyNN.brian.standardmodels.electrodes import * 19 20 from pyNN.brian.connectors import * 20 21 from pyNN.brian.standardmodels.synapses import * 21 from pyNN.brian.electrodes import *22 22 from pyNN.brian import electrodes 23 23 from pyNN.brian.recording import * -
trunk/src/models.py
r957 r1042 95 95 injectable = True # override for spike sources 96 96 97 class BaseCurrentSource(BaseModelType): 98 """Base class for current source model classes.""" 97 99 98 100 class BaseSynapseDynamics(object): -
trunk/src/nemo/__init__.py
r1022 r1042 19 19 from pyNN.nemo.connectors import * 20 20 from pyNN.nemo.standardmodels.synapses import * 21 from pyNN.nemo. electrodes import *21 from pyNN.nemo.standardmodels.electrodes import * 22 22 from pyNN.nemo import electrodes 23 23 from pyNN.nemo.recording import * -
trunk/src/nemo/simulator.py
r1029 r1042 129 129 def reset(): 130 130 """Reset the state of the current network to time t = 0.""" 131 state.net.reset_timer() 132 self.time = 0 133 self._fired = [] 131 state.time = 0 132 state._fired = [] 134 133 135 134 # --- For implementation of access to individual neurons' parameters ----------- -
trunk/src/nest/__init__.py
r1027 r1042 27 27 from pyNN.nest.standardmodels.synapses import * 28 28 from pyNN.nest.electrodes import * 29 from pyNN.nest.standardmodels.electrodes import * 29 30 from pyNN.nest.recording import * 30 31 from pyNN.random import RandomDistribution -
trunk/src/neuron/__init__.py
r1007 r1042 17 17 from pyNN.neuron.connectors import * 18 18 from pyNN.neuron.standardmodels.synapses import * 19 from pyNN.neuron. electrodes import *19 from pyNN.neuron.standardmodels.electrodes import * 20 20 from pyNN.neuron.recording import Recorder 21 21 from pyNN import standardmodels -
trunk/src/standardmodels/__init__.py
r969 r1042 129 129 class StandardCellType(StandardModelType, models.BaseCellType): 130 130 """Base class for standardized cell model classes.""" 131 recordable = ['spikes', 'v', 'gsyn']131 recordable = ['spikes', 'v', 'gsyn'] 132 132 synapse_types = ('excitatory', 'inhibitory') 133 always_local = False # override for NEST spike sources 134 133 always_local = False # override for NEST spike sources 134 135 136 class StandardCurrentSource(StandardModelType, models.BaseCurrentSource): 137 """Base class for standardized current source model classes.""" 138 139 def inject_into(self, cells): 140 raise Exception("Should be redefined in the local simulator electrodes") 141 142 def __getattr__(self, name): 143 try: 144 val = self.__getattribute__(name) 145 except AttributeError: 146 try: 147 val = self.get_parameters()[name] 148 except KeyError: 149 raise errors.NonExistentParameterError(name, 150 self.__class__.__name__, 151 self.get_parameter_names()) 152 return val 153 154 def __setattr__(self, name, value): 155 if self.has_parameter(name): 156 self.set_parameters(**{name: value}) 157 else: 158 object.__setattr__(self, name, value) 159 160 def set_parameters(self, **parameters): 161 """ 162 Set current source parameters, given as a sequence of parameter=value arguments. 163 """ 164 # if some of the parameters are computed from the values of other 165 # parameters, need to get and translate all parameters 166 computed_parameters = self.computed_parameters() 167 have_computed_parameters = numpy.any([p_name in computed_parameters 168 for p_name in parameters]) 169 if have_computed_parameters: 170 all_parameters = self.get_parameters() 171 all_parameters.update(parameters) 172 parameters = all_parameters 173 parameters = self.translate(parameters) 174 self.set_native_parameters(parameters) 175 176 def get_parameters(self): 177 """Return a dict of all current source parameters.""" 178 parameters = self.get_native_parameters() 179 parameters = self.reverse_translate(parameters) 180 return parameters 181 182 def set_native_parameters(self, parameters): 183 pass 184 185 def get_native_parameters(self): 186 pass 135 187 136 188 class ModelNotAvailable(object): -
trunk/test/system/test_nest.py
r922 r1042 39 39 print p1.get('Tau_m') 40 40 41 current_source = nest.StepCurrentSource( [50.0, 110.0, 150.0, 210.0],42 [0.01, 0.02, -0.02, 0.01])41 current_source = nest.StepCurrentSource({'times' : [50.0, 110.0, 150.0, 210.0], 42 'amplitudes' : [0.01, 0.02, -0.02, 0.01]}) 43 43 p1.inject(current_source) 44 44 -
trunk/test/unittests/test_neuron.py
r999 r1042 30 30 self.foo_init = -99.9 31 31 32 class MockStepCurrentSource(object): 33 parameter_names = ['amplitudes', 'times'] 34 def __init__(self, parameters): 35 self._devices = [] 36 37 def inject_into(self, cell_list): 38 for cell in cell_list: 39 if cell.local: 40 self._devices += [cell] 41 42 class MockDCSource(object): 43 parameter_names = ['amplitude', 'start', 'stop'] 44 parameters = {'amplitude' : 0, 'start' : 0, 'stop' : 1e12} 45 def __init__(self, parameters): 46 self._devices = [] 47 48 def inject_into(self, cell_list): 49 for cell in cell_list: 50 if cell.local: 51 self._devices += [cell] 52 53 32 54 class MockID(int): 33 55 def __init__(self, n): … … 222 244 223 245 def test_inject_dc(self): 224 cs = electrodes.DCSource( )246 cs = electrodes.DCSource({}) 225 247 cs.inject_into(self.cells) 226 248 assert_equal(cs.stop, 1e12) … … 228 250 229 251 def test_inject_step_current(self): 230 cs = electrodes.StepCurrentSource([1,2,3], [0.5, 1.5, 2.5])252 cs = MockStepCurrentSource({'amplitudes' : [1,2,3], 'times' : [0.5, 1.5, 2.5]}) 231 253 cs.inject_into(self.cells) 232 254 assert_equal(len(cs._devices), 2)# 2 local cells -
trunk/test/unittests/test_population.py
r1000 r1042 30 30 def _create_cells(self, cellclass, cellparams, size): 31 31 self.all_cells = numpy.array([MockID(i) for i in range(999, 999+size)], MockID) 32 self.cell = self.all_cells 32 33 self._mask_local = numpy.arange(size)%5==3 # every 5th cell, starting with the 4th, is on this node 33 34 self.first_id = self.all_cells[0]
