Neuro-Glia-Vasculature (NGV)¶
The explaination here is loosely based on the tiny_CI simulation example. The rest of the data for this simulation can be downloaded from here:
wget https://github.com/BlueBrain/MultiscaleRun/releases/download/0.8.2/tiny_CI_neurodamus_release-v0.8.2.tar.gz
The NGV simulation requires three node populations, each stored in separate files: neocortex_neurons, astrocytes, and vasculature.
Neocortex_neurons represent standard neocortex neurons.
Astrocytes represent glial cells.
The vasculature file is unique: although it is structured and treated as a node file by Neurodamus and the SONATA convention, each node (row in the table) actually refers to a vasculature segment. The vasculature itself is divided into morphology nodes (used internally for structure reconstruction), sections (optional), and segments. Currently, Neurodamus only reads the file and does not utilize this additional information. For more details, refer to the official documentation.
The diagram also illustrates the various connections among the populations, as described by the edge files (one per connection type):
Neuron <-> Neuron connections are stored in the neocortex_neurons__chemical_synapse file. These are simple synaptic connections (type: chemical).
Neuron <-> Astrocyte connections are defined in the neuroglial edge file, with the connection type synapse_astrocyte. These are tripartite connections that encapsulate an existing neuron-to-neuron synapse connection. A tripartite connection links an existing synapse to an astrocyte segment, enabling the astrocyte to modulate the synapse. This is achieved by placing a GlutReceive point process on an astrocyte segment that “spies” on a specific neuron-to-neuron synapse connection.
Note
While in biological systems astrocytes can influence the spied synapse, this behavior is currently not implemented. In the current model, astrocytes cannot influence neuron synapse connections through a tripartite connection.
Astrocyte <-> Astrocyte connections are described in the glialglial edge file. These connections are gap junctions. Currently not handled.
Astrocyte -> Vasculature connections are in the gliovascular edge file, with the connection type endfoot. Here, the vascouplingB mechanism is inserted to control the radii of the vasculature segments. This follows a master-slave relationship, where the astrocyte dictates the vasculature radii.
Astrocytes and Their Role in Blood Vessel Modulation¶
Astrocytes serve as critical intermediaries between neuronal activity and vascular response, playing a regulatory role in controlling blood vessel radii. This function is enabled by their close anatomical and functional association with neurons, particularly within specialized regions known as microdomains—localized zones where an astrocyte interfaces with adjacent synapses and vasculature. Microdomains exhibit minimal overlap, effectively delineating the spatial domain of influence of individual astrocytes.
Tripartite Synapse Mechanism¶
The model begins with a network of neurons connected via stochastic synapses. When a presynaptic neuron fires, it sends a signal through the spike exchange to the appropriate synapse, which probabilistically decides whether to fire or fail within a NET_RECEIVE block. Although the stochastic behavior is implemented in the postsynaptic neuron’s point process, it conceptually represents the probabilistic release of neurotransmitters by the presynaptic neuron.
If the synapse is part of a tripartite connection—so named because it involves a presynaptic neuron, a postsynaptic neuron, and an astrocyte—and it successfully fires, it sets an internal state variable Ustate = 1. This triggers an additional signal back into the spike exchange system, which is received by one or more glutReceive point processes distributed across the astrocyte, as well as by a cumulative glutReceiveSoma process located in the soma section that collects signals sent to any of the astrocyte’s glutReceive point processes. These mechanisms enable the astrocyte to monitor and respond to synaptic activity, forming the basis for its role in modulating blood vessel radii.
Astrocyte Structure and Dynamics¶
Each astrocyte is composed of multiple sections:
Soma section:
Contains three key components:
A glutReceive point process.
A glutReceiveSoma point process, which monitors recent synaptic activity across the entire astrocyte by counting signals received within the last millisecond. If no signals arrive during this period, the counter is reset, enabling real-time responsiveness.
A cadifus mechanism responsible for calcium diffusion, configured to observe glutReceive.
Endfeet sections:
Instantiated during astrocyte creation.
Each contains:
A
glutReceivepoint process that counts all received glutamate signals.A
cadifusmechanism that diffuses calcium based on this counter and resets the glutamate count.A
vascouplingBmechanism that modulates the blood vessel radius in response to local calcium concentration.
Each endfoot is instantiated as a new neuron section and added to the
endfeetSectionList. They are not connected to each other but are connected to thesource_node_id.Contrary to the documentation, the fields
vasculature_section_idandvasculature_segment_idare not mandatory. In practice, they are unused by both the SONATA reader and Neurodamus.Only the
source_node_idfield is required, as thesection_idandsegment_idcan be used to infer it. Including these additional fields may introduce inconsistencies.
Signal Processing and Vascular Modulation Chain¶
The sequence of interactions leading to blood vessel modulation is as follows:
A presynaptic neuron fires and sends a signal to the spike exchange.
The targeted synapse processes this signal through its NET_RECEIVE block and may fire.
If the synapse is part of a tripartite connection and it fires, Ustate is set to 1.
This event sends another signal to the spike exchange, which is collected by glutReceive and glutReceiveSoma point processes on the astrocyte.
The glutReceive processes track the total number of signals received over the simulation.
The cadifus mechanism diffuses calcium based on the glutamate signal counters and resets the glutamate count.
glutReceiveSoma in the soma tracks recent activity, resetting if inactive for a millisecond.
Endfeet sections use vascouplingB to adjust blood vessel radii based on calcium levels.
Implementation Details¶
All glutReceive objects are stored in a glut_list in neurodamus.ngv.Astrocyte to prevent garbage collection. The list ends with the GlutReceiveSoma instance, ensuring index alignment with section placement.
This architecture allows astrocytes to effectively translate synaptic activity into localized vascular responses, thereby linking neural signaling to blood flow regulation.
The Endoplasmic Reticulum (ER)¶
The Endoplasmic Reticulum (ER) serves multiple functions within the cell. Of particular interest to NGV and astrocyte modeling is its role as a calcium reservoir.
In essence, the ER acts as a distributed storage site for calcium, which is crucial because the tripartite synapse modulates vascular radii via vascouplingB and local calcium concentrations. Therefore, accurate simulation of the ER is important for fidelity in NGV models.
There was an initial attempt to incorporate the ER into NGV. This effort was temporarily abandoned after an early draft, with the intent to revisit it once a working version of the simulator was established. The code at commit 6cca80a5cdd2a09ea9493ab69f4f8a7624344d33 still contains relevant comments in ngv.py that could serve as a starting point for future development.
Ultimately, the feature was removed at the time, as partially implemented functionality added complexity without delivering tangible benefits.
Optimized Synapse GID Assignment¶
As previously discussed, the UState of a synapse connected to a post-synaptic neuron must send a signal to the astrocyte through the spike detection network in a tripartite synapse. This signaling requires a unique GID, which competes with those of other neurons in the network.
Before the Blue Brain Project’s closure, there was an incomplete attempt to optimize GID assignment for this purpose. The challenge is more intricate than it initially appears, as synapses may be created before all neurons are fully instantiated.
If you wish to revisit this optimization, refer to commit b30924461b738cfe7b4014673f75c039996486bc in the file ngv.py. The two key functions involved are:
_find_neuron_endpoint_id
_create_synapse_ustate_endpoints_optimized