Networks

Network descriptions in NeuroML 2. Describes network elements containing populations ( potentially specifying a list of cell locations ), projections ( lists of connections ) and inputs.


Original ComponentType definitions: Networks.xml. Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd. Generated on 29/06/21 from this commit. Please file any issues or questions at the issue tracker here.


network

extends baseStandalone

Network containing populations, projections and lists of explicitConnections ( either directly between components of the populations or via synapses ).

regions

region

populations

basePopulation

projections

projection

synapticConnections

explicitConnection

electricalProjection

electricalProjection

continuousProjection

continuousProjection

explicitInputs

explicitInput

inputs

inputList

Python: libNeuroML API

from neuroml import Network

variable = Network(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, type=None, temperature=None, spaces=None, regions=None, extracellular_properties=None, populations=None, cell_sets=None, synaptic_connections=None, projections=None, electrical_projections=None, continuous_projections=None, explicit_inputs=None, input_lists=None, **kwargs_)

XML examples

<network id="InstanceBasedNetwork">
        <population id="iafCells" type="populationList" component="iaf" size="3">
            <instance id="0">
                <location x="120" y="230" z="567"/>
            </instance>
            <instance id="1">
                <location x="270" y="450" z="56"/>
            </instance>
            <instance id="2">
                <location x="54" y="234" z="89"/>
            </instance>
        </population>
        <projection id="internal1" presynapticPopulation="iafCells" postsynapticPopulation="iafCells" synapse="syn1">
            <!--TODO: Fix! want to define synapse in here, so that multiple synapses per connection can be defined  
            <synapseComponent component="syn1"/>-->
            
            <connection id="0" preCellId="../iafCells/0/iaf" postCellId="../iafCells/1/iaf"/>
        </projection>
        <projection id="internal2" presynapticPopulation="iafCells" postsynapticPopulation="iafCells" synapse="syn2">
            <connection id="0" preCellId="../iafCells/0/iaf" postCellId="../iafCells/2/iaf"/>
        </projection>
        <inputList id="stimInput" component="pulseGen1" population="iafCells">
            
            <input id="0" target="../iafCells/0/iaf" destination="synapses"/>
        </inputList>
        
    </network>
<network id="net1">
        <population id="iafPop1" component="iaf" size="1" type="populationList">
            <instance id="0">
                <location x="0" y="0" z="0"/>
            </instance>
        </population>
        
        
        <population id="iafPop2" component="iaf" size="1" type="populationList">
            <instance id="0">
                <location x="100" y="0" z="0"/>
            </instance>
        </population>
 
        <electricalProjection id="testGJconn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop2">
            <electricalConnectionInstance id="0" preCell="../iafPop1/0/iaf" postCell="../iafPop2/0/iaf" preSegment="0" preFractionAlong="0.5" postSegment="0" postFractionAlong="0.5" synapse="gj1"/>
        </electricalProjection>
        
        
        <inputList id="i1" component="pulseGen1" population="iafPop1">
            <input id="0" target="../iafPop1/0/iaf" destination="synapses"/>
        </inputList>
        
        <inputList id="i2" component="pulseGen2" population="iafPop2">
            <input id="0" target="../iafPop2/0/iaf" destination="synapses"/>
        </inputList>
        
    </network>
<network id="net1">
        <population id="iafPop1" component="iaf" size="1"/>
        <population id="iafPop2" component="iaf" size="1"/>
        <population id="iafPop3" component="iaf" size="1"/>
   
        <continuousProjection id="testLinearGradedConn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop2">
            <continuousConnection id="0" preCell="0" postCell="0" preComponent="silent1" postComponent="gs1"/>
        </continuousProjection>
        
        <continuousProjection id="testGradedConn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop3">
            <continuousConnection id="0" preCell="0" postCell="0" preComponent="silent2" postComponent="gs2"/>
        </continuousProjection>
        
        <explicitInput target="iafPop1[0]" input="pulseGen1" destination="synapses"/>
        <explicitInput target="iafPop1[0]" input="pulseGen2" destination="synapses"/>
        <explicitInput target="iafPop1[0]" input="pulseGen3" destination="synapses"/>
        
    </network>

networkWithTemperature

extends network

Network containing populations, projections and lists of explicitConnections ( either directly between components of the populations or via synapses ), and an explicit temperature.

temperature

temperature

basePopulation

extends baseStandalone

A population of cells ( anything which extends baseCell ).

component

baseCell

notes

notes

annotation

annotation

property

property

population

extends basePopulation

A population of components, with just one parameter for the size.

size

Number of instances of this Component to create when the population is instantiated

Dimensionless

Python: libNeuroML API

from neuroml import Population

variable = Population(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, component=None, size=None, type=None, extracellular_properties=None, layout=None, instances=None, **kwargs_)

XML examples

<population id="iafCells" type="populationList" component="iaf" size="3">
            <instance id="0">
                <location x="120" y="230" z="567"/>
            </instance>
            <instance id="1">
                <location x="270" y="450" z="56"/>
            </instance>
            <instance id="2">
                <location x="54" y="234" z="89"/>
            </instance>
        </population>
<population id="iafPop1" component="iaf" size="1" type="populationList">
            <instance id="0">
                <location x="0" y="0" z="0"/>
            </instance>
        </population>
<population id="iafPop2" component="iaf" size="1" type="populationList">
            <instance id="0">
                <location x="100" y="0" z="0"/>
            </instance>
        </population>

populationList

extends basePopulation

An explicit list of the cells in the population.

size

instances

instance

instance

Specifies a single instance of a component in a population ( placed at location ).

location

location

Python: libNeuroML API

from neuroml import Instance

variable = Instance(id=None, i=None, j=None, k=None, location=None, **kwargs_)

XML examples

<instance id="0">
                <location x="120" y="230" z="567"/>
            </instance>
<instance id="1">
                <location x="270" y="450" z="56"/>
            </instance>
<instance id="2">
                <location x="54" y="234" z="89"/>
            </instance>

location

Specifies location of a single instance of a component in a population.

x

Dimensionless

y

Dimensionless

z

Dimensionless

Python: libNeuroML API

from neuroml import Location

variable = Location(x=None, y=None, z=None, **kwargs_)

XML examples

<location x="120" y="230" z="567"/>
<location x="270" y="450" z="56"/>
<location x="54" y="234" z="89"/>

region

Initial attempt to specify 3D region for placing cells. Work in progress…

rectangularExtent

rectangularExtent

Python: libNeuroML API

from neuroml import Region

variable = Region(neuro_lex_id=None, id=None, spaces=None, anytypeobjs_=None, **kwargs_)

rectangularExtent

For defining a 3D rectangular box.

xLength

Dimensionless

xStart

Dimensionless

yLength

Dimensionless

yStart

Dimensionless

zLength

Dimensionless

zStart

Dimensionless

projection

Projection from one population, presynapticPopulation to another, postsynapticPopulation, through synapse. Contains lists of connection or connectionWD elements.

presynapticPopulation

postsynapticPopulation

synapse

baseSynapse

connections

connection

connectionsWD

connectionWD

Python: libNeuroML API

from neuroml import Projection

variable = Projection(neuro_lex_id=None, id=None, presynaptic_population=None, postsynaptic_population=None, synapse=None, connections=None, connection_wds=None, **kwargs_)

XML examples

<projection id="internal1" presynapticPopulation="iafCells" postsynapticPopulation="iafCells" synapse="syn1">
            <!--TODO: Fix! want to define synapse in here, so that multiple synapses per connection can be defined  
            <synapseComponent component="syn1"/>-->
            
            <connection id="0" preCellId="../iafCells/0/iaf" postCellId="../iafCells/1/iaf"/>
        </projection>
<projection id="internal2" presynapticPopulation="iafCells" postsynapticPopulation="iafCells" synapse="syn2">
            <connection id="0" preCellId="../iafCells/0/iaf" postCellId="../iafCells/2/iaf"/>
        </projection>
<projection id="Proj1" presynapticPopulation="Population1" postsynapticPopulation="Population1" synapse="AMPA">
           
        </projection>

explicitConnection

Explicit event connection between components.

targetPort

from

to

connection

Event connection directly between named components, which gets processed via a new instance of a synapse component which is created on the target component. Normally contained inside a projection element.

destination

preFractionAlong

postFractionAlong

preSegmentId

postSegmentId

preCellId

postCellId

Python: libNeuroML API

from neuroml import Connection

variable = Connection(neuro_lex_id=None, id=None, pre_cell_id=None, pre_segment_id='0', pre_fraction_along='0.5', post_cell_id=None, post_segment_id='0', post_fraction_along='0.5', **kwargs_)

XML examples

<connection id="0" preCellId="../iafCells/0/iaf" postCellId="../iafCells/1/iaf"/>
<connection id="0" preCellId="../iafCells/0/iaf" postCellId="../iafCells/2/iaf"/>
<connection id="0" preCellId="../pop0/0/MultiCompCell" postCellId="../pop0/1/MultiCompCell" preSegmentId="0" preFractionAlong="0.5" postSegmentId="0" postFractionAlong="0.5"/>

synapticConnection

extends explicitConnection

Explicit event connection between named components, which gets processed via a new instance of a synapse component which is created on the target component.

destination

from

to

synapse

baseSynapse

Python: libNeuroML API

from neuroml import SynapticConnection

variable = SynapticConnection(from_=None, to=None, synapse=None, destination=None, **kwargs_)

synapticConnectionWD

extends synapticConnection

Explicit event connection between named components, which gets processed via a new instance of a synapse component which is created on the target component, includes setting of weight and delay for the synaptic connection.

delay

time

weight

Dimensionless

from

to

connectionWD

extends connection

Event connection between named components, which gets processed via a new instance of a synapse component which is created on the target component, includes setting of weight and delay for the synaptic connection.

delay

time

weight

Dimensionless

destination

preFractionAlong

postFractionAlong

preSegmentId

postSegmentId

preCellId

postCellId

Python: libNeuroML API

from neuroml import ConnectionWD

variable = ConnectionWD(neuro_lex_id=None, id=None, pre_cell_id=None, pre_segment_id='0', pre_fraction_along='0.5', post_cell_id=None, post_segment_id='0', post_fraction_along='0.5', weight=None, delay=None, **kwargs_)

XML examples

<connectionWD id="0" preCellId="../pop_EIF_cond_exp_isfa_ista[0]" postCellId="../pop_target[0]" weight="0.01" delay="10ms"/>
<connectionWD id="0" preCellId="../pop_EIF_cond_alpha_isfa_ista[0]" postCellId="../pop_target[1]" weight="0.005" delay="20ms"/>
<connectionWD id="0" preCellId="../pop_IF_curr_alpha[0]" postCellId="../pop_target[2]" weight="1" delay="30ms"/>

electricalConnection

To enable connections between populations through gap junctions.

synapse

gapJunction

Python: libNeuroML API

from neuroml import ElectricalConnection

variable = ElectricalConnection(neuro_lex_id=None, id=None, pre_cell=None, pre_segment='0', pre_fraction_along='0.5', post_cell=None, post_segment='0', post_fraction_along='0.5', synapse=None, extensiontype_=None, **kwargs_)

XML examples

<electricalConnection id="0" preCell="0" postCell="0" synapse="gj1"/>

electricalConnectionInstance

To enable connections between populations through gap junctions. Populations need to be of type populationList and contain instance and location elements.

preFractionAlong

postFractionAlong

preSegment

postSegment

preCell

postCell

synapse

gapJunction

Python: libNeuroML API

from neuroml import ElectricalConnectionInstance

variable = ElectricalConnectionInstance(neuro_lex_id=None, id=None, pre_cell=None, pre_segment='0', pre_fraction_along='0.5', post_cell=None, post_segment='0', post_fraction_along='0.5', synapse=None, extensiontype_=None, **kwargs_)

XML examples

<electricalConnectionInstance id="0" preCell="../iafPop1/0/iaf" postCell="../iafPop2/0/iaf" preSegment="0" preFractionAlong="0.5" postSegment="0" postFractionAlong="0.5" synapse="gj1"/>

electricalConnectionInstanceW

extends electricalConnectionInstance

To enable connections between populations through gap junctions. Populations need to be of type populationList and contain instance and location elements. Includes setting of weight for the connection.

weight

Dimensionless

preFractionAlong

postFractionAlong

preSegment

postSegment

preCell

postCell

Python: libNeuroML API

from neuroml import ElectricalConnectionInstanceW

variable = ElectricalConnectionInstanceW(neuro_lex_id=None, id=None, pre_cell=None, pre_segment='0', pre_fraction_along='0.5', post_cell=None, post_segment='0', post_fraction_along='0.5', synapse=None, weight=None, **kwargs_)

electricalProjection

A projection between presynapticPopulation to another postsynapticPopulation through gap junctions.

presynapticPopulation

population

postsynapticPopulation

population

connections

electricalConnection

connectionInstances

electricalConnectionInstance

Python: libNeuroML API

from neuroml import ElectricalProjection

variable = ElectricalProjection(neuro_lex_id=None, id=None, presynaptic_population=None, postsynaptic_population=None, electrical_connections=None, electrical_connection_instances=None, electrical_connection_instance_ws=None, **kwargs_)

XML examples

<electricalProjection id="testGJconn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop2">
            <electricalConnectionInstance id="0" preCell="../iafPop1/0/iaf" postCell="../iafPop2/0/iaf" preSegment="0" preFractionAlong="0.5" postSegment="0" postFractionAlong="0.5" synapse="gj1"/>
        </electricalProjection>
<electricalProjection id="testGJconn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop2">
            <electricalConnection id="0" preCell="0" postCell="0" synapse="gj1"/>
        </electricalProjection>

continuousConnection

An instance of a connection in a continuousProjection between presynapticPopulation to another postsynapticPopulation through a preComponent at the start and postComponent at the end. Can be used for analog synapses.

preComponent

baseGradedSynapse

postComponent

baseGradedSynapse

Python: libNeuroML API

from neuroml import ContinuousConnection

variable = ContinuousConnection(neuro_lex_id=None, id=None, pre_cell=None, pre_segment='0', pre_fraction_along='0.5', post_cell=None, post_segment='0', post_fraction_along='0.5', pre_component=None, post_component=None, extensiontype_=None, **kwargs_)

XML examples

<continuousConnection id="0" preCell="0" postCell="0" preComponent="silent1" postComponent="gs1"/>
<continuousConnection id="0" preCell="0" postCell="0" preComponent="silent2" postComponent="gs2"/>

continuousConnectionInstance

An instance of a connection in a continuousProjection between presynapticPopulation to another postsynapticPopulation through a preComponent at the start and postComponent at the end. Populations need to be of type populationList and contain instance and location elements. Can be used for analog synapses.

preFractionAlong

postFractionAlong

preSegment

postSegment

preCell

postCell

preComponent

baseGradedSynapse

postComponent

baseGradedSynapse

Python: libNeuroML API

from neuroml import ContinuousConnectionInstance

variable = ContinuousConnectionInstance(neuro_lex_id=None, id=None, pre_cell=None, pre_segment='0', pre_fraction_along='0.5', post_cell=None, post_segment='0', post_fraction_along='0.5', pre_component=None, post_component=None, extensiontype_=None, **kwargs_)

continuousConnectionInstanceW

extends continuousConnectionInstance

An instance of a connection in a continuousProjection between presynapticPopulation to another postsynapticPopulation through a preComponent at the start and postComponent at the end. Populations need to be of type populationList and contain instance and location elements. Can be used for analog synapses. Includes setting of weight for the connection.

weight

Dimensionless

preFractionAlong

postFractionAlong

preSegment

postSegment

preCell

postCell

Python: libNeuroML API

from neuroml import ContinuousConnectionInstanceW

variable = ContinuousConnectionInstanceW(neuro_lex_id=None, id=None, pre_cell=None, pre_segment='0', pre_fraction_along='0.5', post_cell=None, post_segment='0', post_fraction_along='0.5', pre_component=None, post_component=None, weight=None, **kwargs_)

XML examples

<continuousConnectionInstanceW id="0" preCell="../hhPop1/0/hhcell" postCell="../hhPop2/0/hhcell" preComponent="silent1" postComponent="gs1" weight="1"/>

continuousProjection

A projection between presynapticPopulation and postsynapticPopulation through components preComponent at the start and postComponent at the end of a continuousConnection or continuousConnectionInstance. Can be used for analog synapses.

presynapticPopulation

population

postsynapticPopulation

population

connections

continuousConnection

connectionInstances

continuousConnectionInstance

Python: libNeuroML API

from neuroml import ContinuousProjection

variable = ContinuousProjection(neuro_lex_id=None, id=None, presynaptic_population=None, postsynaptic_population=None, continuous_connections=None, continuous_connection_instances=None, continuous_connection_instance_ws=None, **kwargs_)

XML examples

<continuousProjection id="testLinearGradedConn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop2">
            <continuousConnection id="0" preCell="0" postCell="0" preComponent="silent1" postComponent="gs1"/>
        </continuousProjection>
<continuousProjection id="testGradedConn" presynapticPopulation="iafPop1" postsynapticPopulation="iafPop3">
            <continuousConnection id="0" preCell="0" postCell="0" preComponent="silent2" postComponent="gs2"/>
        </continuousProjection>
<continuousProjection id="testGradedConn" presynapticPopulation="hhPop1" postsynapticPopulation="hhPop2">
            <continuousConnectionInstanceW id="0" preCell="../hhPop1/0/hhcell" postCell="../hhPop2/0/hhcell" preComponent="silent1" postComponent="gs1" weight="1"/>
        </continuousProjection>

explicitInput

An explicit input ( anything which extends basePointCurrent ) to a target cell in a population.

destination

sourcePort

targetPort

target

Python: libNeuroML API

from neuroml import ExplicitInput

variable = ExplicitInput(target=None, input=None, destination=None, **kwargs_)

XML examples

<explicitInput target="iafPop1[0]" input="pulseGen1" destination="synapses"/>
<explicitInput target="iafPop1[0]" input="pulseGen2" destination="synapses"/>
<explicitInput target="iafPop1[0]" input="pulseGen3" destination="synapses"/>

inputList

An explicit list of inputs to a population..

population

component

basePointCurrent

inputs

input

Python: libNeuroML API

from neuroml import InputList

variable = InputList(neuro_lex_id=None, id=None, populations=None, component=None, input=None, input_ws=None, **kwargs_)

XML examples

<inputList id="stimInput" component="pulseGen1" population="iafCells">
            
            <input id="0" target="../iafCells/0/iaf" destination="synapses"/>
        </inputList>
<inputList id="i1" component="pulseGen1" population="iafPop1">
            <input id="0" target="../iafPop1/0/iaf" destination="synapses"/>
        </inputList>
<inputList id="i2" component="pulseGen2" population="iafPop2">
            <input id="0" target="../iafPop2/0/iaf" destination="synapses"/>
        </inputList>

input

Specifies a single input to a target, optionally giving the segmentId ( default 0 ) and fractionAlong the segment ( default 0.5 ).

segmentId

Optional specification of the segment to target, default 0

fractionAlong

Optional specification of the fraction along the specified segment, default 0.5

destination

target

Python: libNeuroML API

from neuroml import Input

variable = Input(id=None, target=None, destination=None, segment_id=None, fraction_along=None, extensiontype_=None, **kwargs_)

XML examples

<input id="0" target="../iafCells/0/iaf" destination="synapses"/>
<input id="0" target="../iafPop1/0/iaf" destination="synapses"/>
<input id="0" target="../iafPop2/0/iaf" destination="synapses"/>

inputW

extends input

Specifies input lists. Can set weight to scale individual inputs.

weight

Dimensionless

destination

target

Python: libNeuroML API

from neuroml import InputW

variable = InputW(id=None, target=None, destination=None, segment_id=None, fraction_along=None, weight=None, **kwargs_)