Skip to content

Instantly share code, notes, and snippets.

@eslam69
Last active November 11, 2023 22:26
Show Gist options
  • Save eslam69/1d0931a6eb3412201126ed6b7c589973 to your computer and use it in GitHub Desktop.
Save eslam69/1d0931a6eb3412201126ed6b7c589973 to your computer and use it in GitHub Desktop.
GSoC 2023 - INCF: Integration of Automated Model Testing and Parameter Fitting Tools for Neuroscience Applications.

GSoC 2023 - INCF: Integration of Automated Model Testing and Parameter Fitting Tools for Neuroscience Applications

Project Description

This project aims to develop seamless integration between HippoUnit (a software tool for the automated testing and systematic comparison of detailed models of hippocampal neurons) and Neuroptimus (formerly known as Optimizer), which is designed to enable advanced parameter optimization methods, such as evolutionary algorithms and swarm intelligence, for various problems in neuronal modeling. This integration will allow the construction of detailed biophysical models of hippocampal neurons, ultimately optimizing a broader range of neuronal behaviors and enhancing biophysical models of hippocampal neurons. The project is an extension of the work carried out by Martin Blazsek during GSoC 2022, where he laid the foundation for the integration between HippoUnit and the previous version of Neuroptimus (Optimizer).

My primary task is to integrate Martin's prototype solution with the latest version of Neuroptimus for both CLI and GUI modes and add support for the remaining HippoUnit tests that were not integrated in the previous GSoC.

What Has Been Done

Here is a list of the main tasks completed during the GSoC period:

  • Porting the old Neuroptimus-HippoUnit integration to the latest version of Neuroptimus, testing, and ensuring that the previously integrated tests still function in the new version.
  • Testing the compatibility between Neuroptimus and Neuroptimus's feature-based optimization functionality.
  • Preparing the graphical interface of Neuroptimus for integration with HippoUnit, which includes:
    • Transforming the Qt based GUI of Neuroptimus into a scalable one as the old GUI was not scalable.
    • Enhancing the user experience of the GUI by reorganizing the GUI elements, adding new ones, and resolving blocking issues that occur during the optimization process.
    • Adding HippoUnit's specific GUI elements to the Neuroptimus GUI and optimizing the GUI logic to make it more user-friendly.
  • Implementing a penalty mechanism for missing features in HippoUnit-based optimization to guide the optimization process in the right direction.
  • Integrating ObliqueIntegrationTest, BackpropagationAPTest, and PathwayInteraction tests.

The following pull request contain all the changes to HippoUnit:

The following is a link to a Fork of the new version of Neuroptimus available in my Github page:

Demo

  • Scalable Neuroptimus GUI with HippoUnit integrated:

    Before:

Old GUI

After: New_GUI

Future Work

There is one more thing left to do, which is finalizing the results display in the GUI for HippoUnit-based optimization. The current version of Neuroptimus only displays results for Neuroptimus's native optimization. HippoUnit's results are not yet handled, but I will work on this after the GSoC period.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment