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.
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:
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:
(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.
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
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
Edit: you may use use LLMs/AI tools, but please keep in mind:
We discourage the use of AI tools in communications and contributions. The goal of GSoC is for you to learn and improve your skills, not just to finish your project at any cost. However, if you do use any AI or LLMs, you must disclose their use in your PRs and/or conversations with your mentor. Additionally, you must fully understand and be able to explain any AI-generated code you submit. Any undisclosed use of AI or Large Language Models, or inability to explain AI-generated contributions, will be grounds for instant disqualification.
Hello, there, @sanjayankur31!
I really like this project! I love and enjoy computational neuroscience and want to build my career in this space. I’ve started working and playing around with NeuroML and have experience with spiking neural networks, particularly in modeling and simulation. Given that PyNN supports multiple simulators, I’d love to understand how I can best leverage my understanding of SNNs here. Are there specific areas in the project where SNN-based models might be particularly valuable, that you’d suggest I focus on while writing the proposal?
Hi @namita-ach, thanks for you interest in the project.
Sure, the biophysically detailed models we work with are all spiking models—they’re not made of “point neurons” (IaF and so on), but instead have full cells with morphologies with biophysics (Hodgkin Huxley style, for example) which do make the neurons “spike”.
NeuroML as a standard also supports multiple simulators. Please take a look at the documentation for more information. The advantage with NeuroML is that you get access to the whole ecosystem of tools, which includes visualisation and so on. So we’d want to convert stuff to NeuroML first to put it on Open Source Brain, and then to PyNN.
Please take a look at the projects I’ve mentioned in my post above. They’d be great starting points.
I am Varnika Khare, I am currently a PhD scholar in Cognitive Science at IIT Hyderabad, India, working on motor memory consolidation.
While my research primarily involves behavioural and neural data analysis, I have experience with Python (especially for data visualization), and reinforcement learning and I currently use MATLAB for EEG signal processing.
I am interested in applying for this GSoC project “Developing standardised biophysically detailed neuronal circuit models using NeuroML/PyNN/Open Source Brain ”.
Hi @v29khare , there are really no other steps. All candidates will need to submit their proposals and then we’ll have to rank them and pass them on to Google to decide who gets what slots. So, you just need to familiarise yourself with the requirements of the project at the moment. If you have the time to do some work on related tasks (play with the models, get them to run, convert a component or two to NeuroML), that’ll help strengthen your proposal.
I am Mher Kurghinyan, a medical student with interest in Computational Neuroscience from Armenia.
I have looked through the messages in this topic and the guide, so I was wondering if there are any additional platforms or resources that you would recommend and we could use or join before the deadline. Slack, for example, was mentioned in GSoC website.
(Do note that it’s not quite possible for us to monitor these all the time, but we’ll get back to queries there as soon as possible, usually within a few hours.)
All the simulation engines etc. have their own forums/documentation that you should be able to find from their websites hopefully.
I am working on a proposal now for this project and I am wondering if you have an estimate of how many models can be implemented in NeuroML over the 12-week period of the GSoC program. I don’t want to overestimate or underestimate the work that can be done in this period and I want to make sure that I can match your expectations.
Additionally, how can I get feedback on my proposal and chat more about model details and my choice of what models to implement in NeuroML? should I contact the mentors directly?
Thanks for your query. It sort of depends because each model has lots of components and before we go through them in detail, it’s hard to say how long it’ll take—it also depends on each person’s skill and knowledge too, of course.
For the proposal, I’d recommend saying just the one model, perhaps the motor cortex model we’ve noted above. If that’s easy enough and there’s time left. we can look at other models like the somatosensory cortex model.
To everyone:
A few folks have emailed us to ask what makes a good proposal. What we’re looking for really is evidence that the applicant (you) has the knowledge and the technical skill to carry out the conversion. So, for example, already converting a small component of the model and showing some use of NeuroML with it would go a long way, because it’ll tell us that you know how to use the tool chain and the necessary skills to carry out the conversion.