openworm / OpenWorm

Repository for the main Dockerfile with the OpenWorm software stack and project-wide issues
http://openworm.org
MIT License
2.67k stars 209 forks source link

Create or reuse a NeuroML description of C. elegans motor neuron synapses #124

Closed slarson closed 6 years ago

slarson commented 11 years ago

This paper describes physiology of graded synapses onto muscles in the c. elegans.

Here is a link to a list of synaptic models described in NeuroML

We need to evaluate the paper and determine which, if any, of the default synaptic models most closely match the synapses described in the paper. If none are sufficient, we need to come up with a recommendation for what more we need and implement it.

slarson commented 10 years ago

@rayner and I had a good session going over the paper just now. Some interesting take aways from the paper.

Two families of Acetylcholine receptors are implicated as responsible for transmitting the graded potential from motor neurons to synapses: the nicotine-sensitive and levamisole- sensitive receptors, but a single GABA receptor type does. Reference here.

On the pre-synaptic side of the equation, it looks like the synapses are fairly simple.

The paper makes comparisons to synapses in the retina. It will be useful to see what computational models exist for retina that could have comparable synapses. Unfortunate it looks like Open Source Brain doesn't have any yet but maybe we can dig some up in the literature.

After we have identified the receptor types, we'll want to start setting up a neuroConstruct / NEURON subproject that will let us plug in synapses and receptors so we can start to fit to the data from this paper and then identify a handful of candidates to begin playing with.

The final words of the paper are important for understanding the reason to go the level of detail we are building into the connectome: "One of the goals of studies of C. elegans is to understand how circuits produce behavior. Knowing the connectivity and whether a synapse is excitatory of inhibitory will not suffice. Graded release suggests that the output of a circuit may be a shifting integration of analog inputs. Moveover, use-dependent plasticity will change the character of synapses during behavior. Modeling behavior must move beyond arithmetic."

slarson commented 10 years ago

More progress with @rayner today. We have taken the following steps:

  1. Opened up the neuroConstruct project with the CElegansNeuroML
  2. Loaded the MDL08_Connections configuration
  3. On Generate Tab, click on NCM_AS1_MDL08 underlined connection
  4. Go to the network tab and scroll until you see NCM_AS1_MDL08 highlighted
  5. See the synapse type is Acetylcholine
  6. Go to cell mechanisms tab to investigate the Acetylcholine cell mechanism separately
  7. Edit selected cell mechanism when Acetylcholine is selected
  8. Click generate associated plots to see the graph of the current density vs. time

We've also generated a simulation, run it in NEURON, and seem the results in neuroConstruct. So far the network isn't doing very much, so we are obviously not sending any input into the network. We left it at figuring out how to put input into the network before we had to go.

rayner commented 10 years ago

Okay, I'm getting somewhere with the simulation inputs:

  1. On the Input/Output tab, create or edit an electrophysiological input to one of the cells in the MDL08_Connections network (e.g. cell group AS1, single segment, current clamp)
  2. Also on the Input/Output tab, in the list of plots at the bottom of the window, select any cell you're interested in (e.g. AS1) and click "Edit selected plot". In the dropdown for "Plot values during simulation, save them, or both", select "Plot and save".
  3. Go to the Generate tab and click "Edit simulation configs".
  4. In "Electrical inputs included in this simulation configuration", tick your required inputs and click Close.
  5. Click "Generate cell positions and connections".
  6. Go to the Export tab and click "Create hoc simulation" and then "Run simulation".

I'm now getting graphs of what the electrical potentials of the cells are doing as they receive the inputs. I can also use the Visualization tab to view the changing voltages on the 3D model.

slarson commented 10 years ago

@rayner great job! great starting point for our next session.

JimHokanson commented 10 years ago

At our meeting today it was suggested that because of the non-standard nature of the synapses work should start in NEURON with getting everything as desired, and then when things are finished be incorporated into NeuroML and NeuroConstruct.

Additionally, where possible, I'd like to see documentation and/or comments in code which elaborate on how the paper and the data contained within are guiding the modeling. Ideally this isn't too much extra work as much as much as it is placing in a publicly accessible location notes that are being generated any way.

slarson commented 10 years ago

Current challenge is that while we've found out how to stimulate a motor neuron, we aren't seeing the muscle cell activity make any changes. We tried an experiment of stimulated the muscle cell directly and that worked fine, so independently they both work. We think the simulation configuration may be missing something that establishes the synapse appropriately, though a bunch of spot checking suggests everything is there.

In the image below, the graph on the left is the motor neuron that is stimulated, but on the right the muscle cell which is not changing activity at all.

screenshot 2014-04-30 12 43 06

@pgleeson @JimHokanson -- we are still playing with neuroConstruct at first because @rayner is still wrapping his head around NEURON and neuroConstruct provides a useful starting interface to understand this rather complex model. He's reading the NEURON book now to get more into NEURON directly, and doing some troubleshooting at the generated NEURON file level may be what is needed to see neuron to muscle cell synaptic transmission.

@pgleeson if you can think of some reason why the synapse between DB1 and MDL08 would not work, please let us know

@JimHokanson On "I'd like to see documentation and/or comments in code which elaborate on how the paper and the data contained within are guiding the modeling" -- we went through the paper in an hour a few weeks back figure by figure to understand the experiments that were done. In essence, the paper is about doing electrophysiology recordings directly from c. elegans muscle cells. At first they stimulate the muscle cells directly with the recording electrode and show what the baseline activity looks like. Then they stimulate either Acetylcholine motor neurons or GABA motor neurons using light-sensitive channels and show what the post-synaptic currents in the muscle cell look like.

screenshot 2014-04-30 13 18 09

Figure 5c in the paper (above) shows example traces of post-synaptic currents induced in the muscle cell from stimulations of either type of motor neuron (Acetylcholine or GABA). We'd like to have our model's post-synaptic currents look like this too. But to even get started, we need to understand the model we have to know where the knobs are that we would need to tune to get there.

Next action: Get the synapse working which will be shown when stimulating the motor neuron leads to a stimulation in the muscle cell without stimulating the muscle cell directly.

JimHokanson commented 10 years ago

@slarson Where (web address) is the code from the screen shot? I haven't dealt too much with synapses in NEURON but I'm pretty used to NEURON so I might be able to help out.

slarson commented 10 years ago

@JimHokanson It is the CElegansNeuroML project, using the MDL08_Connections configuration, then generated using the steps that @rayner describes in an earlier comment in this thread. There's a quickstart bundle with that plus neuroConstruct that you could download.

@rayner maybe we should bundle up the directory with all the generated NEURON code prior to adding the input to the MDL08 muscle cell and put it up somewhere? That way @JimHokanson can start directly with NEURON and skip the neuroConstruct part.

rayner commented 10 years ago

I've put the NEURON code generated from neuroConstruct up on Dropbox here:

Simulation with no electrical inputs: https://www.dropbox.com/s/hs25oac3fzfhtvg/MDL08_sim_without_inputs.zip

Simulation with current clamp input to DB1 neuron: https://www.dropbox.com/s/c0408lfdzu34q7v/MDL08_sim_with_DB1_input.zip

Simulation with current clamp input to MDL08 muscle cell: https://www.dropbox.com/s/vxxaeowqw8bw72i/MDL08_sim_with_MDL08_input.zip

I'm totally new to NEURON, so right now I'm just reading through The NEURON Book (thanks, @slarson!) to figure out how the model works and what I'm supposed to be doing with it.

pgleeson commented 10 years ago

Try the latest committed version of the neuroConstruct project. For the sim config MDL08_Connections, I've added some inputs on 3 presynaptic cells (offset by 100ms) and plotted these & post syn cell

selection_059

The differences in height on the responses are due to the numbers of synaptic connections from each presyn cell.

Try adding these for all cells & see responses. The issue with nonresponsive connections @slarson mentioned may have been due to simulating the cell at the soma, but the point of connection to the muscle was far away, and v at the presynaptic conn point was < 0 when it arrived there, so no transmission. I've modified the connectivity scheme in nC for these 8 connections to try to get a close connection, but they're still longish (see green-red lines above).

Ideally a NeuroML 2 file with "ideal" connection locations should be generated for this (based on https://github.com/openworm/CElegansNeuroML/blob/master/CElegans/pythonScripts/RegenerateConnectome.py)

slarson commented 10 years ago

@rayner have you been able to get this to work yet?

rayner commented 10 years ago

@slarson Yes -- I've got the latest version of neuroConstruct (many thanks, @pgleeson!), and can now see postsynaptic responses as described above. I'll post an update on progress after we've had our meeting later today.

slarson commented 10 years ago

Update on this issue: @rayner has been reading the NEURON book, and also had a look into the Muscle Model and managed to run it. We've made an update to an issue that seeks to convert the model into a full NeuroML2 representation with the thinking that we want to incorporate the muscle model into the neuroConstruct project, but not until we know that it matches the original.

Big picture here -- In order to know that our synapse is working correctly, we need to have a muscle that is working correctly because the dynamics of the synapse are "read out" by looking at the post synaptic current in the muscle cell. Without a muscle cell that has reasonable dynamics, it is harder to test and evaluate the quality of the synapse model.

slarson commented 10 years ago

@rayner will read the muscle cell paper as well to get familiarized and try to replicate the I-V plots

slarson commented 10 years ago

Important to note that there are run instructions for the muscle model up here, which Rayner will next try to execute

slarson commented 9 years ago

@ahrasheed also check this one out

Sipedon commented 9 years ago

Hello, I am new to OpenWorm and would like to know if there are any research oriented projects that I could work on and be of assistance to all of you. If you could message me about possible candidates I would be very grateful. Thank you.

slarson commented 9 years ago

@Sipedon check out this thread and this hangout for the latest on issues related to this. Keep your eye on the discuss list for the next meeting of the Muscle / Neuron group related to this stuff.

slarson commented 6 years ago

I believe this effort has been incorporated into the latest c302 for some time now. Closing.