StochOptim: Parameter Estimation

← Back
Example: Estimate parameters of a birth-death model
StochSS implements parameter estimation for stochastic well-mixed biochemical systems, StochOptim, via the Monte Carlo expectation-maximization with Modified Cross-Entropy method (MCEM$^2$) [5].
MCEM$^2$ computes maximum likelihood parameter estimates (MLEs) and associated uncertainties in three consecutive phases: cross-entropy, Monte Carlo expectation-maximization (MCEM), and uncertainty quantification [5].

Example: Estimate parameters of a birth-death model

We consider the Birth-Death model that can be imported from the StochSS Public Library (see Section~\ref{chapter1} for instructions on how to import models in StochSS).
After the model has been imported:

  1. Select Parameter estimation from the menu on the left of the screen.
  2. Select the birthdeath model and click Next. This will open the Simulation page.
  3. Example files (StochOptim input data) for the initial conditions and the trajectories are provided in the examples folder (included in your StochSS package) and are named birthDeathInitial.txt and birthDeathTrajectories.txt, respectively.
  4. Upload and select these example files.
  5. Configure the checkboxes to only perform parameter estimation on $k1$. For the example model, the value of $k2$ is already optimized.
  6. Click Run Locally to start the parameter estimation.
  7. Select Job Status from the menu on the left of the screen to monitor the status of your submitted job. For the example trajectory data, $k1 = 1.0$ and $k2 = 0.03$ are the correct parameter values so the simulation should converge to somewhere close to these.
  8. Click View Progress to access the Job Summary page and to view more details about status of your job. Parameter estimation calculations using MCEM$^2$ are typically time consuming computations. This simple example takes a little less than $20$ minutes on a desktop Intel i7 computer. A more realistic job will take much longer to run.
  9. When the job has finished, you can generate a new model using the final estimates of the MCEM$^2$ calculation by scrolling to the bottom of the Job Summary page and click Create Model from Current Estimates.
  10. If the job doesn’t complete in a reasonable amount of time the job can be stopped manually on the Job Status page and the parameters can be extracted by clicking Create Model from Current Estimates.
StochOptim input file format

The StochOptim input data format consists of two tab-separated text files.
The first file represents the initial conditions of the system, and the second file represents trajectories of it.
Each file has three base columns. Time, Rep, and Weight. Additional columns are added for every species in the model that parameter estimation is to be run on.

  • The Time column contains the time values of the various trajectories (and should be set to zero for the initial conditions file).
  • The Rep column is used to include multiple trajectories in one file for fitting. Basically each trajectory should have a different Rep number.
  • The Weight column is currently unused and should be set to $1$.
  • The rest of the columns should be named after the species (case-sensitive) in the model the data will be fit against, and the columns themselves should contain integers representing the population counts at the various time points.

An example of this can be seen by comparing the files birthDeathTrajectories.txt and birthDeathTrajectoriesMulti.txt in the examples folder included in the StochSS package.
← Back