Utilities for findsim
FindSim provides a variety of tools:
- to simulate and test experiments (in both, single and batch mode)
- single- and multi-parameter sensitivity analysis and,
- model optimization
- runAllParallel.py :
This program is useful to find out how a given model works against a range of experiments. This script runs the findSim program on all experiments (codified as tsv files) in the specified directory and computes scores to indicate how well the simulations fit the experimental data. The program then prints out basic stats of the scores. Since there are likely to be multiple tsv files pertaining to any given model, the program is able to run all these in parallel on multicore machines. Even your laptop is probably a multicore machine.
- basicParameterSweep.py :
This program is useful for initial explorations of parameter space, and parameter sensitivity analysis. This program launches a parameter sweep, that is a systematic scan through parameter space for a model. It runs the findSim program on all experiments (codified into tsv files) in the specified directory, and repeats all this for each combination of parameters. It computes the mean score of all experiments for each parameter setting and presents the "best" (parameter, score) along with next-best flanking parameters. It can do this in parallel on a multicore machine, using Python's multiprocessing library. parallel on a multicore machine.
- Brent_minimization.py :
This program is useful to explore how a single parameter (representing, say, a mutation) may affect system behaviour. This program does a single-parameter optimization using Brent's method. It runs the findSim program on all tsv files in the specified directory with modifications of the selected parameter. It computes the weighted score for each run as the return value for the minimization function. While the Brent algorithm is serial, it supports parallelization as follows: one typically has large numbers of tsv files (experiments) to constrain each model. Thus there may be several indvidual tsv calculations for each step that can be done in parallel.
- multi_param_minimization.py :
This program is useful to 'improve' a model by comparing it systematically to all the relevant experiments, and tweaking parameters.
Beware: if you have a bad model (which is incorrect about key biological interactions) then no amount of parameter tweaking will give you a good model!
This program does a multi-parameter optimization using the Python implementation of the BGFR method with bounds. Like the Brent minimization, it runs the findSim program on all tsv files in the specified directory. It computes the weighted score for each run as the return value for the minimization function, which the BGFR algorithm then uses to choose its next test point. While the BGFR algorithm is serial, the _multi_param_minimization_ program supports parallelization as follows: one typically has large numbers of tsv files (experiments) to constrain each model. Thus there may be several indvidual tsv calculations for each step that can be done in parallel. This is highly advisable for this program because multi-parameter optimization usually requires hundreds of individual FindSim runs.
There are many caveats to using multi-parameter optimization: the method is prone to getting stuck in local minima, you should NOT use too many parameters, you SHOULD set bounds to allowed parameters (which we do here), and so on. Most importantly, I remind you: A bad model cannot be parameter-tweaked into a good one.