FindSim source code is hosted at http://github.com/BhallaLab/FindSim.
Quick start for Command line reference and Utilities for FindSim:
- A. Run one of the example experiments on the default model, generating a graph to compare model to experiment
To run the script, run the command in python with one of the example experiments on the default model, generating a graph to compare model to experiment:
- To run with the latest model "synSynth7.g" that is tested out the worksheet, run the command in python
- B. Batch run
- 1. runAllParallel: 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
- 2. basicParameterSweep: 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.
- 3. Brent_minimization: This script does a one-dimensional minimization on the model. It runs the findSim program on all tsv files in the specified directory with modifications of the selected parameters. It computes the weighted score for each run as the return value for the minimization function. While the
Brent algorithm is serial, there are lots of indvidual tsv calculations for each step that can be done in parallel.
- 4. multi_param_minimization:This program is useful to 'improve' a model by
comparing it systematically to all the relevant experiments, and tweaking
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.