GSoC 2024 Project Idea 13.1 Open source, cross simulator, large scale network models in NeuroML and PyNN (175h/350h)

An increasing number of studies are using large scale network models incorporating realistic connectivity to understand information processing in the brain. High performance computational resources are becoming more widely available to computational neuroscientists for this type of modelling and general purpose, well tested simulation environments such as NEURON and NEST are widely used. New, well annotated experimental data and detailed compartmental models are becoming available from the large scale brain initiatives. However, the majority of neuronal models which have been published over the past number of years are only available in simulator specific formats, illustrating a subset of features associated with the original studies.

This work will involve converting a number of published large scale network models (from e.g. neocortex, hippocampus or cerebellum) into open, simulator independent formats such as NeuroML and PyNN and testing them across multiple simulator implementations. They will be made freely available to the community through the Open Source Brain repository (https://v2.opensourcebrain.org) for reuse, modification and extension.

Aims/objectives:

  1. Select a number of large scale network models for the conversion & testing process (e.g. from ModelDB).
  2. Convert network structure and cell/synaptic properties to NeuroML and/or PyNN. Where appropriate use the simulator independent specification in LEMS to specify cell/synapse dynamics & to allow mapping to simulators. Implementing extensions to PyNN, NeuroML or other tools may be required.
  3. Make models available on the Open Source Brain repository, along with documentation and references.

Skill level: Mid+/High

Required skills: computational/theoretical neuroscience and large scale biophysically detailed modelling, Python, experience with NeuroML/NEURON, open source software development (git/GitHub)

Time commitment: Flexible (175/350 h)

Lead mentor: Padraig Gleeson (@pgleeson on GitHub, p.gleeson@ucl.ac.uk)

Project website:

Backup mentors: Ankur Sinha (@sanjayankur31 on GitHub, ankur.sinha@ucl.ac.uk)

Tech keywords: computational neuroscience, Python, NeuroML, PyNN, networks, modelling, simulation, NEURON

1 Like

Hi @pgleeson and @sanjayankur31 ,

I am Dhruvanshu Joshi, a pre final student at VJTI pursuing my bachelors in Computer Engineering. I am interested in contributing to GSOC 2024 under Open Source Brain with the project “Open source, cross simulator, large scale network models in NeuroML and PyNN”. A brief about myself: I am a computer vision and deep learning enthusiast with python being my primary programming language. I have worked on several projects in python like pothole detection. I am also the global runner up of the OpenCV Spatial AI competition, 2022. I also have experience as an open source contributor. I have worked as an open source intern at PyMC, which is an open source bayesian statistics python library in 2023 and have been contributing actively to the open source community since then. My work there significantly enhanced my Python skills. I am attaching my resume here for your reference.

As per your guidance, I am currently studying the user documentation for NeuroML. I also did some research and found out that a similar project was proposed last year. I found a few papers that had been recommended: Open Source Brain paper, LEMS/NeuroML2, libNeuroML, NeuroML v1, PyNN . I’d start going through them once I am thoroughly familiar with NeuroML and the modelling pipeline.

I do realise that a lot of the preliminary work here involves reading the resources and learning. I’d like to confirm if these papers are also relevant for this project. Also I’d like to ask if there will be some task (like there was last year) for the selection process so that I can efficiently prioritise and divide my time.

Sincerely,
Dhruvanshu Joshi

Hi @Dhruvanshu_Joshi , yes, those papers are the ones to go through. The documentation will have up to date information and examples etc., so that’s probably most useful. There’s also our recent pre-print, which will have more updated information than previous papers:

Do let us know how you get along.

The model conversion project is the hardest one because it does require one to have some knowledge of biophysically detailed computational modelling—the (neuro)biology, physics, mathematics, and of course the computing side of things. So, this one is perhaps ideal for candidates that are or have studied computational neuroscience in some capacity. We have two other projects that are more generally software development ones and do not require one to have the computational modelling background, so they’re also worth looking at:

1 Like

Hi @sanjayankur31,

Thank you so much for the reply. I am currently reading NeuroML’s user guide. I’ll spend some time using the library and familiarising myself with it. Thank you so much for providing the recent preprints. I do understand that this is a sophisticated project which might require a good background in (neuro)biology, physics and mathematics.
The two projects that you suggested seem very exciting. I’d get back to you with more research and better understanding of the project description.

Yours Sincerely,
Dhruvanshu Joshi

1 Like

That’s great. I’ve assigned the vispy related issue to you now too.

Hi @pgleeson and @sanjayankur31,

I am Eleonora Bernasconi, a second year PhD candidate working on a large-scale computational model of the cerebellar cortex. In particular, I connected a granular layer model (2017, Sudhakar et al.) to a Purkinje cell model (2018, Zang et al.).

I am interested in contributing to GSoC 2024 by converting the Purkinje cell model I am working on, from NEURON to NeuroML. My interest stems from the aim of the NeuroML initiative “to facilitate the exchange of complex neuronal models between researchers”.

I have struggled to comprehend and reuse models written by others. Also, I had to spend a great deal of time learning to use multiple simulators to use other researchers’ models. For example, as part of my Master’s thesis, I converted a model of the prefrontal cortex and hippocampus (2013, Taxidis et al.) from Brian to Brian2 simulator for compatibility issues. During an internship, I converted a model of the hippocampus (2010, Cutsuridis et al.) from the NEURON simulator to NetPyNE.

I believe it is in all researchers’ interest to have their research be as impactful as possible. I wish the work I am doing now will serve as a basis for other people’s work. Having seen how hard it is to understand and personalize another group’s work, I aim to make my code as simple and reusable as possible. I believe NeuroML offers a suitable framework to achieve these objectives.

I would greatly appreciate your advice on the project.

Thank you,
Best wishes

Eleonora Bernasconi

1 Like

Hi @EleBern , good to see you here!

I think this is the Purkinje cell model we’re looking at?

The first step would be to set up your environment with pyNeuroML etc. In a virtual environment pip install pyNeuroML[neuron] should install everything you need. You can try running a few of the tutorial scripts to see that everything works:

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

Next, could you create a new GitHub repository where we can track the conversion and add Padraig and me as collaborators to it please? Our usernames on GitHub are pgleeson and sanjayankur31. Maybe we can call it something like ZangEtAl2018? We’ll upload the NEURON files to a NEURON folder in it, and create a new NeuroML2 folder where we’ll keep the NeuroML version. Take a look at this one, for example:

Hi @sanjayankur31,

Thank you very much for your answer.

Yes, that is the Purkinje cell model I am working on. I created a GitHub repo and invited you and @pgleeson as collaborators.

I also set up a new environment and successfully ran the first tutorial. I will now look into the tutorials more carefully to get familiar with the syntax.

1 Like

Hii @sanjayankur31 and @pgleeson
I hope this message finds you well. My name is Kundan Tiwari, and I am currently a pre-final year student pursuing my studies at NIT Rourkela. I am reaching out to express my interest in participating in GSOC 2024 under the Open Source Brain project with the proposed project "Open source, cross simulator, large scale network models in NeuroML and PyNN.

With a strong foundation in Python programming, deep learning, OpenCV, and computer vision, I am eager to contribute my skills and knowledge to this project. Throughout my academic journey, I have engaged in various projects and activities that have honed my expertise in these areas.
I have worked on several projects like human action recognition, OCR-based FIR analyser.
I’d like to inquire whether there will be any selection tasks, similar to those from last year, to help me effectively prioritize and allocate my time.

1 Like

Hi @kundan_tiwari , welcome! Please take a look at this post:

As noted there, the conversion project is the hardest one because one needs to have some knowledge of computational modelling/neuroscience to be able to do it—one has to find a model to convert to begin with. So, please do look at the other tasks too.

Dear @sanjayankur31 , I am a final year PhD student in computational neuroscience, at the Bernstein Centre Freiburg and currently visiting at Imperial College London. Here I work with multisensory integration using computational methods.
My PhD thesis has largely involved large scale recurrent network modeling in NEST. Here, I use point neural networks with homeostatic structuralplasticity rules to study the effect of perturbation (model for brain stimulation) on network actiity and connectivity. Our study was published last year and can be found here: Repetitive transcranial magnetic stimulation (rTMS) triggers dose-dependent homeostatic rewiring in recurrent neuronal networks
Currently, Im building on this model to study PTSD and fear memory engrams.
I would be very interested in translating our model to a simulator independent format. This will allow us to continue asking our questions in a more flexible framework.
I would like to express my interest in this GSoC project and would love to hear your thoughts on the same.
Best,
Swathi Anil

1 Like

Hi @SwathiAnil , great to have you here. Welcome.

That sounds very interesting. I believe we’ve heard Han talk at the Biocomputation group in Hertfordshire about another work. (My dissertation was on homeostatic structural plasticity, see this paper )

How are the structural plasticity updates done in the model? From what I remember, the growth rules are included in the NEST simulator and are specific to the tool. So, while the initial network configuration (populations/connectivity/inputs) can easily be standardised in NeuroML, I’m not currently sure how we’ll implement the structural plasticity rules in NeuroML. It’s something we’ll have to look into.

Hi @sanjayankur31 thanks for the response, the paper looks very interesting. We also used activity dependent growth and deletion rules for pre and post synaptic elements, but restricted to plasticity of excitatory synapses for the sake of simplicity.
Regarding the implementation of the HSP updates, these originate at a global (neuronal) level. We define stable states in the network, represented as a set-point activity of individual neurons. Each neuron is able to constantly monitor its own level of activity, via firing rate, intracellular calcium concentration, and aims to maintain this stable state of activity. Any changes caused by increase or decrease in net input lead to compensatory efforts to restore the stable state. This is achieved via making or breaking of new synapses. We define specific parameteres for the growth of these elements. Growth rules are defined using growth curves, in our case we used a simple linear growth curve. A simple implementation used by NEST can be found here.
The source code for these implementations are openly available. Do you think the model is translateable to the NeuroML framework?

1 Like

The description of the initial phase of the model is certainly something that can be expressed in NeuroML. No problem there.

The question is: how do the structural plasticity rules etc. be described in NeuroML so that they can be translated to all simulators (not just NEST). I know how it works in NEST (I contributed some code to it)—but that’s an internal NEST thing. As a user, we don’t express these rules explicitly ourselves—they’re already implemented in NEST and we simply provide parameters to use the rules. The “intracellular calcium concentration” bit is also an abstract proxy of neuronal activity that is also specific to NEST—neuronal models don’t tend to include this either, so if you look at the NeuroML cell models, they won’t have this bit in the same way that NEST does:

https://docs.neuroml.org/Userdocs/Schemas/Cells.html

Let me have a chat with Padraig tomorrow and see what this would require.

In the meantime, maybe take a look at the NeuroML examples/standard just to get an idea of how it all works?

I see, I get your question now.
I could imagine using extensions of the baseConductanceBasedSynapse, for instance, the expOneSynapse to create an implementation of the homeostatic growth rule. We could reimagine the structural aspect in terms of a more functional synapse.
If this isn’t an option, then we could try to implement the stabilised Brunel networks that we use as a base for our simulations. We have used non-plastic networks as well, in our study, where we found dose-dependent network responses to perturbations. We used this to inform our model on brain stimulation, which was quite insightful. Having such a framework in NeuroML would be a great step, I think.

Yes, it’ll require a new implementation, which unfortunately will be too large a project for GSoC—it requires extension of the standard and the whole tool chain.

There’s this:

Sure, that sounds more doable as the GSoC project. Is the code for these available somewhere?

@here: please do start working on your proposals if you haven’t already. Do note that we’ll be able to provide feedback for proposals sent to us until the end of Wednesday only (since Friday and Monday are both holidays here in the UK, so we won’t be working from Friday all the way until Tuesday morning when your submissions are due)

Hi @sanjayankur31

I do have the code fully implemented and available at this repository: GitHub - swathianil/homeostatic_structural_plasticity_rTMS: This reporsitory hosts simulation files, data and plotting notebooks supporting the preprint 'Repetitive transcranial magnetic stimulation (rTMS) triggers dose-dependent homeostatic rewiring in recurrent neuronal networks' by Anil et.al., 2023.

Since the Brunel network is already implemented in PyNN, this project could focus on implementing a model of brain stimulation over this exisiting network. rTMS could be modeled as a use case scenario, with the ability to simulate different kinds of stimulation protocols. The immediate effect of stimulation would be readout in the firing rate of affected neurons.
I’m working on a proposal with this framework. Any feedback would be very helpful!
Best,
Swathi

1 Like

Sure, that’s worth looking into.

Everyone @here: thanks very much for all your work so far. I just want to remind everyone that we don’t yet know how many slots we’ll receive from Google and so, we don’t know how many projects we’ll be able to accept. But please, do submit your proposals, we’ll try to accept as many as we can manage.

1 Like