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:
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:
(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.