GSoC 2023 Project Idea 2.2 Generalize parameter optimization routines (350 h)

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:

Mailing list(s):

Overview of HNN Utility

HNN-GUI tutorials

HNN-core tutorials and examples

Contributing guide


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.


  • 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: add functionality for running batch simulations · Issue #140 · jonescompneurolab/hnn-core · GitHub Model optimization for rhythmic time courses · Issue #176 · jonescompneurolab/hnn-core · GitHub create visualization plot for parameter optimization · Issue #423 · jonescompneurolab/hnn-core · GitHub efficacy of parameter recovery using current optimization routine · Issue #466 · jonescompneurolab/hnn-core · GitHub Optimization with calcium model · Issue #567 · jonescompneurolab/hnn-core · GitHub

Skill level: Intermediate

Required skills: Python, some experience in neuroscience data analysis may be helpful

Time commitment: Full-time (350 hours)

Lead mentor: Ryan Thorpe

Project website:

Backup mentors: Nicholas Tolley, Mainak Jas

Tech keywords: Python, networks, modeling, simulation

1 Like

I’m Aritra Sinha, an undergrad student from NIT Surathkal, Karnataka, India. I have a few years of experience with Python, and the projects seems pretty interesting. I would love to work and contribute to this project. I have started going through the project details and the related issues that are mentioned. Would be great to get some guidance on how to proceed ahead.


Hello @INCFComms, I am Arya and I am studying Artificial Intelligence and Machine Learning. I am very intrigued by this software and I am very eager to contribute to its development. I am confident that the knowledge and skills I gained from last year’s Computational Neuroscience track in Neuromatch and my course curriculum, will help me contribute to this project.

I have gone through the hnn webpage and the links given above(except the ‘contributing guide’ link is giving a 404 page!). Please let me know what I should do next to contribute to this project.
Thank you!