- Timestamp:
- 11/25/11 12:21:30 (6 months ago)
- Location:
- trunk
- Files:
-
- 4 modified
-
setup.py (modified) (1 diff)
-
src/nemo/__init__.py (modified) (2 diffs)
-
src/nemo/standardmodels/cells.py (modified) (1 diff)
-
src/nest/connectors.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/setup.py
r1002 r1013 44 44 package_dir={'pyNN': 'src'}, 45 45 packages = ['pyNN','pyNN.nest', 'pyNN.pcsim', 'pyNN.neuron', 'pyNN.nineml', 46 'pyNN.brian', 'pyNN.common', 'pyNN.recording',47 'pyNN. standardmodels', 'pyNN.descriptions',46 'pyNN.brian','pyNN.nemo', 'pyNN.common', 47 'pyNN.recording', 'pyNN.standardmodels', 'pyNN.descriptions', 48 48 'pyNN.nest.standardmodels', 'pyNN.pcsim.standardmodels', 49 'pyNN.neuron.standardmodels', 'pyNN.brian.standardmodels' ],49 'pyNN.neuron.standardmodels', 'pyNN.brian.standardmodels', 'pyNN.nemo.standardmodels'], 50 50 package_data = {'pyNN': ['neuron/nmodl/*.mod', "descriptions/templates/*/*"]}, 51 51 author = "The PyNN team", -
trunk/src/nemo/__init__.py
r1001 r1013 120 120 player = SpikeSourcePoisson.spike_player(**params) 121 121 setattr(idx, 'player', player) 122 simulator.state.net.add_neuron(int(idx), 0., 0., -80., 0, 0., -80., 0.) 122 ntype = simulator.state.net.add_neuron_type('Input') 123 simulator.state.net.add_neuron(ntype, int(idx)) 123 124 elif isinstance(celltype, SpikeSourceArray): 124 125 ### For the moment, we model spike_source_array and spike_source_poisson … … 131 132 player = SpikeSourceArray.spike_player(**params) 132 133 setattr(idx, 'player', player) 133 simulator.state.net.add_neuron(int(idx), 0., 0., -80., 0., -0., -80, 0) 134 ntype = simulator.state.net.add_neuron_type('Input') 135 simulator.state.net.add_neuron(ntype, int(idx)) 136 elif isinstance(celltype, cells.IF_curr_exp): 137 init = celltype.default_initial_values 138 print params 139 for idx in self.all_cells: 140 ntype = simulator.state.net.add_neuron_type('IF_curr_exp') 141 simulator.state.net.add_neuron(ntype, int(idx), 142 params['v_rest'], 143 params['cm'], 144 params['tau_m'], 145 params['t_refrac'], 146 params['tau_syn_E'], 147 params['tau_syn_I'], 148 params['i_offset'], 149 params['v_reset'], 150 params['v_thresh'], 151 init['v'], 0., 0., 1000.) 134 152 else: 135 ## Currently, we only have the Izhikevitch model...136 153 init = celltype.default_initial_values 154 ntype = simulator.state.net.add_neuron_type('Izhikevich') 137 155 for idx in self.all_cells: 138 simulator.state.net.add_neuron( int(idx), params['a'], params['b'], params['c'], params['d'], init['u'], init['v'], 0.)156 simulator.state.net.add_neuron(ntype, int(idx), params['a'], params['b'], params['c'], params['d'], init['u'], init['v'], 0.) 139 157 140 158 self._mask_local = numpy.ones((n,), bool) # all cells are local -
trunk/src/nemo/standardmodels/cells.py
r957 r1013 134 134 pass 135 135 136 class IF_curr_exp(ModelNotAvailable): 137 pass 136 class IF_curr_exp(cells.IF_curr_exp): 137 """Leaky integrate and fire model with fixed threshold and 138 decaying-exponential post-synaptic current. (Separate synaptic currents for 139 excitatory and inhibitory synapses.""" 140 translations = build_translations( 141 ('v_rest', 'v_rest'), 142 ('v_reset', 'v_reset'), 143 ('cm', 'cm'), 144 ('tau_m', 'tau_m'), 145 ('tau_refrac', 't_refrac'), 146 ('tau_syn_E', 'tau_syn_E'), 147 ('tau_syn_I', 'tau_syn_I'), 148 ('v_thresh', 'v_thresh'), 149 ('i_offset', 'i_offset'), 150 ) 151 152 indices = { 153 'v_rest' : 0, 154 'cm' : 1, 155 'tau_m' : 2, 156 't_refrac' : 3, 157 'tau_syn_E' : 4, 158 'tau_syn_I' : 5, 159 'i_offset' : 6, 160 'v_reset' : 7, 161 'v_thresh' : 8 162 } 163 initial_indices = {'v' : 0} 164 138 165 139 166 class IF_cond_alpha(ModelNotAvailable): -
trunk/src/nest/connectors.py
r1004 r1013 7 7 $Id$ 8 8 """ 9 from pyNN import random, core 9 from pyNN import random, core, errors 10 10 from pyNN.connectors import Connector, AllToAllConnector, FixedProbabilityConnector, \ 11 11 DistanceDependentProbabilityConnector, FixedNumberPreConnector, \ … … 109 109 for count, tgt in enumerate(projection.post.local_cells): 110 110 connector._probabilistic_connect(tgt, 1) 111 self.progression(count )111 self.progression(count, projection._simulator.state.mpi_rank) 112 112 113 113 … … 139 139 proba = proba.astype(float) 140 140 connector._probabilistic_connect(tgt, proba, self.n_connections) 141 self.progression(count )141 self.progression(count, projection._simulator.state.mpi_rank) 142 142 143 143 … … 156 156 n = self.n 157 157 connector._probabilistic_connect(tgt, 1, n) 158 self.progression(count) 159 158 self.progression(count, projection._simulator.state.mpi_rank) 159 160 161 class FastFromListConnector(FromListConnector): 162 163 __doc__ = FromListConnector.__doc__ 164 165 def connect(self, projection): 166 """Connect-up a Projection.""" 167 idx = numpy.argsort(self.conn_list[:, 1]) 168 self.targets = numpy.unique(self.conn_list[:, 1]).astype(int) 169 self.candidates = projection.pre.all_cells 170 self.conn_list = self.conn_list[idx] 171 self.progressbar(len(self.targets)) 172 count = 0 173 left = numpy.searchsorted(self.conn_list[:, 1], self.targets, 'left') 174 right = numpy.searchsorted(self.conn_list[:, 1], self.targets, 'right') 175 for tgt, l, r in zip(self.targets, left, right): 176 sources = self.conn_list[l:r, 0].astype(int) 177 weights = self.conn_list[l:r, 2] 178 delays = self.conn_list[l:r, 3] 179 180 srcs = projection.pre.all_cells[sources] 181 try: 182 srcs = projection.pre.all_cells[sources] 183 except IndexError: 184 raise errors.ConnectionError("invalid sources index or indices") 185 try: 186 tgt = projection.post.all_cells[tgt] 187 except IndexError: 188 raise errors.ConnectionError("invalid target index %d" %tgt) 189 ## We need to exclude the non local cells. Fastidious, need maybe 190 ## to use a convergent_connect method, instead of a divergent_connect one 191 #idx = eval(tests) 192 #projection.connection_manager.connect(src, tgts[idx].tolist(), weights[idx], delays[idx]) 193 projection.connection_manager.convergent_connect(srcs.tolist(), tgt, weights, delays) 194 self.progression(count, projection._simulator.state.mpi_rank) 195 count += 1 160 196 161 197 class FastSmallWorldConnector(SmallWorldConnector): … … 172 208 proba = proba_generator.get(connector.N, connector.distance_matrix).astype(float) 173 209 connector._probabilistic_connect(tgt, proba, self.n_connections, self.rewiring) 174 self.progression(count )210 self.progression(count, projection._simulator.state.mpi_rank)
