Environment and geometry¶
To simulate neuronal growth inside a complex environment, the DeNSE simulator
provides a special module called environment, which corresponds to the
PyNCulture library.
This environment
module provides all the necessary tools to
generate cultures of various sizes, shapes, and patterns.
In this part, we will detail how to set up a spatial environment in DeNSE, then explain how the spatial information is sensed by the developing neurons.
Importing the environment from a file¶
Note on file import¶
Currently, the environment
module imposes that the main culture
be composed of a single polygon.
This means that, when trying to create culture from files, one must make sure
that all components are contained inside a single “parent” polygon. This is
especially true when importing structures with holes (or using
internal_shapes_as="holes"
in culture_from_file()
):
as shown on the figure below, cultures with a whole circling a subculture
are invalid and will not be loaded.
Invalid file. |
Valid file. |
Importing shapes from SVG files¶
The easiest way to import shapes is probably to use SVG files, first drawing
the shape in a vector image editor such as Inkscape, then importing it using
culture_from_file()
.
Several examples are available in the environment/examples/
folder.
Note that since SVG files do not contain the precise sizes of the structures, it is necessary to provide the actual dimensions of the final environment upon loading through the min_x and max_x parameters.
Importing shapes from DXF files¶
DXF files are the typical export format of CAD software such as FreeCAD or LibreCAD. Contrary to Inkscape, these (more or less) include the proper dimensions. However, you will have to make sure your software is configured to work in the (proper) metric system: DeNSE expects dimensions to be in millimeters when importing from .dxf files (don’t you dare export inches).
Unfortunatly, though simple CAD files are properly supported, more advanced files using blocks and the INSERT method are not. In order to load them in DeNSE, you will have to pre-process your DXF file to remove the smart block insertions. In LibreCAD, make sure to move all elements into the same layer (Tools > Modify > Attributes and set Layer to your prefered layer), then just select the content of a block, then use Tools > Modify > Explode.
NB: you must apply this operation only once per block, which means that you must look for the “main” block behavior first, apply “explode”, then move downwards to sub-blocks (if any), and apply explode only on the elements contained in theses sub-blocks, one after the other.
Environment sensing¶
The surroundings of the neurons are explored by the elongating protrusions, the neurites, and more specifically, they are sampled via the filopodia. The filopodia are the thin finger-like protrusions extending from each growth cone at the tips of neurites.
@todo, finish explanation
Computing the affinity list¶
Neurite-neurite interactions¶
Environment-induced states¶
Stopped, stuck, environment-caused retraction.