コード例 #1
0
ファイル: cells.py プロジェクト: sbillaudelle/PyNN
 def synapse_type_to_nineml(self, synapse_type, label):
     return nineml.SynapseType(
         name="%s post-synaptic response for %s" % (synapse_type, label),
         definition=nineml.Definition(
             self.synaptic_mechanism_definition_urls[synapse_type]),
         parameters=build_parameter_set(
             self.synaptic_mechanism_parameters[synapse_type]))
コード例 #2
0
ファイル: connectors.py プロジェクト: agravier/pynn
 def to_nineml(self, label):
     connector_parameters = {}
     for name in self.__class__.parameter_names:
         connector_parameters[name] = getattr(self, name)
     connection_rule = nineml.ConnectionRule(
                                 name="connection rule for projection %s" % label,
                                 definition=nineml.Definition(self.definition_url),
                                 parameters=build_parameter_set(connector_parameters))
     return connection_rule
コード例 #3
0
ファイル: __init__.py プロジェクト: tclose/PyNN
 def to_nineml(self):
     if self.structure:
         structure = nineml.Structure(
                                 name="structure for %s" % self.label,
                                 definition=nineml.Definition("%s/networkstructures/%s.xml" % (catalog_url, self.structure.__class__.__name__)),
                                 parameters=build_parameter_set(self.structure.get_parameters())
                                 )
     else:
         structure = None
     population = nineml.Population(
                             name=self.label,
                             number=len(self),
                             prototype=self.celltype.to_nineml(self.label)[0],
                             positions=nineml.PositionList(structure=structure))
     return population
コード例 #4
0
ファイル: __init__.py プロジェクト: tclose/PyNN
 def to_nineml(self):
     connection_rule = self._method.to_nineml(self.label)
     connection_type = nineml.ConnectionType(
                                 name="connection type for projection %s" % self.label,
                                 definition=nineml.Definition("%s/connectiontypes/static_synapse.xml" % catalog_url),
                                 parameters=build_parameter_set(
                                              {"weight": self._method.weights,
                                               "delay": self._method.delays}))
     synaptic_responses = self.post.get_synaptic_response_components(self.target)
     synaptic_response, = synaptic_responses
     projection = nineml.Projection(
                             name=self.label,
                             source=self.pre.to_nineml(), # or just pass ref, and then resolve later?
                             target=self.post.to_nineml(),
                             rule=connection_rule,
                             synaptic_response=synaptic_response,
                             connection_type=connection_type)
     return projection
コード例 #5
0
ファイル: utility.py プロジェクト: sbillaudelle/PyNN
def build_parameter_set(parameters, dimensionless=False):
    parameter_list = []
    for name, value in parameters.items():
        if isinstance(value, random.RandomDistribution):
            rand_distr = value
            value = nineml.RandomDistribution(
                name="%s(%s)" % (rand_distr.name, ",".join(
                    str(p) for p in rand_distr.parameters)),
                definition=nineml.Definition(
                    random_distribution_url_map[rand_distr.name]),
                parameters=build_parameter_set(
                    map_random_distribution_parameters(rand_distr.name,
                                                       rand_distr.parameters),
                    dimensionless=True))
        if dimensionless:
            unit = "dimensionless"
        elif isinstance(value, basestring):
            unit = None
        else:
            unit = infer_units(name)
        parameter_list.append(nineml.Parameter(name, value, unit))
    return nineml.ParameterSet(*parameter_list)
コード例 #6
0
 def spiking_node_to_nineml(self, label):
     return nineml.SpikingNodeType(
                 name="neuron type for population %s" % label,
                 definition=nineml.Definition(self.spiking_mechanism_definition_url),
                 parameters=build_parameter_set(self.spiking_mechanism_parameters))
コード例 #7
0
ファイル: __init__.py プロジェクト: agravier/pynn
 def to_nineml(self):
     return nineml.CurrentSourceType(
         name="current source %d" % self.__class__.counter,
         definition=nineml.Definition("%s/currentsources/%s" %
                                      (catalog_url, self.definition_file)),
         parameters=build_parameter_set(self.parameters))