Skip to main content.
(up)
(home) > Installation

IV Manual definition of NeuroML scripts

An almost empty NeuroML model would probably look like the script detailed on Figure 1.

<neuroml class="NeuromlPkg" name="editor2">
   <ImplementionModules>
      <ImplementionModule class="RefInterfaces" name="neuroml.model.cell.ModuleNeuron.module"
            SuperClass="neuroml.util.module.BasicRunnableCellFactory">
         <Interfaces length="0">
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.network.GeneralProjection.sourceMethod">
         <Interfaces length="1">
		neuroml.sim.run.SourceMethod	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.network.GeneralProjection.destMethod">
         <Interfaces length="1">
		neuroml.sim.run.DestMethod	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.network.ModuleProjection.module">
         <Interfaces length="0">
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.network.ModuleAttachment.destMethod">
         <Interfaces length="1">
		neuroml.sim.run.DestMethod	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.network.ModuleAttachment.sourceMethod">
         <Interfaces length="1">
		neuroml.sim.run.SourceMethod	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces" name="neuroml.model.network.ModuleProbe.module"
            SuperClass="neuroml.util.module.BasicRunnableCellFactory">
         <Interfaces length="0">
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces" name="neuroml.model.network.ModulePosition.module">
         <Interfaces length="1">
		neuroml.model.network.PositionModule	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.environment.schedule.ControlledSchedule.module">
         <Interfaces length="0">
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces" name="neuroml.model.I_Clamp.Module_I_Clamp.module">
         <Interfaces length="1">
		neuroml.model.I_Clamp.I_Clamp	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.ions_channel.ModuleChannel.module">
         <Interfaces length="1">
		neuroml.model.ions_channel.Channel	
         </Interfaces>
      </ImplementionModule>
      <ImplementionModule class="RefInterfaces"
            name="neuroml.model.MeasurementTool.ModuleMeasurement.module"
            SuperClass="neuroml.model.MeasurementTool.MeasurementTool">
         <Interfaces length="0">
         </Interfaces>
      </ImplementionModule>
   </ImplementionModules>
   <models>
      <model class="NetworkPkg" name="pkg1" MainNetwork="models.pkg1.networks.network_0">
         <networks>
         </networks>
      </model>
      <model class="CellPkg" name="CellModel">
         <solutions>
         </solutions>
         <sectionProperties>
         </sectionProperties>
         <neurons>
         </neurons>
         <structures>
         </structures>
      </model>
   </models>
   <environment name="environment">
      <io name="io"/>
      <schedule name="schedule" runtime="1000.0" stepping="1.5" visudelay="0.1" ViewOnOff="true"
            DebugOnOff="false" command="seq"/>
   </environment>
   <modules>
   </modules>
</neuroml>

Figure 1: A simple NeuroML model : Emptymodel.xml.

A large part of Figure 1 deals with implementation modules. Without going in further details, implementations modules allow to restrict (or widen) the use of modules in order to speed up the editing of simulations based on the same modules and also control the consistency of models. For example, if a module modelling the behaviour of some neuron populations is defined and the module is powerful enough to represent all the neurons populations,  neuroml.model.cell.ModuleNeuron.module can be restricted to the class representing the  populations behaviour. It is only used by the GuiKit.

Some other items are more basic. In the section <models>, different models of network or cells population can be defined. In this particular example there is only a model of network. In <networks>, several networks can be defined. The purpose of defining different networks is to be able to nest/reuse some smaller networks in some bigger ones. <elements /> defines the different populations and sub-network contained in a network. <projections/> defines the set of projections wich connect different populations. Basically, the elements contained in a population represents the soma of  the neurons belonging to the population whereas the projections represent the axons/synaptic parts of the neurons. However, the user can have a different interpretation and implementation of these two concepts. <attachments/> defines the measures and the populations which are monitored. <probes/> define the rendering environment for the attachment. The <model> section corresponds with types of neurons that the user can use in the simulation. In the <environment>, </io> defines the parameters of the granularity and duration of the simulation.   <modules/> defines the location of the jar files (the modules) on the disk.