c302 icon indicating copy to clipboard operation
c302 copied to clipboard

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

Open YmShan opened this issue 2 years ago • 3 comments

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" />

YmShan avatar Nov 27 '23 07:11 YmShan

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

pgleeson avatar Nov 28 '23 18:11 pgleeson

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  

YmShan avatar Nov 30 '23 10:11 YmShan

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

pgleeson avatar Dec 06 '23 19:12 pgleeson