These are chat archives for openworm/ChannelWorm

29th
May 2015
Stephen Larson
@slarson
May 29 2015 16:30
Hi @pgleeson @VahidGh @travs @miladjafary
Travis Jacobs
@travs
May 29 2015 16:31
Hello!
Vahid Ghayoomie
@VahidGh
May 29 2015 16:31
Hi
Travis Jacobs
@travs
May 29 2015 16:31
I'm just going to dump the agenda so we can refer to it

ChannelWorm

Web app

  • Show-and-tell for Vahid & Milad's web app.

Optimization

  • what parameters need to be optimized for IV curve validation? VahidGh/ChannelWorm#43

Data

  • how to put data from the plots into pyopenworm VahidGh/ChannelWorm#44
    • what in pyopenworm needs to be there to make that happen
    • some way to store parallel columns of values?
    • started in "Data modelling" milestone
  • how do we fit the channel models into muscle and neuron models? VahidGh/ChannelWorm#45

Unification

  • how do we sync with interactions happening on the muscle and neuron modelling?
    • how can we make sure the models we make are reusable by these projects?

Neurotune (with Padraig)

  • what it would take to implement a NML2 model instead of the basket cell model
  • using pylems/jlems instead of NEURON? pgleeson/neurotune#2
  • installation issues pgleeson/neurotune#1
  • What about pushing Padraig's changes to the main forks of Neurotune and PyElectro, or having an OpenWorm fork?

PyOpenWorm

  • What else is crucial to the next release
    • Which issues?
  • Pushing to PyPi
  • Incorporating ChannelWorm branch changes?

Previously

  • Choosing figures from papers for digitization #39
  • Syncing the plan with digitization walkthrough in docs #37 #38
Hmm, bigger than I thought
Stephen Larson
@slarson
May 29 2015 16:33
hehe
cool
a good chunk of things
Vahid Ghayoomie
@VahidGh
May 29 2015 16:33
Yeah
Stephen Larson
@slarson
May 29 2015 16:34
I’m hoping to dig into some of the Neurotune topics first
as that involves all of us
Travis Jacobs
@travs
May 29 2015 16:34
Yeah me too
Did you see the changes Padraig just pushed?
Stephen Larson
@slarson
May 29 2015 16:34
No… :)
link?
Travis Jacobs
@travs
May 29 2015 16:34
He made an example3 and it's far simpler
yep 1 sec
Stephen Larson
@slarson
May 29 2015 16:35
brilliant
so glad we are finally getting practical with that stuff
Travis Jacobs
@travs
May 29 2015 16:36
Yes, this is awesome
Padraig Gleeson
@pgleeson
May 29 2015 16:37
Hi all.. as mentioned by mail, would this be better by hangout?
Milad Jafary
@miladjafary
May 29 2015 16:37
Hi everyone
Stephen Larson
@slarson
May 29 2015 16:37
Hey @pgleeson just sent mail
Not really -- the colleagues from Iran have trouble with the connection via hangouts frequently such that it is impossible to hear them / really get work done.
and they have to keep mucking around with proxies and such
which only stay working so long
Travis Jacobs
@travs
May 29 2015 16:38
Hey @miladjafary and @pgleeson
Padraig Gleeson
@pgleeson
May 29 2015 16:38
Ok, let me know if you get the 2 latest examples running...
Stephen Larson
@slarson
May 29 2015 16:38
so this is the lowest common denominator for the moment
Vahid Ghayoomie
@VahidGh
May 29 2015 16:38
@pgleeson Sorry again
Stephen Larson
@slarson
May 29 2015 16:38
which anyway has some advantages because of the archive
Travis Jacobs
@travs
May 29 2015 16:38
@pgleeson I have ex3 going fine
Padraig Gleeson
@pgleeson
May 29 2015 16:38
No problem...
Stephen Larson
@slarson
May 29 2015 16:38
no worries @VahidGh — nobody thinks its your fault :)
so Travs, can you walk us through the Neurotune part of the agenda?
Travis Jacobs
@travs
May 29 2015 16:40
Yes, no problem
The first thing is to thank Padraig, for the new examples. I had a chance to check out ex3 and it is making more sense to me
A few more issues have been raised over the last few days
Padraig Gleeson
@pgleeson
May 29 2015 16:41
In brief, example 3 makes it easier to play with params for optimization to check for speed of convergence & adds a number of plotting options. Ex4 is a "point based" as opposed to voltage trace analysis based example, i.e. matches targte behaviour to optimised version at specific points e.g. t=100ms. Will be better for matching IV curves
Stephen Larson
@slarson
May 29 2015 16:41
Yes, definitely, thank you for that Padraig
Padraig Gleeson
@pgleeson
May 29 2015 16:41
Might need latest pyelectro too...
Travis Jacobs
@travs
May 29 2015 16:42
Yes, I tried ex4 and got an error so I'll pull that and it will be fixed I believe
The first issue was "what it would take to implement a NML2 model instead of the basket cell model"
pgleeson/neurotune#3
Stephen Larson
@slarson
May 29 2015 16:42
Looping in @VahidGh and @miladjafary — you guys have been working with neurotune as well I’ve noticed, correct?
Vahid Ghayoomie
@VahidGh
May 29 2015 16:43
@slarson, yes
And I've started implementing our own fitter+optimizer
Stephen Larson
@slarson
May 29 2015 16:44
cool — so yeah, this issue that @travs points to here specifically tries to see what it would take to optimize channel models
expressed in NML2
Travis Jacobs
@travs
May 29 2015 16:45
Where is this development taking place? @VahidGh
Vahid Ghayoomie
@VahidGh
May 29 2015 16:45
I hoped I could lunch it today, unfortunately couldn't finish it
it's local still
Travis Jacobs
@travs
May 29 2015 16:46
Ok gotcha
Vahid Ghayoomie
@VahidGh
May 29 2015 16:47
I hope I would finally release the first version by the end of this week
Travis Jacobs
@travs
May 29 2015 16:48
Right, and is this tied to the web app somehow?
Stephen Larson
@slarson
May 29 2015 16:48
So @pgleeson — opinions on pgleeson/neurotune#3 ?
Milad Jafary
@miladjafary
May 29 2015 16:48
also we design a simple data model .
Vahid Ghayoomie
@VahidGh
May 29 2015 16:49
@travs, yes, we are getting some parameters from users in addition to figures
Stephen Larson
@slarson
May 29 2015 16:51
@VahidGh cool — we’re putting some effort in to see about reuse of neurotune beyond what has been done so far
Vahid Ghayoomie
@VahidGh
May 29 2015 16:51
@slarson, As I mentioned in #43
Stephen Larson
@slarson
May 29 2015 16:51
@travs and I have been recognizing the install difficulties, but also that it is already reusing some good processes for optimization under the hood. what is that library it relies on again, @travs ?
Travis Jacobs
@travs
May 29 2015 16:52
@slarson inspyred
Stephen Larson
@slarson
May 29 2015 16:53
ah yes
I see #43 @VahidGh — you are saying you need some additional functions
Travis Jacobs
@travs
May 29 2015 16:53
In fact, with the new example by @pgleeson (without NEURON) it runs fine
Stephen Larson
@slarson
May 29 2015 16:53
Looking at inspyred, I’m wondering if you have evaluated it
Padraig Gleeson
@pgleeson
May 29 2015 16:53
Commenting on that in the issue : pgleeson/neurotune#3
Vahid Ghayoomie
@VahidGh
May 29 2015 16:53
Yes
Stephen Larson
@slarson
May 29 2015 16:53
I wonder if functions you are missing are in inspyred — have you had a chance to dig into it?
Padraig Gleeson
@pgleeson
May 29 2015 16:53
@travs better to record these responses in the relevant issue?
Stephen Larson
@slarson
May 29 2015 16:54
@pgleeson good point — we should balance comments in here with comments out there
Vahid Ghayoomie
@VahidGh
May 29 2015 16:54
@slarson, yes I was playing with inspyred too
Stephen Larson
@slarson
May 29 2015 16:54
just hard to have a quick back and forth on the issue
Travis Jacobs
@travs
May 29 2015 16:54
@pgleeson Good point
Vahid Ghayoomie
@VahidGh
May 29 2015 16:55
We need different kinds of evaluation function we need
Stephen Larson
@slarson
May 29 2015 16:56
for example?
Vahid Ghayoomie
@VahidGh
May 29 2015 16:56
I've implemented an IClamp and VClamp to simulate the experiment to get I/V curve
Stephen Larson
@slarson
May 29 2015 16:57
Are you able to extend Inspyred rather than build from scratch, or have you taken the scratch approach?
Vahid Ghayoomie
@VahidGh
May 29 2015 16:58
But the difference here is that we need to include different voltage steps for example in a patch clamp simulation
Stephen Larson
@slarson
May 29 2015 16:58
ah yes
Vahid Ghayoomie
@VahidGh
May 29 2015 16:58
And finally calculate total cost
Stephen Larson
@slarson
May 29 2015 16:58
i remember that was something that Mike Vella was wanting to implement but wasn’t straightforward
Vahid Ghayoomie
@VahidGh
May 29 2015 16:59
I've used the optimization class from Neurotune which uses inspyred
But with different evaluation functions than pyelectro
Stephen Larson
@slarson
May 29 2015 16:59
i see, cool
so you are building on Neurotune — awesome :)
Padraig Gleeson
@pgleeson
May 29 2015 17:00
If the IClamp simulation saves t and v values, the latest example 4 could be used to match points from your v/t to the simulated v/t
Vahid Ghayoomie
@VahidGh
May 29 2015 17:00
Yes, somehow
@pgleeson, yes, today I was working on the same thing
Padraig Gleeson
@pgleeson
May 29 2015 17:01
@VahidGh great!
Vahid Ghayoomie
@VahidGh
May 29 2015 17:01
But the problem is most of the papers have VClamp figures
So I had to write another class
Padraig Gleeson
@pgleeson
May 29 2015 17:02
@travs did you manage to get Neuron installed from source and compiling mod files? That's a prerequisite to using it for neurotune...
Travis Jacobs
@travs
May 29 2015 17:03
Yeah, I have Neuron installed and it seems to be working. The optimization script fails at the last step, which is printing out the plots
Vahid Ghayoomie
@VahidGh
May 29 2015 17:03
And as I said before another problem is that we need the patch clamp experiment with different stimulation currents or holding potentials, so we need to calculate the cost with the same simulation
Padraig Gleeson
@pgleeson
May 29 2015 17:03
@VahidGh If your saves V (x axis) & I (y axis) values it can be used with example 4 I believe
@travs That sounds like an issue with matplot lib...
@VahidGh Example 5 (not written yet :smile: ) will have a NetworkAnalyser, which will be able to read back in multiple traces and optimise on targets across multiple traces. Will be needed for network optimisation (c302 full network) but will also be useful for multiple IV (or freq vs current) traces (figures in boyle cohen)
Vahid Ghayoomie
@VahidGh
May 29 2015 17:07
But how to get corresponding I from V/T output of the IClamp analysis?
Stephen Larson
@slarson
May 29 2015 17:11
anybody answering this? :)
NEURON supports this for sure, no?
Padraig Gleeson
@pgleeson
May 29 2015 17:11
Best way is
Best way is to save the currents from the current traces in the generated lems (running the vclamp up to the end of the simulation) and then in plot i vs voltage back in python
Stephen Larson
@slarson
May 29 2015 17:15
so this brings up the question in pgleeson/neurotune#2 — is there a desire / plan or is it even feasible to do Neurotune without NEURON in the loop
Vahid Ghayoomie
@VahidGh
May 29 2015 17:15
@pgleeson, great. Yes, at the first I was following this approach as you were using in c302tuner but it was a bit slow because of calling jnml for simulations. so I decided to write a code following Boyle & Cohen approach and save traces and then using them.
Padraig Gleeson
@pgleeson
May 29 2015 17:16
@slarson For multicompartmental neurons like mike's example Neuron is required. For single comp, like the example at https://github.com/openworm/CElegansNeuroML/blob/master/CElegans/pythonScripts/c302/tune/c302tuner.py, jNeuroML is fine, but much slower than neuron
Vahid Ghayoomie
@VahidGh
May 29 2015 17:18
Another challenging topic is the cost function
I have a plan to compare 2-3 approaches I've read about
Padraig Gleeson
@pgleeson
May 29 2015 17:19
@VahidGh If you want to use the python implementation of boyle/cohen, then you have full access to all variables. It will be faster too, but you need to implement a layer on top for the parameter management & also export values back to NeuroML
Vahid Ghayoomie
@VahidGh
May 29 2015 17:19
For now I'm just using a simple squared approach
@pgleeson, yes I'm doing exactly the same idea
Vahid Ghayoomie
@VahidGh
May 29 2015 17:25
My idea was to get the closest value from the simulated candidate to the digitized plot and calculate the cost, and then adding to final cost for that candidate
Stephen Larson
@slarson
May 29 2015 17:26
Ok so it seems like we’ve made meaningful progress on the neurotune issues and have some good progress going here. I’m seeing next actions as getting a chance to see @VahidGh ’s latest optimization code and following @pgleeson’s suggestions in pgleeson/neurotune#3 to try to do a channelml example or help him with one he may be working on.
Vahid Ghayoomie
@VahidGh
May 29 2015 17:26
In addition to I/V cost, I've considered IClamp and/or VClamp cost for every step we have digitized
Stephen Larson
@slarson
May 29 2015 17:27
@VahidGh have you also considered transforming the IClamp or VClamp over time into a phase plot and using the phase differences as a cost function as in Achard & DeSchutter ?
Vahid Ghayoomie
@VahidGh
May 29 2015 17:29
@slarson, yep, I'm working on the same idea but as the cost function is a bit experimental, I have to compare different functions. One is what you were suggested, the other is this approach
Padraig Gleeson
@pgleeson
May 29 2015 17:30
@VahidGh I thought there was a python script that reproduced the IClamp traces from Boyle & cohen? There is a https://github.com/openworm/muscle_model/blob/master/BoyleCohen2008/PythonSupport/Main_Version/vclamp.py
Vahid Ghayoomie
@VahidGh
May 29 2015 17:30
I need some playing and comparison for cost functions specific to these type of modeling
@pgleeson, yes, I'm using these codes
Stephen Larson
@slarson
May 29 2015 17:31
@VahidGh awesome. nice paper
Padraig Gleeson
@pgleeson
May 29 2015 17:31
But is there an iclamp.py?
Vahid Ghayoomie
@VahidGh
May 29 2015 17:31
with a bit more generic approach
No, I used the Matlab version to write it
Padraig Gleeson
@pgleeson
May 29 2015 17:33
@VahidGh A very useful paper...
Stephen Larson
@slarson
May 29 2015 17:33
As we’ve reached the end of the first hour, I wonder if we can turn to other items?
@pgleeson since we have you — were there topics you wanted to raise in the sync with c302 or other topics?
Vahid Ghayoomie
@VahidGh
May 29 2015 17:34
OK. thanks for your helps on this topic
Just the last question
What's your idea on fitting to activation/inactivation power values?
It's usual for example using 4 for Kv1activation
but saying 2 for kv3
Padraig Gleeson
@pgleeson
May 29 2015 17:39
@VahidGh not sure about the usual practice for that. The decision whether a gate is inactivating etc. is usually made beforehand based on the best knowledge of the type of channel. It's usually a fixed parameter in the ion channel model being fitted..?
Vahid Ghayoomie
@VahidGh
May 29 2015 17:39
May I use blind guess and choosing from 0-4 to find the best fit?
Padraig Gleeson
@pgleeson
May 29 2015 17:40
It may be best to start from an existing ion channel model where m, h powers are known...
Vahid Ghayoomie
@VahidGh
May 29 2015 17:41
Yes, I was looking to related channels in channelpedia, but there were also in different ranges for even ion channels in the same family
Padraig Gleeson
@pgleeson
May 29 2015 17:42
@slarson c302 is moving slowly but it probably at the right stage already for use with neurotune & the ion channel modelling. the overall framework may alter a bit, but I'll keep https://github.com/openworm/CElegansNeuroML/blob/master/CElegans/pythonScripts/c302/tune/c302tuner.py up to date with it...
@VahidGh My suggestion would be to have some concrete starting point for the channel based on an existing study. Otherwise if all the parameters are free it can be made do anything...
Vahid Ghayoomie
@VahidGh
May 29 2015 17:44
agreed
Stephen Larson
@slarson
May 29 2015 17:46
Ok yes, @travs I made a note to check out c302tuner.py as well. @VahidGh this may also be relevant to what you are doing with the network option you are building, right?
@pgleeson ok great — other things you want to coordinate on? otherwise we can go back to our agenda items
Vahid Ghayoomie
@VahidGh
May 29 2015 17:47
@slarson yes, as we discussed befor
Stephen Larson
@slarson
May 29 2015 17:48
Great
Padraig Gleeson
@pgleeson
May 29 2015 17:49
@slarson Could you give a quick update on status of PyOpenWorm merge to master?
Stephen Larson
@slarson
May 29 2015 17:49
ahhh yes
Well, last week @travs and I went through the alpha0.5 branch yet again asking ourselves if it was ready for prime time yet
unfortunately we had to add some new issues for some things that had gotten broken in fixing previous issues: https://github.com/openworm/PyOpenWorm/labels/alpha0.5
being generally dissatisfied with this, it inspired us to refactor the tests in PyOpenWorm
since obviously our tests were not telling us when basic examples were getting broken
which ought to be the first line of defense against such things
Vahid Ghayoomie
@VahidGh
May 29 2015 17:51
Good point, I also have many parameters hard-coded, it would be nice if we could find somewhere in PyOW for those
Stephen Larson
@slarson
May 29 2015 17:51
happily, @gsarma has jumped in to help with this
And in the intervening time has committed updates (along with @travs ) that have refactored the testing framework and added new tests to cover the places that broke
for example: openworm/PyOpenWorm#112
so, now its on @travs and I to fix the underlying problems as it seems we didn’t manage to rope in Mark Watts to solve the issues
Happily we shouldn’t be in this place again as doctests should catch any breaks of the basic examples in the readme from here forward
Fixing these items falls under @travs wheelhouse this summer as part of enabling PyOpenWorm to ingest ChannelWorm parameters
and that topic is part of our agenda today
Travis Jacobs
@travs
May 29 2015 17:55
Right
Stephen Larson
@slarson
May 29 2015 17:55
This is revealing to us that without a reasonable testing framework, we can’t produce stuff that’s very complicated that multiple people are working on. so we’re making sure we have that
So @VahidGh — did you & @miladjafary get close enough to be able to show your web app?
Vahid Ghayoomie
@VahidGh
May 29 2015 17:57
Somehow yes, now we have webplot as an application under django+bootstrap
Stephen Larson
@slarson
May 29 2015 17:58
cool — get a chance to put it up on a host yet?
Vahid Ghayoomie
@VahidGh
May 29 2015 17:58
Today we were working on a capability to see if we can load this app for every step on saying VClamp traces
In addition to the data model to store related digitized plots and info for a patch clamp study
Travis Jacobs
@travs
May 29 2015 18:00
Yes, actually @VahidGh I raised #44 to address this
I wanted to get your opinion on it
Do you think we should be storing columns of data from the digitized plot, or links to plot.ly, or both?
Milad Jafary
@miladjafary
May 29 2015 18:01
click on the save/load
select load from server section
and type
channel_worm
you can see first version of datamodel
Travis Jacobs
@travs
May 29 2015 18:02
Ah, gotcha
Stephen Larson
@slarson
May 29 2015 18:03
Cool
Vahid Ghayoomie
@VahidGh
May 29 2015 18:03
@miladjafary, Can you estimate the time for finishing what we were working on today?
Travis Jacobs
@travs
May 29 2015 18:03
@miladjafary But this will be implemented in PyOpenWorm ultimately, no?
Stephen Larson
@slarson
May 29 2015 18:03
We can do that demo @VahidGh @miladjafary at the next meeting, as we had originally planned for a bit of different topics here — just seeing if it was something we were ready to show for @pgleeson to see
Travis Jacobs
@travs
May 29 2015 18:03
OK
Stephen Larson
@slarson
May 29 2015 18:04
I wanted to show the diagram / mockup for a unifying front end that came out of the last session that @travs and I worked on
Milad Jafary
@miladjafary
May 29 2015 18:04
@VahidGh I hope to release first version of App for next week
Stephen Larson
@slarson
May 29 2015 18:04
as it helps to answer some of the questions about unification and maybe helps to show some intersection points with your channel stuff
So check this out
Vahid Ghayoomie
@VahidGh
May 29 2015 18:05
@travs, great, going to comment on this
Milad Jafary
@miladjafary
May 29 2015 18:05
@travs maybe
Stephen Larson
@slarson
May 29 2015 18:06
source is here for your edits / comments / raising issues
Vahid Ghayoomie
@VahidGh
May 29 2015 18:06
@slarson, cool
Stephen Larson
@slarson
May 29 2015 18:07
the idea is a front end that shows us a dashboard of completion to pull together muscle cells / neurons / and their relations to channels, and also show relationship between data and simulation runs, and loop together with references
Milad Jafary
@miladjafary
May 29 2015 18:07
it's cool
Stephen Larson
@slarson
May 29 2015 18:07
sort of a worm-focused one-page dynamic summary :)
thanks
to build it implies several things about our process we need to get working
but many things that we already have starts on
I’m just hoping that getting agreement on an ultimate vision helps give some clarity on how to best collaborate
Milad Jafary
@miladjafary
May 29 2015 18:08
It's good , but I think this interface is seprated from Our App
Stephen Larson
@slarson
May 29 2015 18:08
so your data model for channels should be displayed in the table on the bottom panel there
Padraig Gleeson
@pgleeson
May 29 2015 18:08
@slarson I rechecked the PyOW examples locally on the alpha0.5 branch. Minor issues. Have raised an issue for this here: openworm/PyOpenWorm#113
Stephen Larson
@slarson
May 29 2015 18:10
@pgleeson good catch on that one…! there are pre-reqs on the examples but this is a hidden implicit thing. thanks for that issue
@miladjafary good — these are the kinds of distinctions we want to identify — can you elaborate on the differences you see?
Padraig Gleeson
@pgleeson
May 29 2015 18:10
Just to put a spanner in the works... I get a bad feeling with talk of putting the output of ChannelWorm/optimisations etc. inside PyOpenWorm. I really feel that should be an API to published data/physiological database contents.
Stephen Larson
@slarson
May 29 2015 18:11
that’s ok — can you say more about what you envision with “an API to published data/physiological database contents” ?
Padraig Gleeson
@pgleeson
May 29 2015 18:11
Certainly this modelling info should be easily accessible via a python API, but what's in PyOpenWorm should be info that's generally accepted in the community...
And the running best model of openworm should be in a different place...
Stephen Larson
@slarson
May 29 2015 18:12
OIC
Here’s the thing about that. There’s a desire to be able to generate multiple models automatically from data
the most straightforward way is to generate models out of a single database, not pull from multiple
Padraig Gleeson
@pgleeson
May 29 2015 18:13
Hope the distinction is clear. Of course calling it PyOpenWorm suggests it's an api to openworm's data...
Stephen Larson
@slarson
May 29 2015 18:13
Each item in PyOpenWorm comes with the ability to see the evidence behind it
so it is straightforward to filter PyOpenWorm output for contents that have published references for them, versus contents that come out of an analysis / optimization technique
That’s why we’ve been thinking it can support both
Padraig Gleeson
@pgleeson
May 29 2015 18:14
@slarson, yes but they're 2 different types of data source: uncontroversial published data; and currently best guesses from a number of processes in openworm...
Stephen Larson
@slarson
May 29 2015 18:14
yep agreed
I think the idea is that PyOpenWorm has provenance tracking facilities we don’t want to reproduce everywhere
so the ability to just record the metadata that X run came from Y set of tools is a PyOpenWorm facility
That’s one reason to think it is an appropriate place for this
Padraig Gleeson
@pgleeson
May 29 2015 18:15
True, but most data in there will be static & with references to papers; other data will be dynamic & unpublished...
Milad Jafary
@miladjafary
May 29 2015 18:15
@slarson I think we need a Portal that use some service witch they can host on diff servers. For example IonChannel App can do all of operation related Ion Channels and also reaise some service as a web service for other App.
Stephen Larson
@slarson
May 29 2015 18:15
Getting provenance tracking right has been hard for the community in general
Milad Jafary
@miladjafary
May 29 2015 18:16
In this way we could have multiple service which are work without any dependency to other system.
and A portal can aggregated all of them as a one unique web page
Stephen Larson
@slarson
May 29 2015 18:17
@miladjafary I’m fine for that — just so long there is a path to unification that is possible as the greater goal here is to have this all interconnect. But yes you are expressing the “unix philosophy” of building up components that do single things well and this is definitely consistent with our approach here
the Idea behind that interface diagram is that it is a valuable unification point; it doesn’t have to be the only one
@pgleeson “most data” being static … perhaps initially but it could evolve. I hadn’t pre-judged the volume of static vs. dynamic data. It seemed that the evolution of PyOpenWorm started when there was a lot of disparate ways to represent information about the same thing
@pgleeson so if we have access to an object that unifies info about say AVAL, why not also be able to access any optimization runs of models that have been run on the AVAL neuron? That’s why I have left the door open for dynamic info
Because the alternative is that runs optimizing a model about AVAL will get recorded in some other flat file somewhere that won’t be easy to find
and we’ll recap the same challenges that led us to PyOpenWorm in the first place
Milad Jafary
@miladjafary
May 29 2015 18:21
@slarson you right. I agree .
Stephen Larson
@slarson
May 29 2015 18:21
The basic idea behind both of these challenges, all, is that there should both be a focused place where information lives / is generated, but there should also be a pathway to unify that information — whether it is data, i.e. pyopenworm, or an interface, i.e. this new proposed one.
Aaanyway; when we see this ion channel app, we’ll better understand the unification paths that are possible
@travs can we update the agenda with items we covered struck through to see what we have left for next time?
Milad Jafary
@miladjafary
May 29 2015 18:23
@slarson do you think in this way dependency between component become more?
Padraig Gleeson
@pgleeson
May 29 2015 18:24
Ok, but I do think there is an advantage to having a stable, curated python api for published data on c elegans that can be released for the community every few months & can be a valuable resource
Constantly updating it with new openworm model specific data makes it much more of a moving target.. But lets ses how it evolves after the first release...
Stephen Larson
@slarson
May 29 2015 18:25
@pgleeson I think the trick is just to make it clear which API functions bring back stable published data and which API functions bring back dynamic bits. There’s no argument against the value of the stable api for published data — we definitely want this :)
Travis Jacobs
@travs
May 29 2015 18:26
Ok, dumping agenda:
Stephen Larson
@slarson
May 29 2015 18:26
@miladjafary For some components whose goal is to integrate, some dependencies are not necessarily bad. The idea is to build such integrative components on a foundation of more single use components with limited dependencies
Travis Jacobs
@travs
May 29 2015 18:26

ChannelWorm

Web app

  • Show-and-tell for Vahid & Milad's web app.

Optimization

  • what parameters need to be optimized for IV curve validation? VahidGh/ChannelWorm#43

Data

  • how to put data from the plots into pyopenworm VahidGh/ChannelWorm#44
    • what in pyopenworm needs to be there to make that happen
    • some way to store parallel columns of values?
    • started in "Data modelling" milestone
  • how do we fit the channel models into muscle and neuron models? VahidGh/ChannelWorm#45

Unification

  • how do we sync with interactions happening on the muscle and neuron modelling?
    • how can we make sure the models we make are reusable by these projects?

Neurotune

  • what it would take to implement a NML2 model instead of the basket cell model
  • using pylems/jlems instead of NEURON? pgleeson/neurotune#2
  • installation issues pgleeson/neurotune#1
  • What about pushing Padraig's changes to the main forks of Neurotune and PyElectro, or having an OpenWorm fork?

PyOpenWorm

  • What else is crucial to the next release
    • Which issues?
  • Pushing to PyPi
  • Incorporating ChannelWorm branch changes?

Previously

  • Choosing figures from papers for digitization #39
  • Syncing the plan with digitization walkthrough in docs #37 #38
Stephen Larson
@slarson
May 29 2015 18:27
ok so showing the interface was an opening salvo to address the unification point; though yes, we haven’t really gotten into the meat of that one
Milad Jafary
@miladjafary
May 29 2015 18:27
@slarson gotcha.
Stephen Larson
@slarson
May 29 2015 18:28
And @travs @miladjafary I think milad sharing his data model is a start on the “how to put data from plots into pyopenworm” though we haven’t closed that either yet, right?
Travis Jacobs
@travs
May 29 2015 18:29
Right
Stephen Larson
@slarson
May 29 2015 18:30
Ok all — we’re at the end of the second hour! Thanks for joining us. @travs can you remind us about other sessions we’re up to in the coming week if we have them scheduled yet?
Milad Jafary
@miladjafary
May 29 2015 18:31
@slarson @travs @VahidGh @pgleeson thank you :d
Travis Jacobs
@travs
May 29 2015 18:32
@slarson there's the meeting where we flesh out which figures need to be digitized, but other that I think nothing is scheduled yet
Stephen Larson
@slarson
May 29 2015 18:33
ok so we’re still looking for the next session with @VahidGh and @miladjafary where we’ll look at the app — i think i had to ask for another session on that one due to schedule constraints
we’ll get that out for folks to see. @pgleeson i know you have limited bandwidth but we’ll keep you updated with progress via issues as we go
OK thanks all :) Cheers to the great progress. Looking forward to seeing the next bits
Padraig Gleeson
@pgleeson
May 29 2015 18:35
Thanks all. Also, regarding merging pyelectro/neuroelectro into Mike V's repos, I'm waiting a response from him about this. He's left academia unfortunately. Working for now in pgleeson on gh...
Travis Jacobs
@travs
May 29 2015 18:35
@slarson Yeah, the dates were extended on the poll so that will be scheduled soon
Padraig Gleeson
@pgleeson
May 29 2015 18:35
@slarson sure!
Stephen Larson
@slarson
May 29 2015 18:36
ok so the topic NOW, as I look at my calendar is for @VahidGh, myself and @travs to look at figures we have to digitize as @travs just mentioned
Vahid Ghayoomie
@VahidGh
May 29 2015 18:36
OK, bye and hi :)
Stephen Larson
@slarson
May 29 2015 18:37
haha
Travis Jacobs
@travs
May 29 2015 18:37
Hahah, @VahidGh can you link the drive folder we're storing papers in?
Stephen Larson
@slarson
May 29 2015 18:37
this is what happens when you schedule a subgroup meeting after a whole group meeting and the natural place to do it is on the same chat channel facepalm
Vahid Ghayoomie
@VahidGh
May 29 2015 18:37
@slarson, As for the app, the showing is not a problem
Stephen Larson
@slarson
May 29 2015 18:37
yeah and @travs do we have an issue for this topic we can reference as well?
Vahid Ghayoomie
@VahidGh
May 29 2015 18:38
We can have it tonight, but I thought it would be better to have it more customized with our intention
Stephen Larson
@slarson
May 29 2015 18:39
@VahidGh Cool yeah; should be a few more days before we get that show and tell session together so you’ll have some more time
Travis Jacobs
@travs
May 29 2015 18:39
@slarson #39
Stephen Larson
@slarson
May 29 2015 18:39
boom, perfect
Vahid Ghayoomie
@VahidGh
May 29 2015 18:39
So, I think with new changes, we can have it up this week
Stephen Larson
@slarson
May 29 2015 18:40
terrific
and we have a candidate spreadsheet for identifying figures here: https://docs.google.com/spreadsheets/d/1jTXDHsLsdK-T_d-RwCb4gmQgMhjumvZE7C_2PEXFYAk/edit#gid=0
my suggestion would be to pick one of the subfolders and start going through the papers and populate this spreadsheet
Travis Jacobs
@travs
May 29 2015 18:40
Ok, so what are the criteria for selecting figures?
Stephen Larson
@slarson
May 29 2015 18:40
but: process point: @VahidGh do you have in mind a different way of doing this with your app?
Yes, good question @travs — and there’s one bigger criteria question before that: which channel do we start with?
@VahidGh i would defer to you on the channel to start with
Vahid Ghayoomie
@VahidGh
May 29 2015 18:42
not much difference
most of these papers include VClamp data
in addition to I/V and G/Gmax
I haven't considered any function for G/Gmax yet
We can start with one subfolder
Travis Jacobs
@travs
May 29 2015 18:44
How about "Cav1_LType_EGL-19"?
Vahid Ghayoomie
@VahidGh
May 29 2015 18:44
@travs, this is almost done
we can go for the next
Travis Jacobs
@travs
May 29 2015 18:44
Aye
Cav2 then
Vahid Ghayoomie
@VahidGh
May 29 2015 18:45
But in addition to figures we need two other type of data
1) patch clamp data: needed parameters are in patch clamp table here
Stephen Larson
@slarson
May 29 2015 18:47
hmm that link just opens a blank workspace with a menu for me
Vahid Ghayoomie
@VahidGh
May 29 2015 18:47
2) parameters related to ion channels which are the result and assumptions of the experiment
Milad Jafary
@miladjafary
May 29 2015 18:47
@slarson save/load
Travis Jacobs
@travs
May 29 2015 18:47
@slarson go to 'Save/Load'
'Load' (on right)
Then type 'channel_worm' and press enter
So @VahidGh , (1) would be ref_id, type, duration, deltat, start_time, end_time, protocol_start, protocol_end, protocol_steps
Stephen Larson
@slarson
May 29 2015 18:49
So this, yeah?
Screen Shot 2015-05-29 at 11.48.59 AM.png
Milad Jafary
@miladjafary
May 29 2015 18:49
yes
Vahid Ghayoomie
@VahidGh
May 29 2015 18:49
@travs, yes, all that possible
Stephen Larson
@slarson
May 29 2015 18:50
ok so let’s try this experiment collectively
we’ll learn something trying it :)
over in my spreadsheet i want to record this paper
btw second author Yishi Jin I know from UCSD, and final author Brian Ackley is drworms I think on Twitter
(fun personal note)
Vahid Ghayoomie
@VahidGh
May 29 2015 18:53
great :)
Stephen Larson
@slarson
May 29 2015 18:53
Ok so I’m adding the paper in a row on the spreadsheet
Screen Shot 2015-05-29 at 11.53.42 AM.png
and adding the link to it
so first thing i notice scrolling through the paper: no i/v plots
and no iclamp / vclamp data
Vahid Ghayoomie
@VahidGh
May 29 2015 18:56
Yes, as I said some of this papers just include helpful data about the ion channel
Stephen Larson
@slarson
May 29 2015 18:56
Right — this is showing localization of proteins throughout the worm body
seems like it doesn’t have any tables for the info we want
ok so this will be a quick one
So, it sounds like one aspect of this process is eliminating a certain paper as not containing any data we want
so i’ll give that one a strike through and make a note on the cell
and move on to the next
Travis Jacobs
@travs
May 29 2015 18:59
Again no plots
Stephen Larson
@slarson
May 29 2015 18:59
Riiight :)
So if we’re thinking about a process here for plot digitization, we probably want to screen out papers with zero relevant plots in advance
Vahid Ghayoomie
@VahidGh
May 29 2015 19:00
Actually Cav2 is a poor-studied ion channel :)
Stephen Larson
@slarson
May 29 2015 19:00
haha
Travis Jacobs
@travs
May 29 2015 19:00
Haha, well chalk that up to me randomly choosing this folder
Stephen Larson
@slarson
May 29 2015 19:01
and again, a process point: we should prioritize channels that are not poorly studied :)
Ooh gotta love swedish names
Frøkjær-Jensen
Vahid Ghayoomie
@VahidGh
May 29 2015 19:01
K channels are much better
Stephen Larson
@slarson
May 29 2015 19:01
yay unicode
Travis Jacobs
@travs
May 29 2015 19:01
hahah
Stephen Larson
@slarson
May 29 2015 19:02
(let’s move to K channels after this one)
but for this one
so there are some plots that could be candidates
Figure 4 has the right kind of looking trace
but we have to dig deeper to see if it will help us
Screen Shot 2015-05-29 at 12.03.16 PM.png
the legend talks about “response to depolarization” which is something that happens in clamp experiments
and we have an x-axis over time
but the y-axis is not in voltage or current…
it is some kind of a ratio
Vahid Ghayoomie
@VahidGh
May 29 2015 19:05
yes, next :(
Stephen Larson
@slarson
May 29 2015 19:07
well… hang on let’s briefly see if we can extract anything meaningful out of those ratios
Milad Jafary
@miladjafary
May 29 2015 19:07
Vahid ,we have plot chart also ?
Vahid Ghayoomie
@VahidGh
May 29 2015 19:08
Not for now
Stephen Larson
@slarson
May 29 2015 19:08
so reading the methods we find out a bit more
the way they are carrying out “depolarization” is not with clamp
This message was deleted
Screen Shot 2015-05-29 at 12.08.42 PM.png
so they are doing it with a solution with highly concentrated potassium
Screen Shot 2015-05-29 at 12.09.23 PM.png
And they are delivering it via a tube in the chamber with the cultured neurons
Vahid Ghayoomie
@VahidGh
May 29 2015 19:13
But it seems , Eleanor A. Mathews et.al. have some good news about Cav2 :)
Sorry, Mathews et.al.
Stephen Larson
@slarson
May 29 2015 19:14
OK cool
Sorry just want to close the loop on this one paper though
for the purposes of analysing it
so it seems that the ratio in the y-axis is determined in the following way
they use a microscope to look at the cells
the cells are expressing a couple of flourescent calcium indicators
that change their flourescence depending on the concentration of calcium inside the cell
as they “depolarize”, meaning that they spritz on high potassium concentration, their microscope shows the changes in flourescence that come out
and they use the ration between the changes in the different colors as a proxy to see changes in calcium concentration
and changes in calcium concentration is itself a proxy to see changes in membrane potential
however, and we’ve run into this before
the function to transform calcium changes into membrane potential changes is often ambiguous
and anyway less direct than having membrane stuff
so while maybe this is just didactic, it is valuable to note that we could try to mine the calcium concentration changes out of this experiment
it would just require more work to then also work out calcium concentration dynamics
but as a first pass, i’d say right, we reject this one as not having what we are looking for yet either
Stephen Larson
@slarson
May 29 2015 19:20
ok and thanks travs who has added a new column to the spreadsheet so we know which channel we are on
so Vahid says to look at matthews
aha
and beautiful
Screen Shot 2015-05-29 at 12.21.01 PM.png
Figure 5
Hello, my lovely :)
I/v curves
Travis Jacobs
@travs
May 29 2015 19:21
Hahah
Ok
Now we have something
Vahid Ghayoomie
@VahidGh
May 29 2015 19:22
But is this for rat???
Stephen Larson
@slarson
May 29 2015 19:22
aha good question
so now we need to read a bit to see the context of this
looks like they are putting rat channels into worms :)
Travis Jacobs
@travs
May 29 2015 19:23
Hmm cool
Stephen Larson
@slarson
May 29 2015 19:23
that’s what “heterologous” means … fun fact
So who knows what’s going on in Figure 5?
Travis Jacobs
@travs
May 29 2015 19:27
Seeing how some mutations affect dynamics
I guess we're only interested in "wild type"?
Stephen Larson
@slarson
May 29 2015 19:28
think so
but again we have to dive into the methods to make sense of what is going on
and this is a particularly meaty and confusing paper :)
Screen Shot 2015-05-29 at 12.31.08 PM.png
OK to start here is the relevant line from the abstract
so they are using a mutation to a rat channel to draw conclusions about mutations to a channel in the worm
and its on the wild type / mutated rat channel that they are doing kinetics experiments
The reason it is in the paper is because the rat channel is homologous to the worm channel
Vahid Ghayoomie
@VahidGh
May 29 2015 19:34
yes, but the wild type results would be useful
Travis Jacobs
@travs
May 29 2015 19:34
We could use it to estimate parameters if there is no data for this channel directly available
Vahid Ghayoomie
@VahidGh
May 29 2015 19:36
@travs, yes, actually that glycine to arginine substitution is useful for my studies :)
Stephen Larson
@slarson
May 29 2015 19:36
Screen Shot 2015-05-29 at 12.36.04 PM.png
key thing to recognize here too is this bit
so they are taking this rat brain subunit and putting it into a HEK cell and combining it with other subunits
a sub topic here is how to identify the channel that ends up being composed of those subunits
the methods section seems to talk about this
but anyway, yes, the wild type info should be useful
so this is a channel through which calcium passes
the I/V curve is looking at a barium current
Stephen Larson
@slarson
May 29 2015 19:41
i guess they can substitute calcium for barium
both alkaline earth metals on the periodic table
Travis Jacobs
@travs
May 29 2015 19:43
Yeah I think that's it
They say "Figure 5E shows that the current densities for the wild-type mutant ra612 mutant channels were comparable using either Ba or Ca as the charge carriers (n 13, wild-type in Ca; n 11, mutant in Ca; n 8, wild-type in Ba; n 13, mutant in Ba)."
Stephen Larson
@slarson
May 29 2015 19:43
Nice
so, closing the loop here
We can take Figure 5A, the dashed line only
which is an i/v curve for this channel
we can take Figure 5B (left)
Does 5C add anything?
Figure 6 is also redundant because it just compares wild type to the mutation in both calcium and barium cases
Let’s leave out 5C
Travis Jacobs
@travs
May 29 2015 19:47
Ok
Stephen Larson
@slarson
May 29 2015 19:47
so we’re left with the fields that Vahid asked us for in the beginning
so it seems to me that duration, delta t, start time, end time, protocol start, end and steps are only relevant for 5B, right?
Vahid Ghayoomie
@VahidGh
May 29 2015 19:48
But I'm a bit confused about the wild type, is the alpha-1a cDNA used belong to rat or worm?
@slarson, yes
Stephen Larson
@slarson
May 29 2015 19:49
Rat
Vahid Ghayoomie
@VahidGh
May 29 2015 19:50
So can we use it for our purposes?
it's Cav2.1
Stephen Larson
@slarson
May 29 2015 19:55
I would say yes
Screen Shot 2015-05-29 at 12.54.52 PM.png
I would refer to chapter 20 of the Hille Ion channels book
However, I think it raises an important point here that we may need to understand at the amino acid level how the rat version or the worm version differ
but for our purposes, if we make a note that we are using a rat version as a best guess I think that will be far superior to nothing
Vahid Ghayoomie
@VahidGh
May 29 2015 19:58
So, we can use this study for the estimation purposes
I'm working on these differences, to better make a relationship between these amino acid changes and the channel kinetics
Stephen Larson
@slarson
May 29 2015 20:03
yeah — some of that may get into stuff that is still unknown
I would also refer to the Whole Cell model from Stanford: http://linkinghub.elsevier.com/retrieve/pii/S0092867412007763
as an analogy to this modeling approach
they were making a whole cell model of a microbe
they had to substitute some molecular pathway information from e. coli where it was unknown for the organism they were modeling: mycoplasma
and even with those substitutions their model had 80% accuracy on some tests
they make those substitution assumptions clear in the paper
so I think it is valid to use alternative organisms as a substitute in certain cases where it can assumed to be in the ballpark
Anyway, we’ve gone way over the time for this one
It seems we could use a “figure”-athon :)
Vahid Ghayoomie
@VahidGh
May 29 2015 20:05
:)
Stephen Larson
@slarson
May 29 2015 20:06
let’s break here for now and set another session up for this
I have to go
Travis Jacobs
@travs
May 29 2015 20:06
Ok sounds good
Vahid Ghayoomie
@VahidGh
May 29 2015 20:06
Agreed
Travis Jacobs
@travs
May 29 2015 20:07
I'll send you guys a poll shortly
And we'll figure this next session out
Stephen Larson
@slarson
May 29 2015 20:07
cool thanks guys
Vahid Ghayoomie
@VahidGh
May 29 2015 20:07
OK, thanks all
Travis Jacobs
@travs
May 29 2015 20:07
Alrighty, talk to you guys later!
Vahid Ghayoomie
@VahidGh
May 29 2015 20:08
And also the next papers from this folder has no useful curves :(
Travis Jacobs
@travs
May 29 2015 20:08
:thumbsdown:
Vahid Ghayoomie
@VahidGh
May 29 2015 20:09
The next time maybe starting with k channels
Travis Jacobs
@travs
May 29 2015 20:09
Yeah, they seem to have more curves