Drosophila Early Olfactory Circuit Libraries for FlyBrainLab.
- Documentation: https://flybrainlab.github.io/EOScircuits/
- Integration with OlfTrans for modeling odorant input
- Simulation of Drosophila Antenna circuit based on model in Lazar, A. A., & Yeh, C.-H. (2020).
- Simulation of Drosophila Antennal Lobe and Mushroom Body based on modified model in Lazar, A. A., Liu, T., & Yeh, C. H. (2020).
See notebooks
folder for detailed examples of using each circuit module.
There are 3 modules that are exposed to user, each 1 of the modules has 2 main classes: Config
and Circuit
.
The Config
completely specifies the executable circuit that is the core concept of Circuit
. To do this,
each instance of Config
specifies the number as well as the unique ids of each individual nodes in the circuit.
For example, in eoscircuits.ant.ANTConfig
, the number of nodes and other relevant attributes are specified as
eoscircuits.ant.ANTConfig.NR
: Number of receptors in the grapheoscircuits.ant.ANTConfig.NO
: Number of Olfactory Sensory Neurons (OSNs) expressing each given receptor type
3. eoscircuits.ant.ANTConfig.affs
: An array of affinity values (of length eoscircuits.ant.ANTConfig.NR
) for each receptor type. The concept of affinity is detailed in the paper Lazar, A. A., & Yeh, C.-H. (2020). as well as in the package OlfTrans.
3. eoscircuits.ant.ANTConfig.receptors
: An array of names (of length eoscircuits.ant.ANTConfig.NR
) for each receptor type
Based on these, the node ids for the Odorant Transduction Process (OTP) nodes, as well as the Biophysical Spike Generators (BSG) nodes in the Antenna circuit is given as:
eoscircuits.ant.ANTConfig.osn_otps
: the naming scheme follows the format'OSN/{receptor_name}/{osn_index}/OTP'
, where theosn_index
specifies the index of the OSN expressing this specificreceptor_name
. The value forosn_index
is from0
toeoscircuits.ant.ANTConfig.NO[r]-1
wherer
is the index of the specificreceptor_name
within the :code:eoscircuits.ant.ANTConfig.receptors
array.eoscircuits.ant.ANTConfig.osn_bsgs
: the naming scheme follows the format'OSN/{receptor_name}/{osn_index}/BSG'
After the Config
object is instantiated, the main entry point for each Circuit
is the classmethod Circuit.create_from_config
,
which will create a networkx.MultiDiGraph (as attribute Circuit.graph
) that is compatible with our simulation engine of choice: NeuroKernel using NeuroDriver as circuit specification API.
Each instance of Circuit
can be simulated by calling the Circuit.simulate
function. However, you need to specify
the inputs to pass to the circuit as well as the outputs that you would like to record. The inputs are specified as instances
of neurokernel.LPU.InputProcessors
and the outputs (specified as the record_var_list
argument to Circuit.simulate
)
is a list of tuple of the form (variable_name, node_ids)
. The simulation will return a tuple of 3 elements that correspond to
the InputProcessor, OutputProcessor and the LPU that, together, completely specifies an executable circuit for NeuroDriver.
Using the API specified above, EOSCircuits provides the following 3 modules to model the Drosophila olfactory system:
eoscircuits.ant
: Antenna Circuiteoscircuits.ant.ANTConfig
eoscircuits.ant.ANTCircuit
eoscircuits.al
: Antennal Lobe Circuiteoscircuits.ant.ALConfig
, subclassed fromeoscircuits.ant.ANTConfig
eoscircuits.ant.ALCircuit
eoscircuits.mb
: Mushroom Body Circuiteoscircuits.ant.MBConfig
subclassed fromeoscircuits.ant.ALConfig
eoscircuits.ant.MBCircuit
- Lazar, A. A., & Yeh, C.-H. (2020). A molecular odorant transduction model and the complexity of spatio-temporal encoding in the Drosophila antenna. PLOS Computational Biology.
- Lazar, A. A., Liu, T., & Yeh, C. H. (2020). An odorant encoding machine for sampling, reconstruction and robust representation of odorant identity. ICASSP.
- Lazar, A. A., Liu, T., Turkcan, M. K., & Zhou, Y. (2021). Accelerating with FlyBrainLab the discovery of the functional logic of the Drosophila brain in the connectomic era. ELife.
Free software: BSD license
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.