GSoC 2020 project idea 13: Implementation of multi-objective and parallel optimizers for neuronal signaling models

Background: Modeling neuronal signaling is a complex and multiscale problem which involves simulating the intricate network of biochemical signaling, protein synthesis, and electrical components in a neuron. Framework for Integrating Neuronal Data and Signaling Models (FindSim) is a structured specification that allows encoding the experimental conditions in a signaling model. Running an experiment with FindSim results in a score (Expt score) and a comparative graph plot to measure the performance of the model with the data reported in the literature. We utilize this kind of curated data to optimize the model parameters.

Aim: Currently, we have a working implementation of multi parameter optimization that uses a gradient descent based approach to minimize the value of an objective function (Overall Score in Fig 1) in order to improve the model. A typical optimization job requires a list of experiments along with a weight for each experiment in order to minimize the objective function (See Figure 1). As a result, it outputs the optimized scale for each parameter, overall score and individual scores (pre and post optimization) and the optimized model file. Since running an optimization is computation intensive job, we are using the Neuroscience Gateway (NSG) HPCs to run the optimization. The objective of this GSoC project is to implement other optimizers like multi-objective and parallel optimizer for improving the model. Since we will be running the code on NSG grids, the implementation should support MPI parallelization.

Things to be done:

  • Implementation of multi objective and parallel processing algorithms using Python language
  • The implementation should use process-level parallelization to concurrently run all the experiments on different parameter sets. Also, the implementation should be able to make full use of the NSG HPCs.
  • Testing the performance of the algorithms with multiple data sets
  • Providing an apt documentation of the implementation.

Required Skill Set

  • Language: Python, C/C++
  • Python programming in addition to MPI
  • Familiarity with parallel processing, HPCs and object oriented programming
  • Experience with machine learning and multi-parameter optimization is a plus


Useful Links:

1 Like

Hello, I’m Iti Shree, junior year Information and Technology student.I’d really like to work on this project, is it okay to email mentors regarding the same?

Also, it’d be really helpful if I can get link of pre implemented code which minimises objective function? Or any other resources which can helpful to understand the project more.

Hi Iti Shree,

Thank you for your interest in the project. You can look at the current implementation of minimization in this file: Briefly, this function is using the minimize function of scipy library to reduce a scaler function (doEval) using Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm. Please refer to these links for more information and implementation of BFGS:


Please use the email id mentioned in the Contacts to reach out to me. Also, send me the latest version of your CV.

Surbhit Wagle

Hi! I am a final year BEng Hons in Mechatronics student at University of Nottingham. I have always been fascinated by neuroscience and its applications. I am also determined to pursue further studies in the field of cognitive neuroscience. I find this project to be exciting to contribute to. I have good experience in working with deep neural network algorithm models and training them on HPCs as a part of my final year project at the university. I have a good background on how parallel programming and concurrent task processing work on GPUs and FPGAs.

I never really contributed to an open-sourced project, and I guess this would be an interesting and turning point in my career. i will be graduating in June 2020 and will be free for this summer. This project would greatly interests me to explore something new along with enhancing my current skills.
For all these years, I was making use of existing libraries and repositories to create end application based projects. And this would be new and I can assure I show my full interest and contribute to the community. I would like to discuss more about this project especially about NSG HPCs.
Proficient in Python
Familiar with parallel programming, GPGPU, FPGA, CUDA, C++
A deep interest in neuroscience concepts.


Hello! I’m Ishita, an undergraduate studying computer science and neuroscience in the Bay Area. I have experience with C++, Python, Swift and I’ve worked with frameworks like Tensorflow and OpenCV alongside doing neuroscience research. I hope to work on this project and once again, it’s great to meet all of you! I can’t seem to be able to join the Slack channel — could someone please help me out?