Skip to content

Instantly share code, notes, and snippets.

@slarson
Created January 30, 2013 18:42
Show Gist options
  • Save slarson/4675596 to your computer and use it in GitHub Desktop.
Save slarson/4675596 to your computer and use it in GitHub Desktop.
OpenWorm Office Hours 1/30/13
09:20] == JimLacey [~androirc@212.183.128.38] has joined #openworm-office
[09:20] <@OpenWorm> Hi Jim
[09:21] <JimLacey> Hi got an android irc client this time. Much better :-)
[09:21] <@OpenWorm> Cool!
[09:22] <JimLacey> You're all here early, thought I would test before anyone joined
[09:30] <vellamike> I think we are ready to begin?
[09:31] <@OpenWorm> Yes -- hi everyone
[09:31] <vellamike> hello all
[09:31] <john_idol> hi
[09:32] <@OpenWorm> We started up a conversation on our discuss mailing list about multi-compartmental neuronal solvers -- this might be a good topic to carry into this session
[09:32] <@OpenWorm> Since Jim here was the one kicking that conversation off
[09:32] <@OpenWorm> Jim -- did you get a chance to
[09:32] <@OpenWorm> read what Robert cannon wrote?
[09:33] <JimLacey> Yeah i read the post but havent checked out the code he linked to yet.
[09:34] <vellamike> I'm afraid I don't fully understand his email.
[09:34] == caprea [c6ca4431@gateway/web/freenode/ip.198.202.68.49] has joined #openworm-office
[09:34] <vellamike> what does he mean by "extended cells"
[09:35] <xrazybud> how can i join this mailing list?
[09:35] <@OpenWorm> let me send the URL
[09:36] <@OpenWorm> openworm-discuss.googlegroups.com
[09:37] <@OpenWorm> Robert's email, Mike?
[09:37] <@OpenWorm> Hi caprea!
[09:38] <caprea> Hello
[09:38] <xrazybud> that link doesn't work for me :(
[09:39] <vellamike> @OpenWorm - yes
[09:39] <JimLacey> I'd assumed extended cells just meant extending the model to multicompartmental
[09:39] <vellamike> I think by extended cells he means multicompartmental
[09:39] <@OpenWorm> OK how about: https://groups.google.com/forum/#!forum/openworm-discuss
[09:40] <xrazybud> ok thanks that one works
[09:40] <slarson> Specifically this thread: https://groups.google.com/forum/#!topic/openworm-discuss/wKQArqGBbQw
[09:40] <vellamike> now, I'm of the view that LEMS should specify "what the model is in terms of geometry and equations" as he describes
[09:41] <vellamike> however, the fact that it can be solved as a 1D system over a tree
[09:41] <vellamike> should be the job of the simulator
[09:41] <vellamike> I *think*
[09:41] == Tim_ [480143e9@gateway/web/freenode/ip.72.1.67.233] has joined #openworm-office
[09:41] <@OpenWorm> The original version of our neuronal simulator was written by John_idol
[09:42] <@OpenWorm> https://github.com/openworm/org.openworm.simulationengine.samplesolver
[09:42] <@OpenWorm> To run it, you need to put together several modules to make the whole Geppetto engine
[09:42] <@OpenWorm> Not unlike Voltron ;)
[09:42] <@OpenWorm> Well I guess the separate robots worked independently with Voltron
[09:43] <@OpenWorm> so maybe not like that haha :)
[09:43] <@OpenWorm> Anyway, the proposal would be to incorporate LEMS into a module like the sample solver
[09:43] <vellamike> do we have UML diagrams anywhere for the neural simulator, either as it exists or as it is propsed?
[09:43] <@OpenWorm> And then extend LEMS (JLEMS) to support "extended cells" or multi-compartmental models.
[09:44] <@OpenWorm> I think @John_idol has something like this, @vellamike
[09:44] <@OpenWorm> Hi Tim_!
[09:45] == JimLacey [~androirc@212.183.128.38] has quit [Remote host closed the connection]
[09:45] == JimLacey [~androirc@212.183.128.38] has joined #openworm-office
[09:45] == AndroUser [~androirc@212.183.128.38] has joined #openworm-office
[09:46] <vellamike> OK. It is unclear to me whether this extension of LEMS is wise
[09:46] <AndroUser> Whats JLEMS?
[09:46] <@OpenWorm> Why so?
[09:46] <AndroUser> Damn im jimlacey lol
[09:47] <slarson> https://github.com/robertcannon/jLEMS
[09:47] <@OpenWorm> That's the JLEMS GitHub repo
[09:47] <@OpenWorm> LEMS is the engine that reads, validates, and provides basic solving for NeuroML 2.0
[09:47] <vellamike> Because LEMS, as it is described on the website, can be used to rigorously detail the mathematics of biophysical processes
[09:48] == srd| [~srd@cpc5-sgyl34-2-0-cust276.sgyl.cable.virginmedia.com] has joined #openworm-office
[09:48] <vellamike> the multicopmartimental extension is more about telling a simulator what to do with those biophysical processes
[09:48] <@OpenWorm> It also incoporates parts of SBML: http://www.neuroml.org/files/NML2011_LEMSMappings_PG.pdf
[09:48] <vellamike> (admittedley, this depends on how you look at it)
[09:48] <@OpenWorm> Hi srd!
[09:48] <@OpenWorm> Ok AndroUser -- we know you are Jim :)
[09:49] <@OpenWorm> @vellamike -- i don't understand why that is a bad thing?
[09:50] <vellamike> channel definitions, pulsegenerators etc...all of these are biophysical phenomena which it makes sense to describe using LEMS
[09:50] <vellamike> @OpenWorm - because it's confusing
[09:50] <@OpenWorm> OK
[09:50] <@OpenWorm> confusing how?
[09:50] <vellamike> I can't look at LEMS and think "LEMS has mission statement X"
[09:51] <vellamike> as I see it, LEMS should tell the simulator what the biophysical processes *are* in terms of mathematics
[09:52] <vellamike> it should be up to the simulator to decide *what to do with that*
[09:52] <@OpenWorm> Well that's up to LEMS to clarify it. But from the infrastructure perspective, I think you want the system that defines all that biophysical stuff to also be run multi-compartmental models
[09:52] <@OpenWorm> also be running* multi-compartmental models
[09:52] <vellamike> but there's no reason right now why LEMS can't run multi-compartmental models
[09:53] <@OpenWorm> except that it can't...
[09:53] <@OpenWorm> ;)
[09:53] <vellamike> when people say it can't run multicompartmental models what they mean is "it's mostly up to the simulator to decide how these compartments interact"
[09:53] <vellamike> sure it can
[09:53] <@OpenWorm> the reason is practical -- the engineering has not been done
[09:54] <vellamike> I can define a multicompartmental model in NeuroML with all the channels defined in LEMS, it's not a problem
[09:54] <@OpenWorm> There is exactly one simulator right now capable of doing multi-compartmental neurons and it is stand-alone and not modular
[09:54] <@OpenWorm> But you can't simulate it
[09:55] <vellamike> @OpenWorm NEURON and Moose can both do it?
[09:55] <AndroUser> Could you also implement the optimisations in neuroml or would they need to be in lems?
[09:55] <@OpenWorm> OK Moose, that's true
[09:55] <@OpenWorm> @AndroUser I guess that is what we are sorting out
[09:56] <vellamike> @OpenWorm sure you can simulate it, check out example 2: http://pyramidal.readthedocs.org/en/latest/examples.html#example-2-hodgkin-huxley-single-compartmental-simulations
[09:56] <@OpenWorm> So there is the description of the model, which is NeuroML / SBML / LEMS. But LEMS also plays a more active role as an API to those descriptions, and does some basic "simulation". So Mike is saying don't make JLEMS the simulator.
[09:57] <vellamike> The whole argument about LEMS supporting multicompartmental models to my mind is extremely confusing because "support" has never been defined
[09:58] <@OpenWorm> your example is single compartmental simulations
[09:58] <@OpenWorm> I'm glad we are having this conversation. So the question is -- why does Robert Cannon, author of JLEMS, think you can't simulate multi-compartmental models.
[09:58] <@OpenWorm> (using JLEMS)
[09:59] <vellamike> @OpenWorm - exactly, they need JLEMS to be a simulator of just about anything, LEMS would then have to contain the dynamics of how compartments interact (mainly by exchanginh electrical charge), but for every other simulator which knows anything about multi-compartmental modelling this is not needed
[10:00] <vellamike> @OpenWorm - As I understand it, when he says LEMS does not support multi-compartmental modelling he means "LEMS cannot tell the simulator how the voltage in one compartment should influence it's current flow into the others"
[10:00] <@OpenWorm> Why is that not needed? I think you and I may have a different concept about what a multi-compartmental simulator is doing. Are you saying it just hooks together single compartments?
[10:00] <vellamike> So it would be up to the simulator - and simulator independence is lost
[10:00] <vellamike> it's extremely academic
[10:01] <@OpenWorm> BTW I realize we are having a dialogue here -- do other folks have questions / clarifications / or want to jump in?
[10:02] <xrazybud> i don't know enough about what you guys are talking about :P
[10:02] <vellamike> It's not needed in the sense that with a simulator like NEURON or Moose if you specify the channels/passive properties etc in LEMS, and model (morphology, synapses etc) in neuroml - the simulators don't need more information to start simulating
[10:02] <xrazybud> maybe this could be the time to define what a multi-compartmental simulator is doing
[10:02] <@OpenWorm> Mike, did you mean to point to example 3-- that seems like the more relevant one, no?
[10:03] <@OpenWorm> @xrazybud yes good point
[10:04] <@OpenWorm> to simulate a neuron at a level of detail that lets you compare with real neurons, you use a bunch of equations loosely known as "hodgkin huxley"-like equations or "conductance-based" equations
[10:04] <vellamike> @OpenWorm sorry yes
[10:04] <@OpenWorm> those equations tell you how voltage changes on either side of a cell membrane -- the cell membrane of a neuron
[10:05] <xrazybud> might be related to my question...
[10:05] <@OpenWorm> some simple models of neurons assume that the entire cell has only one "compartment" -- think of it as a sphere that defines the whole cell
[10:05] <@OpenWorm> but we know that neurons have more complicated geometries -- they are trees
[10:06] <@OpenWorm> so multi-compartmental models of neurons take a tree and break them down into little cylinders along the trunk and branches
[10:06] <xrazybud> i see
[10:06] <@OpenWorm> each of those cylinders are separate compartments and can have different parameters
[10:06] <@OpenWorm> but they all use the same basic system of equations as in a single compartment
[10:06] <@OpenWorm> so the real difference is in how the multiple compartments exchange voltage values in between them
[10:07] <xrazybud> on the same neuron?
[10:07] <@OpenWorm> the simulator we are talking about is code that can handle that process
[10:07] == JimLacey [~androirc@212.183.128.38] has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
[10:07] <@OpenWorm> yes, on the same neuron. but of course there are also connections between neurons, and it handles that too, but in a somewhat different way (synapses)
[10:07] == AndroUser [~androirc@212.183.128.38] has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
[10:08] <srd|> hi OpenWorm!
[10:08] == JimLacey [~androirc@212.183.128.38] has joined #openworm-office
[10:08] <@OpenWorm> Mike -- cool that you are doing a multi-compartmental example in Pyramidal! I had not digested this before
[10:08] <vellamike> @OpenWorm cheers :)
[10:09] <srd|> OpenWorm: have you considered stating the office hour schedule in the channel topic?
[10:10] <vellamike> srd: good idea, we've become slightly distracted
[10:10] <@OpenWorm> OK, so where we are in the discussion is on the question of reuse of Moose / Neuron or implementing a more modular neuronal solver like the sample @john_idol created
[10:10] <JimLacey> GTG prod issues, laters all!
[10:11] == JimLacey [~androirc@212.183.128.38] has quit [Client Quit]
[10:12] <@OpenWorm> Here's the problem with the monolithic simulators in my mind -- you need to have memory-level access to what they are doing in order to cross them over with other simulators. Mike, you have taken the first crack at this with the SPH integration so I'd think you can appreciate this, no?
[10:13] == OpenWorm changed the topic of #openworm-office to: Office hours schedule is every two weeks around 17:30 GMT. More info here: https://github.com/openworm/OpenWorm/wiki/Office-Hours
[10:13] <vellamike> reuse of Moose/NEURON Pros: less work, known to be stable, implementing our own pros: We will know how it works, supports GPUs, it will be fun to make
[10:13] <srd|> if we're talking about the practicalities of simulating dendrites, I should probably mention the algorithm I published with Quentin Caudron published and Yulia Timofeeva last year
[10:14] <vellamike> @OpenWorm: that's actually not quite correct
[10:14] <srd|> http://www.mathematical-neuroscience.com/content/2/1/11
[10:14] <slarson> tell us more, srd|
[10:14] <vellamike> srd: can you send a link please
[10:14] <vellamike> oops you're way ahead of me
[10:14] <slarson> cool
[10:14] <srd|> direct link to pdf http://www.mathematical-neuroscience.com/content/pdf/2190-8567-2-11.pdf
[10:14] <srd|> :)
[10:14] <slarson> how does this compare to Hines 1984?
[10:14] <srd|> link?
[10:16] <@OpenWorm> http://www.neuron.yale.edu/ftp/neuron/papers/effic84.pdf
[10:16] <srd|> based on Abbott (1990,91,92), we derived an algorithm that analytically computes the green's function for passive dendrites in the time domain
[10:17] <vellamike> srd: can this fit in with dendrites with conductances?
[10:17] <srd|> not dendrites with time-dependent or voltage-dependent conductances, no
[10:18] <srd|> at the cost of going into the laplace domain, the algorithm cna in theory be extended to the resonant/quasi-active dendrite model
[10:19] <@OpenWorm> what cells have dendrites without voltage dependent conductances?
[10:19] <vellamike> srd: unfortunately we will be dealing solely with active dendrites
[10:21] <@OpenWorm> Its a cool method though
[10:21] <@OpenWorm> So other folks have questions?
[10:21] <srd|> linear quasi-active dendrites are described here http://eprints.nottingham.ac.uk/493/
[10:22] <@OpenWorm> We posted some screenshots of a reduced model of specific motor neurons and one muscle cell on Google+ today: https://plus.google.com/b/117948341754627144949/117948341754627144949/posts/czAjdKMCess
[10:22] <@OpenWorm> What do you mean by "quasi-active"?
[10:23] <vellamike> srd: this looks like quite a read, I may have to get back to you on it
[10:23] <vellamike> srd: which of these authors are you?
[10:24] <srd|> Simon R Donnelly
[10:25] <srd|> by quasi-active I mean a linear approximation to active dendrites, in which each infinitesimal dendritic compartment consists of a resistor, capacitor, and inductor, as opposed to the resistor and capacitor of the classical passive dendrite compartment
[10:26] <@OpenWorm> Ok @srd| --pretty interesting
[10:27] == Skei [~Quentin@unaffiliated/noeve] has joined #openworm-office
[10:27] <Skei> Morning all.
[10:27] <@OpenWorm> Hi Skei!
[10:27] <xrazybud> morning
[10:27] <@OpenWorm> Got any questions or comments for us?
[10:28] <Skei> How's everyone ?
[10:28] <vellamike> late evening here ;)
[10:28] <srd|> (skei is the first author of http://www.mathematical-neuroscience.com/content/2/1/11 , and is a bit more knowledgeable about the resonant dendrite model)
[10:28] == earlybird [84efb6d7@gateway/web/freenode/ip.132.239.182.215] has joined #openworm-office
[10:28] <Skei> vellamike, nah, it's always morning :P
[10:29] <@OpenWorm> hi @earlybird!
[10:29] <@OpenWorm> very cool
[10:29] <xrazybud> almost noon here
[10:30] <vellamike> I'll read thiese papers and get back to you guys, my first impression is that the inability to include transients resulting from calcium/potassium dynamics will be a limit to us in terms of modelling c. Elegans
[10:30] <earlybird> hi there
[10:30] <earlybird> kind of late
[10:30] <earlybird> just wanted to see what was going on in here
[10:32] <xrazybud> how is excitation and inhibition in neurons handled in openworm?
[10:32] == john_idol [562952df@gateway/web/freenode/ip.86.41.82.223] has quit [Quit: Page closed]
[10:33] <vellamike> xrazybud: Inhibition and excitation will be handled via synapses
[10:33] <@OpenWorm> @xrazybud -- different neurotransmitters and receptors are encoded in our model of the nervous system. Some of those include Glutamate "excitatory" and GABA "inhibitory"
[10:34] <vellamike> I've got to go chaps! sorry not to go into more detail xrazybud - I'm sure stephen larson (@OpenWorm) can give a more detailed response to your question
[10:34] == vellamike [836fb47d@gateway/web/freenode/ip.131.111.180.125] has quit [Quit: Page closed]
[10:36] <@OpenWorm> @xrazybud -- does that make sense?
[10:36] <@OpenWorm> any last questions, folks?
[10:37] <xrazybud> uhm... i'm kinda wondering how it all fits together... like how they would know what to do
[10:37] <@OpenWorm> i'll be signing off shortly
[10:38] <xrazybud> are they just initialized with a certain value and then things go from there, or?
[10:38] <xrazybud> kinda like how there could be neurons... but how would the know to be a worm?
[10:38] <xrazybud> how would they*
[10:39] <srd|> xrazybud: iirc the firing of the CE motoneurons will determine the contraction of the CE muscles and influence the behaviour of the worm model
[10:39] <earlybird> wormophilosophy - does it need to know how to be a worm to act like a worm?
[10:39] <@OpenWorm> yeah -- the "logic" part comes from the dynamics of the neurons interacting with each other. it is a little unintuitive but that's why makes up how it "thinks". So we are simulating those dynamics as well as we can rather than instructing it what to do when
[10:39] <srd|> of course that will require a good mechanical model of how CE muscles respond to stimulation
[10:40] <@OpenWorm> Right -- which we are building
[10:40] <srd|> without the muscles and appropriate sensory input, the neural network of CE would just be a neural network
[10:41] <xrazybud> ok i get it, thanks
[10:41] <@OpenWorm> The logic comes from the specific neurons, their specific connections, and their specific dynamics. If you had another set of neurons, with different dynamics and different connections, it wouldn't do what the worm does
[10:41] <srd|> xrazybud: it becomes a simulation of a worm when you add input and output corresponding to a model of the body and the surrounding world
[10:41] <@OpenWorm> Great questions
[10:41] <@OpenWorm> OK I have to sign off
[10:41] * srd| waves
[10:41] <@OpenWorm> thanks all for joining
[10:41] <@OpenWorm> We'll do this again in two weeks!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment