/usr/share/pyshared/pyNN/nest/synapses.py is in python-pynn 0.7.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 51 52 53 54 55 56 57 | """
Definition of NativeSynapseType class for NEST
:copyright: Copyright 2006-2011 by the PyNN team, see AUTHORS.
:license: CeCILL, see LICENSE for details.
"""
import nest
from pyNN.models import BaseModelType, BaseSynapseDynamics
DEFAULT_TAU_MINUS = 20.0
def get_defaults(model_name):
defaults = nest.GetDefaults(model_name)
ignore = ['delay', 'max_delay', 'min_delay', 'num_connections',
'num_connectors', 'receptor_type', 'synapsemodel', 'weight']
default_params = {}
for name,value in defaults.items():
if name not in ignore:
default_params[name] = value
default_params['tau_minus'] = DEFAULT_TAU_MINUS
return default_params
class NativeSynapseDynamics(BaseSynapseDynamics):
def __init__(self, model_name, parameters={}):
cls = type(model_name, (NativeSynapseMechanism,),
{'nest_model': model_name})
self.mechanism = cls(parameters)
def _get_nest_synapse_model(self, suffix):
defaults = self.mechanism.parameters.copy()
defaults.pop("tau_minus")
label = "%s_%s" % (self.mechanism.nest_model, suffix)
nest.CopyModel(self.mechanism.nest_model,
label,
defaults)
return label
def _set_tau_minus(self, cells):
if len(cells) > 0:
if 'tau_minus' in nest.GetStatus([cells[0]])[0]:
tau_minus = self.mechanism.parameters["tau_minus"]
nest.SetStatus(cells.tolist(), [{'tau_minus': tau_minus}])
else:
raise Exception("Postsynaptic cell model %s does not support STDP."
% nest.GetStatus([cells[0]], "model"))
class NativeSynapseMechanism(BaseModelType):
def __new__(cls, parameters):
cls.default_parameters = get_defaults(cls.nest_model)
return super(NativeSynapseMechanism, cls).__new__(cls)
|