Difficulty: Intermediate - Advanced
Duration: 350 hours (full time)
Skills:
-
Experience with Python programming, including Numpy and Scipy
-
Experience with Git version control
-
Experience with neuroscience and synaptic physiology is optional but advantageous
Mentors:
Nicholas Tolley (ntolley (Nicholas Tolley) · GitHub), Katharina Duecker (katduecker (Katharina Duecker) · GitHub), Dylan Daniels (dylansdaniels · GitHub), Anna Cattani (annacatt · GitHub)
About HNN-Core: The Human Neocortical Neurosolver (HNN) is a software for interpreting the cell and circuit neural origin of macroscale magneto-/electro-encephalography (MEG/EEG) data using biophysically-detailed microcircuit simulations. HNN-Core is the modern open source interface defining the HNN network model that allows simulations to be run through a user-friendly graphical user interface (GUI) or through a Python API as a library. Official website of HNN software (https://hnn.brown.edu/), HNN Textbook website with tutorials and examples (HNN Textbook), Contributing guide (Contributing Guide — hnn-core 0.5.0 documentation).
Goal: HNN-core is a biophysical modeling framework based on the NEURON simulator (The NEURON Simulator — NEURON documentation). The cells in HNN-core consist of one or several sections (in biophysical modeling referred to as “compartments”), that are connected in a way that approximates the morphology of biological neurons. In the current implementation in HNN-core, synapses are placed at fixed locations at the center of each section. While only a subset of these synapses are active connections from thalamic and cortical inputs, the NEURON simulator solves the differential equations for all synapses, including those with inactive connections. The synaptic currents are stored as simulation outputs in an HNN-core network object, again including synapses with zero current flow. The goal of this project is to refactor the placement of synapses to locations at which a neuron receives synaptic inputs. This will improve the computational and memory efficiency of simulations in HNN-core and improve user-friendliness in interpreting simulation outputs. A bonus goal is to introduce biologically realistic variability in the synapse placement for different neurons (time permitting). This includes thalamic inputs and synaptic connections to other cells in the network.
Subgoals:
-
Parameterize synapse position within Section, such that synapses are only placed at locations where the cell receives thalamic or cortical input, while maintaining backwards compatibility.
-
Refactor code such that synaptic current is only recorded for active synapses.
-
Update predefined network models.
-
Create comprehensive tests and documentation
-
Validate and create visualization tools for synaptic currents
-
Bonus: implement position distributions for synapse placement, both for thalamic inputs (drives) and within-network connections
-
Bonus: Extend existing drive and connectivity API to support heterogeneous placement
-
Bonus: Add cell-level and network-level variability options
-
Bonus: Create visualization tools for synapses
Tech keywords: Python, NEURON simulator, Compartmental modeling