Skip to content

GSoC Ideas

Mainak Jas edited this page Mar 20, 2023 · 4 revisions

About HNN-core

Human Neocortical Neurosolver (HNN) is a software for interpreting the neural origin of macroscale magneto-/electro-encephalography (MEG/EEG) data using biophysically-detailed microcircuit simulations. HNN can be run through a user-friendly graphical user interface or through a Python interface HNN-core.

IRC channel: https://gitter.im/jonescompneurolab/hnn-core

Mailing list(s): https://groups.google.com/g/hnnsolver

Resources

Project ideas

1. Develop IO routines for HNN-core outputs

Difficulty

Intermediate

Duration

350 hours (full time)

Skills

Python, some experience in neuroscience data analysis may be helpful

Possible mentors

Ryan Thorpe, Nicholas Tolley

Goal

The current IO routines in HNN-core are fragmented as they were adapted from HNN-GUI. The goal is to develop IO routines adapted from HNN-core objects while maintaining backwards compatibility with HNN-GUI.

Subgoals

  • Develop a method to write cell_response object and read from it. It should be able to handle multiple trials and be able to plot rasters after reading from a saved file.
  • Develop a function to write and read from Dipole and ExtracellularArray. It should be able to handle multiple trials. The format should be standardized between the two objects as much as possible.
  • Develop a function to write and read Network object. It should be based on hdf5 and use the h5io library.
  • Document each of the IO formats in an rst document and develop tests for each function.
  • Bonus: Develop a function to write Network object to NeuroML format and test that it can be loaded in NetPyne

Related issues:

2. Generalize parameter optimization routines

Difficulty

Intermediate

Duration

350 hours (full time)

Skills

Python, some experience in neuroscience data analysis may be helpful

Possible mentors

Ryan Thorpe, Nicholas Tolley, Mainak Jas

Goal

HNN-core currently lacks the ability to perform parameter optimization on rhythmic/bursty and poisson drive configurations. The goal is to add this functionality and generalize the optimization routine to encompass all types of exogenous drive parameters that are used to configure model simulation outputs.

Subgoals

  • Develop functions, optimize_rhythmic and optimize_poisson, that can be used to optimize the parameters associated with each of these drive types, respectively. Inspiration can be drawn from the current implementation of optimized_evoked, however, the optimization routines for rhythmic and poisson drives will not necessarily leverage the sequential design used for a sequence of evoked drives.
  • Consolidate the different optimization functions as much as possible, producing a clear API with minimal redundancies. This should also allow the user to constrain parameter ranges and run simple parameter sweeps by specifying or eliminating the optimization cost function.
  • Create a function for visualizing the parameter changes pre-to-post optimization.
  • Document the optimization routines with examples and develop tests for each function.

Related issues: https://github.com/jonescompneurolab/hnn-core/issues/140 https://github.com/jonescompneurolab/hnn-core/issues/176 https://github.com/jonescompneurolab/hnn-core/issues/423 https://github.com/jonescompneurolab/hnn-core/issues/466 https://github.com/jonescompneurolab/hnn-core/issues/567