As described in the general OpenWorm documentation, optimization is being employed at several levels of the project. By tuning the parameters of the models to experimental data, a high degree of biological realism can be attained.

How ChannelWorm uses optimization

At a high level, the modeling-validation-optimization loop relies on the optimization process to consume inaccurate models and return more accurate models, given some experimental objective data.

A model is chosen for optimization if it fails the validation stage of this loop. Inside the optimization process, the model's parameters are then tuned to minimize their difference with the experimental data used for validation.

A new model with slightly different parameters is produced, and is pulled into the validation stage once again. This loop continues until the validation stage is passed, and the model is finally stored.

The process in detail

Note:Steps that are not yet streamlined will be tagged with their relevant Github issues. The details of these steps will be added as the issues are resolved.


  • A hook must be established to import models that fail validation
  • Will the optimization itself take place locally or on a remote machine?


  • Selection of free parameters
  • Selection of training data from simulated data
  • What type of optimization algorithm will be used? There is material here about genetic algorithms, and information here on NeuroTune
  • Scripts to perform the optimization will differ depending on the above choice


  • Update the model's parameters with the results of the optimization
  • Save the new model in a form that can be simulated again, to continue the loop