Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Porting the computation of C302 neural network operations to my neural morphology chip. #52

Open
Ym-Shan opened this issue Nov 27, 2023 · 3 comments
Assignees

Comments

@Ym-Shan
Copy link

Ym-Shan commented Nov 27, 2023

Hello, respected developer. I have two questions. The first one is that I want to transplant the neural network computation of C302 to my neural morphology chip. However, currently my neural morphology chip only supports C language, so how can I use C language to reconstruct the network structure of C302 and perform computation on my chip.
Secondly, I am currently well aware that the definition of network structure and neural network calculations that rely on stimulating cells all come from LEMS files, such as LEMS_c302_A_Full.xml. But when I was reading the LEMS file, I found that I couldn't find the three files described in the following code in the local environment, so I would like to ask where these three files are located.

    <Include file="Cells.xml" />
    <Include file="Networks.xml" />
    <Include file="Simulation.xml" />
@pgleeson pgleeson self-assigned this Nov 27, 2023
@pgleeson
Copy link
Member

Hi @Ym-Shan. Thanks for your interest in c302.
To answer your 2nd question, these files are part of the core neuroml component type descriptions, see here: https://github.com/NeuroML/NeuroML2/tree/master/NeuroML2CoreTypes
Docs on these are here: https://docs.neuroml.org/Userdocs/NeuroMLv2AndLEMS.html

The first question, on how you can go from the c302 network to C for your chip, that's more copmplicated. It depends on whether you want a full NeuroML->C pipeline, which, given that the full c302 has lots of elements from across NeuroML (cells, channels, synapses, morphologies), you would probably need.

See here: https://www.frontiersin.org/articles/10.3389/fninf.2018.00068/full for a review of the various techniques related to generating (optimised) code for neuronal simulations.
It's a big undertaking, well worth doing, but how much effort it is depends on the capabilities of your chip. I would suggest starting small (maybe just the muscle cell model: https://github.com/openworm/muscle_model/tree/master/NeuroML2), and bear in mind that c302 itself is not a fully tuned neural network for the worm (yet!). Even if you did reproduce the current network, it would not produce a biologically realistic output...

@Ym-Shan
Copy link
Author

Ym-Shan commented Nov 30, 2023

Thank you very much, it has been very helpful to me.
My current goal is to carefully read the LEMS file and find a way to reproduce the synapses, neurons, and ion channels between these 302 neurons on our chip using C language.
I also have a question about whether my simulation can exclude muscle cells. If I only want to simulate the data flow between neurons (similar to an artificial neural network), then I can take the network's output/log and put it on the computer for visualization using the following command:

pynml examples/LEMS_c302_C_Full.xml  

@pgleeson
Copy link
Member

pgleeson commented Dec 6, 2023

Sorry, can you be more explicit about what you are asking here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants