GSoC 2024 Project Idea 8.2 Improving ML/AI Parameter Tuning/Optimization of Electrophysiological Models (175/350 h)

NetPyNE is a high-level graphical and python scripting interface to NEURON that describes multiscale models of brain neural circuits in a declarative, json-like syntax that can then be simulated in-silico via the NEURON simulator. NetPyNE’s toolkit allows users to declare–within a single framework–interactions between molecules (reaction diffusion modeling), synapses, channels, morphologies, and networks exemplified in our published, publicly available large-scale, biologically realistic models of rodent motor (M1), rodent somatosensory (S1), and macaque auditory (A1) thalamocortical circuits. NetPyNE is used in over 100 published models developed over 40 institutions worldwide, from smaller networks that can be run on user machines to models encompassing 50 million synaptic interactions run on highly parallelized computing centers. NetPyNE additionally integrates with multiple popular neuroscience standards, toolkits and platforms including the NeuroML, SONATA formats, CoreNEURON, LFPykit, HNN, TVB, OSB, EBRAINS, and SciUnit.

To aid in model development, NetPyNE has developed multiple python tools for scalable model tuning within our “batch” subpackage. This subpackage is continually improved upon based on new hardware infrastructures and algorithms and based on end-user needs including model tuning for large multiscale models on increasingly available high powered computing platforms. To this end, part of 2024 will involve research and development into improving the “batch” subpackage and exploring the efficacy of already implemented/ to be implemented AI/ML algorithms in parameter optimization for large scale models, using parameter prediction against our M1, S1 and A1 circuits as algorithm testbenches. Of note, these aims represent larger project aims and can be tailored to the applicant’s background expertise / time constraints/ interest.

Aims:

  1. Improving fitness reporting/ data aggregation & visualization for batch automation
  2. Validating new batch scripts on multiple hardware platforms
  3. Testbench existing / to be implemented algorithms on tuning large scale models
  4. Implement new AI/ML algorithms within NetPyNE batch subpackage.

Skill level: Flexible

Required skills: Python; open source software development. Other useful skills: background in computational/theoretical neuroscience and/or modeling experience; experience with NEURON/NMODL/hoc.

Time commitment: Flexible (175/350 h)

Lead mentor: Valery Bragin (vbragin19@gmail.com), Eugenio Urdapilleta (urdapile@gmail.com), James Chen (jchen.6727@gmail.com), Salvador Dura-Bernal (Salvador.Dura-Bernal@downstate.edu)

Project website: TBA (Discuss on Neurostars)

Backup mentors: TBD

Tech keywords: Python, open source, Data Science, Automation, NEURON, NetPyNE

1 Like

Hello!

I am one of the mentors for this project–we’ve received a couple of emails regarding both 8.1 and 8.2:

We appreciate the interest but also would kindly request any correspondence to be posted here as well–

Also, some FAQs from the emails I’ve gotten:

  1. Do I need to come into this project with NEURON/NetPyNE experience?
    Nope! It’s an “other/useful skill”. We’ll appreciate any knowledge you have on these software tools, but it is not a prerequisite per se. We will have didactic sessions covering NEURON/NetPyNE syntax as necessary for the purposes of automating exploration of large cortical models for 8.2, and the syntax for cell/ephys/connectomic rule declarations for 8.1 if the project proceeds to that topic.
    We do want people with some background in Python programming / collaborative software development, but this is also a mentor/mentee relationship and the project can be catered to the skill level/interests of the contributor. Finally we are happy to review any topics relevant to the project, all of us are employed in academia, so we do have an interest in teaching.

  2. Do I need to achieve all Aims?
    Nope! Again, depending on contributor interest/skill, we are willing to prioritize certain aims and drop other aims altogether. This is something we can tailor prior to your project proposal. For example–for 8.2-- if you are interested in data visualization and learning about parameter tuning, we can focus more on aims 1 and 3. If you are interested in software development and automation, we can look at aims 1, 2 and 4. &c…

  3. So what DO I need to do?
    Beyond meeting your time commitment, this project is designed as an opportunity for you to learn from a “real” task encountered in academic research (in a very diverse lab). We think the best experience will come if you are both highly interested in the project/research themes and the effort you put into open and honest communication. Our end of project evaluation is not going to be based solely on any strict deliverable but the effort you put in and how you communicate that to the team. For instance, a lab notebook/journal, your active participation on our Slack (or other communication) channels, etc, presentation of any interesting findings/ work. Of course, in terms of “building your resume” achieving any of these Aims will certainly stand out!

As a forewarning though, a lot of us on the mentor team are involved in a lot of different projects so we tend to be distracted very easily. Don’t hesitate to reach out on the forum (this thread), and please be aware that there may be a lag time in replies!

1 Like

Hello!

I’ve reached out to some of the mentors here but wanted to introduce myself to the forums; I’m Jacob Sprouse and I am a co-current computer science/Neuroscience undergraduate at Auburn University. I am finishing my Neuroscience classes this year and beginning my computer science major as well. I look forward to learning more about how I can utilize both fields in AI/ML and contribute to the project!

I did have a question about “exploring the efficacy of already implemented/ to be implemented AI/ML algorithms in parameter optimization for large scale models, using parameter prediction against our M1, S1 and A1 circuits as algorithm testbenches.” and if the circuits use data from recent clinical models of the primary motor, somatosensory, and auditory areas as a basis for the algorithms prediction? if not, will we need to research new predictions from recent clinical models involving the primary areas and implement those findings into the new algorithms, or should we use the existing parameters instead when optimizing the sub-package?

Thanks!

Hi,

Thanks for the interest!

The models (Models · NetPyNE – Open source package for neuronal networks) are both recently published and based on recently published literature, they are also currently being evaluated to match recent clinical findings by our lab.

However; I want to clarify that we will not be trying to tune these models to new clinical data; rather, we will be evaluating algorithms to see if we can demonstrate an improvement in compute cost when comparing one algorithm to another on the same parameter search space to pre-existing targets. In other words, we will provide arbitrary search spaces and comparing how long / how accurate various tuning methods are to matching already established targets (that is, we already “know solutions” that work).

Hope this explains the project better,

Best,

James Chen

Hi everyone,

I’m Dev, a Computer Science undergraduate at MDU, Rohtak. I’ve actually been working as an ML Engineer for about a year now, and the focus on incorporating AI/ML algorithms into NetPyNE’s “batch” subpackage for large-scale model optimization really excites me.

I’m particularly interested in exploring how different machine learning techniques can be applied to this challenge. Having the opportunity to learn more about the project and how my background in ML could contribute to NetPyNE’s development would be fantastic.

Question:
The document mentions exploring the efficacy of existing and to-be-implemented AI/ML algorithms. Could you elaborate on the specific types of algorithms envisioned for this purpose? Are there any particular areas of AI/ML that hold promise for parameter optimization within the context of NetPyNE’s “batch” subpackage?

Hello Dev,

We use a variety of algorithms to tune our models, though the question of which approach works best seems dependent on the particular model and isn’t formalized (something which we are in the process of doing…).

Our NetPyNE batch tool (https://github.com/suny-downstate-medical-center/netpyne/tree/development/netpyne/batch) currently implements various algorithms, including population based models (various evolutionary models, stochastic descent) and sequential inference models (simulation based inference with inference based on neural net structures or other non NN bayesian constructs).

On complex simulations, simulation based inference likely is more effective, whereas for simple models, the cost/benefits may equalize.

Because we are more interested in complex simulations, we’re looking to explore sequential inference techniques more, as well as techniques used traditionally in hyperparameter optimization.

Hello all,

Thank you for your interest regarding our NetPyNE projects,
just as a heads up, some important upcoming dates include
March 18, 2024 (next week) when Contributor Proposals Open and
April 02, 2024 when Proposals are due.

Since we are a smaller group with a heavy focus on research,
we would prefer doing a quick informal videocall or chat to
discuss your Contributor Proposal (and this will also be a
chance for you to ask any questions) before submission.

To set up a quick meeting, feel free to message me, either through
neurostars (click on my icon and select “send message”), or my specific email.

Thanks,
James Chen

Hello all,

Thanks for expressing your interest in our project 8.2;
Unfortunately, at this point, we already have multiple applications for this project–and as we have limited mentors in our lab, it is highly unlikely that we will be able to take on any more project mentees for 8.2 at this time.

I would recommend taking a look at other projects on neurostars if you are interested. Some of which are very similar to our project 8.2.

Thanks,
James Chen