Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update optimization.py to run with neurotune instead of optimalneuron #18

Closed
VahidGh opened this issue Dec 4, 2014 · 9 comments
Closed

Comments

@VahidGh
Copy link
Member

VahidGh commented Dec 4, 2014

Based on the changes in the neurotune, I guess optimalneuron should be replaced with neurotune in the optimization.py.

@pgleeson
Copy link
Member

pgleeson commented Dec 5, 2014

Thanks for checking through these @VahidGh. Yes, neurotune (and pyelectro) have replaced optimalneuron. Unfortunately these files haven't been updated since that change.

Also in that time, libNeuroML has become more stable, pyramidal hasn't been updated much & jNeuroML is the most well tested way for running NeuroML2 models. Now the preferred pipeline is:

libNeuroML (create/edit model) -> NeuroML2 XML files -> jNeuroML (load) -> simulate -> check & optimise

or

libNeuroML (create/edit model) -> NeuroML2 XML files -> jNeuroML (load & export to NEURON) -> simulate -> check & optimise

as opposed to:

libNeuroML -> Pyramidal -> NEURON -> simulate -> check & optimise

My suggestions for updating this code are:

  • create a new LEMS file (e.g. based on this to run a simulation with just the current NeuroML2 muscle & an input current
  • get main.py running with the NeuroML2 muscle model
    • load in ../NeuroML2/SingleCompMuscle.cell.nml & *.channel.nml using loaders.NeuroMLLoader.load in init() into one NeuroMLDocument
    • adjust the values in the nml files using libNeuroML
    • save this new NeuroML file (include cell & channels in one file) in a new file with unique name
    • create a copy of the LEMS file above which uses this new cell
    • run the new lems file with jNeuroML when run() is called in main.py and reload the saved trace for v in a local array
  • update run.py to use the updated main.py and use neurotune/pyelectro instead

Try my forks of neurotune and pyelectro, as I've retested & updated these recently.

@VahidGh
Copy link
Member Author

VahidGh commented Mar 10, 2015

@pgleeson, Could you please explain what is the meaning of these gating parameters, and why do we choose these values?

@pgleeson
Copy link
Member

I wouldn't take any meaning from those particular values, they look like they are based on the HH model and probably were used just for testing. It's a long time since that code worked...

@VahidGh
Copy link
Member Author

VahidGh commented Mar 11, 2015

@pgleeson, Thanks for your reply. I was going to look if I can do something with this code, regarding to the optimization case study issue.
Is this still your suggested pipeline? or it could be implemented easier via PyNeuroML, now?

@VahidGh
Copy link
Member Author

VahidGh commented Mar 12, 2015

@pgleeson, another question related to the gating states of an ion channel: is there a way that I can represent a Markov model (gating dynamics) via NeuroML2/LEMS?

@pgleeson
Copy link
Member

For your 2nd question, see here an example of a kinetic scheme based channel specification in NeuroML2: https://github.com/NeuroML/NeuroML2/blob/development/LEMSexamples/LEMS_NML2_Ex4_KS.xml. This runs with jNeuroML (but not jNeuroML->NEURON), but I don't believe this channel type has been tested/used beyond this example...

Re optimisation, I started this updated version of the optimiser code to work with c302, but it's not yet finished. Have a look if you like. Requires my forks of neurotune and pyelectro. Hope to get this more stable in the next week.

@VahidGh
Copy link
Member Author

VahidGh commented Mar 12, 2015

Actually I needed that type of gating kinetics for other purposes (representing channel kinetics with Markov models I saw in some studies). Although here was not a right place to ask the question, but thank you for your explanation :)

@pgleeson
Copy link
Member

This issue is redundant, due to the work ongoing to use neurotune in c302, see https://github.com/openworm/CElegansNeuroML/blob/master/CElegans/pythonScripts/c302/tune/c302tuner.py, and ChannelWorm https://github.com/VahidGh/ChannelWorm/tree/cwFitter/cwFitter.

The code in this repo using neurotune/optimalneuron probably won't be revived (sorry @vellamike)...

@VahidGh
Copy link
Member Author

VahidGh commented Jun 23, 2015

@pgleeson, Now I'm much more familiar with all these stuff. I can also work on this if we need to.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants