Skip to content

jorgeseifert/muscle_model

 
 

Repository files navigation

Build Status

Open Worm muscle model

Authors: Mike Vella, Alex Dibert, Padraig Gleeson email:mv333@cam.ac.uk

If you contribute to the project please add your name to the Authors field

Introduction

This repository contains the following:

  1. Simulation of C.Elegans muscle cell electrical properties, based on Boyle & Cohen 2008.

  2. Optimization script for model above model, utliising Optimal Neuron package. Optimizing towards sharp electrode data obtained from lab of Michael M Francis.

  3. C++ Module for importation of arbitrary Pyramidal model into C++ program such as Palyanov et al SPH solver.

  4. NeuroML 2/LEMS conversion of the muscle cell model

  5. Simulation of C.Elegans muscle cell electrical properties


The relevant model is contained in the /pyramidal_implementation folder

This model includes the following currents: - k_fast - k_slow - Ca - leak

Running model

To run model install pyramidal and its dependencies as described here: http://pyramidal.readthedocs.org/en/latest/install.html

The relevant model is contained in the /pyramidal_implementation folder, cd to that folder and:

Then execute the command:

 >>>python run.py eval_file0 40.041444758152295 0.0 4514.250191560498 35.2 0.4089 0.6 --compile --plotoverlay

This will use the auto-mod file compilation feature of Pyramidal including nrnivmodl compilation and run the model with the best-optimized parameters to-date.

Running optimization

To run model install Optimal Neuron and its dependencies as described here: http://optimal-neuron.readthedocs.org/en/latest/installation.html

Remove any mod files (such as ca.mod) from the pyramidal_implementation repository as this will interfere with the optimizer behaviour, the optimizer is designed to run with the manual_*.mod files which are located in the /mod_file directory and need to be the only mod files present in the /pyramidal directory before execution of the optimization script.

The current optimization is set up to use features extracted from the data file, the feature values are:

'peak_linear_gradient': 0.0126455, 'average_minimum': 32.9139683819512, 'spike_frequency_adaptation': 0.054102950823597951, 'trough_phase_adaptation': -0.032339835206814785, 'mean_spike_frequency': 170.75638755391191, 'average_maximum': 52.484330488178259, 'trough_decay_exponent': 0.082997586003614746, 'interspike_time_covar': 0.67343012507213718, 'min_peak_no': 20, 'spike_width_adaptation': 5.196371093168479e-17, 'max_peak_no': 20, 'first_spike_time': 105.37999999997665, 'peak_decay_exponent': -0.074000673186574759

and corresponding weights:

'peak_linear_gradient': 20,'average_minimum': 5.0, 'spike_frequency_adaptation': 0.0, 'trough_phase_adaptation': 0.0, 'mean_spike_frequency': 1.0, 'average_maximum': 2.0, 'trough_decay_exponent': 0.0, 'interspike_time_covar': 0.0, 'min_peak_no': 1.0, 'spike_width_adaptation': 0.0, 'max_peak_no': 50.0, 'first_spike_time': 1.0, 'peak_decay_exponent': 0.0

Then run:

 >>>python optimization.py

The optimizer will execute on 64 threads and display the results. Play with optimization.py to change #threads, #population #max_evaluations etc.

  1. C++ Module for SPH/muscle_model integration

NOTE: This is still at an alpha stage, but has been demonstrated to function as expected.

to compile and run (temp notes with hardcoded paths - replace with your own path) run the following commands from inside curdir:

$ export PYTHONPATH="/home/mike/dev/cpp_pyramidal_integration/" OR export PYTHONPATH=$PYTHONPATH:/home/mike/dev/muscle_model/pyramidal_implementation/ $ g++ main.cpp -l python2.7 -o sim -I /usr/include/python2.7/ $ ./sim

The resultant so file will then be importable in any c++ module and present a PyramidalSimulation class with a run() method which will return the membrane potential at the end of execution of a fixed timestep.

  1. NeuroML 2/LEMS conversion of the muscle cell model

This version of the muscle model reflects an initial attempt to convert the model from: http://www.sciencedirect.com/science/article/pii/S0303264708001408 into NeuroML 2 (http://www.neuroml.org/neuroml2.php).

We're in the process of updating this to match the version in: https://github.com/openworm/muscle_model/tree/master/neuron_implementation

See issue: openworm/OpenWorm#169 for the latest.

See also http://www.opensourcebrain.org/projects/muscle_model/wiki.

Build Status

About

model of c.elegans muscle in NEURON

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 33.8%
  • MATLAB 30.9%
  • C++ 26.0%
  • Shell 4.6%
  • Makefile 4.2%
  • M 0.5%