GSoC 2025 Project #12 OpenSourceBrain :: Developing standardised biophysically detailed neuronal circuit models using NeuroML/PyNN/Open Source Brain (175/350h)

Mentors: Padraig Gleeson <p.gleeson@ucl.ac.uk>, Ankur Sinha <ankur.sinha@ucl.ac.uk>

Skill level: Junior+/mid

Required skills: Python, Git/GitHub collaborative development experience, Experience in computational modelling in neuroscience

Time commitment: Flexible (175/350 hours)

Forum for discussion

About: With more and more experimental data on brain function being made openly available to the neuroscience research community, an increasing number of theoretical and modelling studies are using data-driven, large scale, biophysically-detailed neuronal models to combine disparate experimentally generated insights into unified theories, gain a mechanistic understanding of information processing in the brain, and make new predictions to help design the next generation of experiments. Although a number of established simulation environments and related software/computing resources are available to neuroscientists, they each have their specific formats and APIs, which makes it non-trivial to re-use models developed in them and share or combine them between different simulation tools.

NeuroML is a simulator independent standard that promotes FAIR (Findable, Accessible, Interoperable, and Reusable) computational neuroscience by providing a common standard, an API, and a large ecosystem of software tools (that includes the different simulation engines). Similarly, PyNN is a simulator independent Python API for building and simulating models. Users can use the NeuroML and PyNN to build, validate, analyse, visualise, optimise, share, and re-use their models, and they can choose different simulation engines to simulate them without needing to know the specifics of each simulation engine.

Aims: This project will involve developing new data-driven computational models using NeuroML/PyNN (or converting existing published models into NeuroML/PyNN standard formats) and testing them across multiple simulation engines to ensure that they produce the same results. The developed models will be published openly for the community to use through the Open Source Brain repository (https://v2.opensourcebrain.org). An example model conversion to NeuroML is documented here: Converting Ray et al 2020 to NeuroML — NeuroML Documentation. Specifically:

  • Select neuroscience cell/network models for development, conversion, and validation (e.g. from ModelDB)
  • Implement cell/synaptic mechanisms and neuronal circuits in NeuroML and/or PyNN. Implement extensions to PyNN, NeuroML or other tools if necessary
  • Make models available on the Open Source Brain repository, along with documentation and references.

Project website:

Tech keywords: Python, NeuroML, PyNN

1 Like

Hi everyone,

If you’re looking to participate in this project, here are a few steps to help you get started.

Please note that as mentioned in the proposal, we expect you to have some knowledge of computational neuroscience and computational modelling already, since the project period is unfortunately too short for you to learn it all from scratch and then convert models. Ideally, you should have already worked with some biophysically detailed models using the specialist simulation tools (NEURON/Brian/Arbor/NEST/etc).

1 Familiarise yourself with NeuroML

It is necessary for this project that you understand what/how NeuroML is and are able to use the Python API to build and simulate models. When converting published models, one is often also required to extend NeuroML using LEMS. So you should have some idea of what LEMS is.

You can go through the tutorials and other information here:

https://docs.neuroml.org/Userdocs/GettingStarted.html

You should also go through the paper on NeuroML, which will give you a good idea of what the NeuroML ecosystem is and what it does:

You should be able to install the software stack and run all the examples in the documentation. This will tell you that your system is set up to use NeuroML and simulate models.

2 Understand how to convert a model

A walk through of a recent conversion of a single cell is here:

https://docs.neuroml.org/Userdocs/Walkthroughs/RayEtAl2020/RayEtAl2020.html

There are a number of converted models here that you can look at (and play with) too (this list is also included in the eLife paper linked to above):

3 Find a few candidate models to convert (or develop, if you are doing your own)

A good place to look for models is ModelDB:

A good model to convert, for example, is the one developed in this paper:

https://www.cell.com/cell-reports/fulltext/S2211-1247(23)00585-5

The source code is here:

Another good model is the one from this paper:

Source:

(These are both quite large models, so we would work on converting a part of them—as far as we can get in the project period)

Note that most biophysically detailed models will use specialist tools such as NEURON, so you will need to have some idea of how NEURON works to be able to translate the model from NEURON to NeuroML.

https://neuron.yale.edu/neuron/

However, this will depend on the model you choose to convert, so do take a look at it and focus on the tool that the model is using. The above two tools use NEURON via NetPyNE.

4 Write your proposal

You will need to submit a proposal via the GSoC website etc. and then these will be evaluated by the mentors to decide which proposal will be accepted. A few things to note:

  • only one candidate can be accepted for each project, unfortunately
  • we do not yet know what projects Google will provide slots for, so it is also possible that this project does not get a slot at all :frowning:

So, please do go through other projects too and decide which ones you want to spend your time on. You can, as far as I am aware, submit proposals for multiple projects (but please check the GSoC documentation for contributors and confirm things like your eligibility before spending your time working on this).

5 Other things to keep in mind

  • you should have enough Python knowledge to be able to write scripts/programs and debug issues. (We will help, of course :)).
  • you should be able to work using Git (over GitHub mainly)

You don’t have to be an expert in all of this by any means. You will learn as part of the project, but you should know just enough so that you’re not starting from scratch.

If you have any queries, please contact us via any communication channels. If anything is unclear in the documentation, or if you find a bug, please open an issue. We are here to help and we look forward to working with you all :slight_smile:

1 Like