These are chat archives for openworm/ChannelWorm

26th
Jul 2015
Travis Jacobs
@travs
Jul 26 2015 16:00
@/all Hey everyone, starting the hackathon over here right now!
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:08
can i get a link to the chat? the hackathon is full
Gopal Sarma
@gsarma
Jul 26 2015 16:10
hey vahid
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:11
Hi everyone
Milad Jafary
@miladjafary
Jul 26 2015 16:11
Hi everyone
Gopal Sarma
@gsarma
Jul 26 2015 16:11
Travis and I were talking yesterday about ChannelWorm testing
Hi everyone
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:11
@gsarma, great
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:12
Hi
Gopal Sarma
@gsarma
Jul 26 2015 16:12
I think ordinary unit tests will have to be written by you or others who are actually doing development. But SciUnit tests could be written by anyone.
Travis Jacobs
@travs
Jul 26 2015 16:12
Hey @stripathy we've got the agenda over here
Gopal Sarma
@gsarma
Jul 26 2015 16:12
It will be difficult to write unit tests without having worked on the functionality, unless it has already been spec'd / documented
Travis Jacobs
@travs
Jul 26 2015 16:13
@stripathy Let me know if the doc is not editable to you; it should be world-editable by now
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:13
@gsarma, of course
Gopal Sarma
@gsarma
Jul 26 2015 16:14
@travs, it's not editable for me either
So should we talk about how to start on SciUnit testing?
Travis and I made a generic testing folder template for ChannelWorm and muscle_model following the PyOpenWorm model.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:15
As we discussed before, this needs somehow integration with djngo for some tests
Gopal Sarma
@gsarma
Jul 26 2015 16:15
Rick had suggested some kind of detailed folder structure for SciUnit tests, but we will have to check with him about exactly how that works. It might be in active development still, I'm not sure.
For unit tests or SciUnit tests?
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:15
I may have missed this, but what's the state of the UI for curating channel info?
Stephen Larson
@slarson
Jul 26 2015 16:15
@stripathy sorry about the hangout -- I swear it is less and less clear how to make a hangout have the increased limit of 15 people in it :-/
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:17
@gsarma, If we are going to have separate model files, then I don't think we need to use django for SciUnit tests
Gopal Sarma
@gsarma
Jul 26 2015 16:18
Right, we can basically treat SciUnit tests as separate for now.
Once we have them, it is straightforward to have them run along side the other tests in a test suite.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:18
@slarson, @stripathy, I was playing with optimization whole the week
got some good results
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:18
@VahidGh what do you mean by optimization?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:19
@stripathy, the process for fitting model parameters to data
I was working on SLO-2 from digitized data to model
Gopal Sarma
@gsarma
Jul 26 2015 16:22
echoing @stripathy, what is the status of the curation interface?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:22
@gsarma, yes, and this is more dependent on having final model files on CW side
The curation process is almost finished
Gopal Sarma
@gsarma
Jul 26 2015 16:24
can you send a link to what it looks like?
is there a way we can browser the data on channels?
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:24
@VahidGh were there still improvements to the UI that you were hoping to make?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:25
Something that is remaining is the final outputs and integration with fitter
Milad Jafary
@miladjafary
Jul 26 2015 16:26
I think the web app is ready for data entry
Gopal Sarma
@gsarma
Jul 26 2015 16:26
@VahidGh when you say that the curation process is almost finished, do you mean development of the interface or the data entry itself?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:27
@stripathy, I didn't have enough time to work on UI
In the other side, was working on optimization to find out if the digitization process we have could have good results
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:29
let me share some results
Travis Jacobs
@travs
Jul 26 2015 16:29
If you go to the ion channels section you can see what has been entered so far
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:29
data_vs_candidate-IV.png
data_vs_candidate-POV.png
Gopal Sarma
@gsarma
Jul 26 2015 16:29
Looks great!
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:29
data_vs_candidate-VClamp.png
Gopal Sarma
@gsarma
Jul 26 2015 16:30
Will the PMID's be linked at some point?
Travis Jacobs
@travs
Jul 26 2015 16:30
@gsarma I believe the interface is what was meant :) there is still a lot of curation to be done certainly
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:30
@gsarma, yes
in addition to DOI
Gopal Sarma
@gsarma
Jul 26 2015 16:31
I think will be an important class of tests to have to run through all of the PMID's and DOI's and check that they are valid.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:31
The thing I was working on was how we can have a good estimation on timings (e.g. tau) after such a digitization process
Travis Jacobs
@travs
Jul 26 2015 16:32
@gsarma good call!
As we're discussing this we should be raising issues in the repo to keep track of what we have decided to work on
Gopal Sarma
@gsarma
Jul 26 2015 16:32
Should I raise an issue over at ChannelWorm for the PMID / DOI tests?
It's identical to what we did for PyOpenWorm
Travis Jacobs
@travs
Jul 26 2015 16:32
@gsarma If you would that would be a great help
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:32
Are the critical points, easily accessible after digitizing such a voltage clamp plot
Travis Jacobs
@travs
Jul 26 2015 16:32
totally, we can port that over almost verbatim I'd imagine
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:33
there should be some simple functions for that - i think pubmed's api supports getting the doi given a pmid and vice versa
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:35
Using the auto-search tool in CW reference management it is now possible to find one using the other
@gsarma, I'm using Metapub API, that's cool
Gopal Sarma
@gsarma
Jul 26 2015 16:37
@travs / @VahidGh can we make a testing milestone for ChannelWorm? I'm not sure I can do it
We should have a label also for testing related things.
Made an issue though
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:38
@gsarma, yeah, good idea
Shreejoy Tripathy
@stripathy
Jul 26 2015 16:38
whoa! Metapub looks awesome
Gopal Sarma
@gsarma
Jul 26 2015 16:38
ah, ok, yes I can make labels.
oh, wow, that is cool!
Ok, yes I can make milstones too! Sorry about that. Made a milestone for generic tests, i.e., non-SciUnit tests.
I think initially we want to test as much functionality as possible, and not worry about depth. Breadth is more important at first- Rick was saying something similar recently in the context of SciUnit.
Travis Jacobs
@travs
Jul 26 2015 16:43
@gsarma Right, and the milestone's a good idea. Can you paste a link to it here?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:45
@gsarma, right, but for a model to be valid enough we had to have all parts of the puzzle
Travis Jacobs
@travs
Jul 26 2015 16:45
@gsarma ok excellent; thanks!
Gopal Sarma
@gsarma
Jul 26 2015 16:46
@VahidGh- yes definitely. I just mean for testing, not development itself.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:46
e.g. fitting to an IV curve was very useful for 80% accuracy of a model
Gopal Sarma
@gsarma
Jul 26 2015 16:46
right, right
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:46
but considering timings of the channel forced me to get deep into the V/t curves
Gopal Sarma
@gsarma
Jul 26 2015 16:47
Can we come up with other tests that are straightforward like the PMID / DOI tests?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:47
And this was much more difficult
Gopal Sarma
@gsarma
Jul 26 2015 16:47
We should accumulate a list and then go about it.
Also, on the topic of Django, doesn't it have an interface to unittest? What exactly is the issue that comes up with writing Django tests?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:47
I think working with I/V curves is now possible
Gopal Sarma
@gsarma
Jul 26 2015 16:47
I've never used it, so I'm just trying to learn about Django for the first time.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:48
If we could start implementing tests for I/V, and V/t which are in priority, would be grat
*great
Travis Jacobs
@travs
Jul 26 2015 16:49
@gsarma The only thing I've noticed about writing tests for django is that they need to be in a particular location on disk, which kind of rails against our desired structure for tests
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:49
And then we can go for other tests
Gopal Sarma
@gsarma
Jul 26 2015 16:49
@VahidGh- those are SciUnit tests, correct?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:50
@travs, @gsarma, did you see the configuration I did for ipython file?
that way we can do some coding outside the djago
Travis Jacobs
@travs
Jul 26 2015 16:50
@gsarma that is correct
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:50
this is good for tests not related to the django app (e.g. model files)
Gopal Sarma
@gsarma
Jul 26 2015 16:52
yes, looking at that right now
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:52
here in In[ ] ! cell I did the configuration for working with django app outside the app
We can have the same approach for other tests if you are going to have your own structure
Gopal Sarma
@gsarma
Jul 26 2015 16:57
Ok, I'm really just trying to understand the basic of interacting with ChannelWorm. So as an example, if I want to iterate over all of the evidence in ChannelWorm, and grab the DOI's, how would I do that?
Also, can we make a readme file with basic ChannelWorm commands?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 16:59
For SciUnit tests, we need two pre-requisites:
1) A python API for converting best fit parameters to neuroML file
2) tests that do verification and validation on channel file
@travs, how is the progress with NeuroML file generation API?
Are we going to have such an API?
Travis Jacobs
@travs
Jul 26 2015 17:03
@VahidGh Sorry, what exactly do you mean by this? What are we trying to generate NML from exactly?
I haven't done any work on such an API yet; are there issues related to it?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:08
@travs, we had some related issue in both CW and PyOW
I guess there should be some straight-forward script for this purpose
Gopal Sarma
@gsarma
Jul 26 2015 17:08
Is there a reason we have to actually generate a NeuroML file in order to run SciUnit tests?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:08
some script that get parameters and generate nml channel file @pgleeson
Gopal Sarma
@gsarma
Jul 26 2015 17:09
Can't we use whatever procedure we will from the parameters themselves?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:09
@gsarma, the neuroml files are the presentation format we are working based on
Travis Jacobs
@travs
Jul 26 2015 17:10
@VahidGh Ok, no I have not looked at doing this unfortunately
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:11
As it is being used in all OW sub-projects I think we need to work based on this format in CW too
Gopal Sarma
@gsarma
Jul 26 2015 17:11
But it shouldn't be necessary to simply have SciUnit tests, correct?
I mention this just incase the convertion to NeuroML is holding up writing the tests.
It should be easy to convert the SciUnit tests once we have this API- we can write the tests anyway.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:12
The API in python should be available somewhere in this or other projects
Gopal Sarma
@gsarma
Jul 26 2015 17:13
Are there any basic things we can write in the next 45 min? Baby steps are ok!
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:13
We just need to feed it with parameters and then generate the model
then we can so something like the ipython created by Rick for this purpose
@gsarma, yeah, I guess so. first we need to see if we can find some useful python script
Gopal Sarma
@gsarma
Jul 26 2015 17:17
I think writing something analogous to EvidenceTest.py in PoW is a good idea.
Just to check the PMID's or DOI's
It can be a stub if necessary, just to get the ball rolling.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:18
would you post some link
Gopal Sarma
@gsarma
Jul 26 2015 17:18
Should I create a dummy file and commit it?
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:18
@VahidGh is there anything I can help with regarding the curation interface?
Gopal Sarma
@gsarma
Jul 26 2015 17:18
Ah, you mean to to PoW test- yes, one sec.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:19
@stripathy, needs some django coding, if you are familiar with :D
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:19
actually, yes
can you point me at an issue?
issues?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:20
@stripathy, great. #126, #128, #129
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:21
and where is the code to generate these? in views.py?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:23
Yeah, and related files for each app under the django project
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:25
thanks! @VahidGh this is a bit more complicated than what I'm used to but i'll give it a try
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:26
Yeah, the new UI is ajax-based thanks to @miladjafary, but a bit more complicated
Let me know if you need any help
@stripathy, Now it is everything available for: from digitization to model fitting, I did a sample one for SLO-2 as a case-study
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:33
Needs some more details such as ion-dependent activation etc, which could be completed case-by-case
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:34
@VahidGh i see - it seems like what's left is some minor stuff to aid in the UI process, like choosing which fields are required and autocompletion
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:35
Yeah, the other thing is agreeing or defining some protocol for vclamp digitization
the timing things are a bit more difficult during optimization and fitting
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:36
yeah...
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:37
which would be much better if we could give some hand during the digitization of vclamp plots
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:37
here's an idea for timing things - i think it's going to be inherently hard... maybe we can figure out how to do it by trying to curate multiple examples of the same channel that happens to be studied a lot, like mouse Kv1.1
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:38
yeah, or the SLO-2 I spend much time on
the main problem is with choosing the right point of starting and ending of the activation/inactivation
I could come up with this using some trial and error estimation and then check if this fits to data
The last commit I was working during this week is about lots of these works: VahidGh/ChannelWorm@a918ddc
I also added PSO, in addition to GA for optimization that helped in some cases
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:43
I added some pre-processing for a better and faster fitting and optimization process
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:49
How useful are the fits if no time dependence?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:51
hmmm, not a complete/valid ion channel model in my opinion!!
Richard C Gerkin
@rgerkin
Jul 26 2015 17:51
No one is in the muscle model chat right now, but I have a question about that.
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:51
We should see how it is going to affect the overall AP models!
@rgerkin Hi :D
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:52
Yeah, good point. My feelings are that it's going to be really hard to fit them from digitized traces for various reasons
Richard C Gerkin
@rgerkin
Jul 26 2015 17:53
I am working with my IPython notebook for muscle model, trying to make it parallel to the one I made for ChannelWorm, but I'm not actually sure what the test should be
Gopal Sarma
@gsarma
Jul 26 2015 17:53
Hey Rick
Richard C Gerkin
@rgerkin
Jul 26 2015 17:53
The one I had in the old notebook was just an IV curve for some calcium channel, but that doesn't seem like the most relevant thing
Is ca_boyle a part of muscle model?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:53
@stripathy, but using the latest thing I was working on, we just need to digitize the first, last, and the trace with holding potential
and had good results as you can see
this is of course better than not considering timings at all
Shreejoy Tripathy
@stripathy
Jul 26 2015 17:54
Yeah. Agreed.
Richard C Gerkin
@rgerkin
Jul 26 2015 17:56
OK, looking back at openworm/muscle_model#30 it seems that maybe it is relevant, and is what Stephen originally requested
Vahid Ghayoomie
@VahidGh
Jul 26 2015 17:57
@rgerkin yeah
Richard C Gerkin
@rgerkin
Jul 26 2015 17:59
@VahidGh So by analogy to what is in the ChannelWorm test, is there currently a set of data in our database that would allow me to construct the test?
i.e. that I could build with something like:
doi = '10.1083/jcb.200203055' fig = '2B' sample_data = GraphData.objects.get(graph__experiment__reference__doi=doi, graph__figure_ref_address=fig) obs = zip(*sample_data.asarray()) observation = {'i':obs[0], 'v':obs[1]}
Accessing paper and figure via the Django ORM?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 18:00
@rgerkin, yes, just needs the configuration at the first place
Richard C Gerkin
@rgerkin
Jul 26 2015 18:01
Meaning if I enter the correct DOI and fig it's already there?
Or needs to be added?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 18:01
yeah, if the experiment is digitized
Richard C Gerkin
@rgerkin
Jul 26 2015 18:02
Is every repo now going to have its own db for use with django ORM?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 18:02
No
it should be exported to PyOW soon
Actually I'm not sure if those digitized data are going to be stored in PyOW DB
Travis Jacobs
@travs
Jul 26 2015 18:04
Hey @/all, going to jump back into the hangout right now, and talk about what's been happening!
Vahid Ghayoomie
@VahidGh
Jul 26 2015 18:04
@travs is working on an adapter to convert from django model to PyOW
Gopal Sarma
@gsarma
Jul 26 2015 18:06
@rgerkin can you join the hangout?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 18:38
@travs, OK, I was working on some files during this week
Now I think we can do the master freeze, after syncing the dev with the master
then we can decide when to merge the dev with the master as discussed before
Milad Jafary
@miladjafary
Jul 26 2015 18:40
So we should n't work on master?
Vahid Ghayoomie
@VahidGh
Jul 26 2015 18:43
As suggested by @travs, for the versioning purposes, we will consider this as the first beta semi-stable version
And afterward we will push to the dev branch and when some version decided as stable, will be merged with master
@miladjafar, thanks for the auto-completion, would be very helpful
Milad Jafary
@miladjafary
Jul 26 2015 18:47
@VahidGh OK, I will work on dev branch .
@VahidGh you'r welcome :d