Skip to content

VU-QCB/SSIT

 
 

Repository files navigation

MATLAB Stochastic System Identification Toolkit (SSIT) for modeling single-cell fluorescence microscopy data

SSIT

Authors: Huy Vo, Joshua Cook, Brian Munsky

License

The SSIT allows users to specifiy and solve the chemical master equation for discreate stochastic models, especially those used for the analysis of single-cell gene regulaton.

To learn more about the FSP theory that underlies the SSIT, please see the slide from our Nov. 3, 2022 BPPB Seminar

The SSIT includes command line tools and a graphical user interface to:

  • Build, save, and load models
  • Generate synthetic data from models using Stochastic Simulations
  • Solve models using the Finite State Projection algorithm
  • Compute sensitivity of FSP solutions to parameter variations
  • Load experimental smFISH data
  • Compute/Maximize the likelihood of data givien model
  • Run Metropolis Hastings algorithm to estimate parametr uncertainties given single-cell data
  • Compute the Fisher Information Matrix for CME models
  • Search experiment design space to find optimally informative experiments

Dependencies

For all basic functionalities:

  • MATLAB R2021b or later.
  • Symbolic Computing Toolbox.
  • Global Optimization Toolbox.
  • Parallel Computing Toolbox.
  • Tensor Toolbox for MATLAB. You will need to make sure to add the TTB to the Matlab path before running the SSIT.

Optionally, Sundial's CVODE and CVODES can be used to solve the reduced CME (optional). This requires that Sundials library is installed and is in the computer's search path.

Installation

Clone this package to a local folder on your computer. Then add the path to that folder (with subfolders) into MATLAB's search path. You can then call all functions from MATLAB.

Getting Started

The SSIT provides two basic interaction options: (1) command line tools and (2) a graphical user interface.

GUI Version

To get started with the GUI, compile and launch to tool kit with the following commands:

src2app;

A = SSIT_GUI;

You should then see the model loading and building page of the graphical interface, and you are off to the races... SSIT

Command Line Version

To get started with the Command line Tools, navigate to the directory "CommandLine" and open one of the tutorial scripts "example_XXX.m". Or you caan start creating and solving models as follows.

Example for generating an FSI model and fitting it to smFISH data for Dusp1 activation following glucocorticoid stimulation:

Define SSIT Model

Model = SSIT;

Model.species = {'x1';'x2'};

Model.initialCondition = [0; 0];

Model.propensityFunctions = {'kon * IGR * (2-x1)'; 'koff * x1'; 'kr * x1'; 'gr * x2'};

Model.stoichiometry = [1,-1,0,0; 0,0,1,-1];

Model.inputExpressions = {'IGR','a0 + a1 * exp(-r1 * t) * (1-exp(-r2 * t)) * (t>0)'};

Model.parameters = ({'koff',0.14; 'kon',0.14; 'kr',25; 'gr',0.01; 'a0',0.006; 'a1',0.4; 'r1',0.04; 'r2',0.1});

Model.initialTime = -120; % large negative time to simulate steady state at t=0

Load and Fit smFISH Data

Model = Model.loadData('../ExampleData/DUSP1_Dex_100nM_Rep1_Rep2.csv',{'x2','RNA_nuc'});

Model.tSpan = unique([Model.initialTime,Model.dataSet.times]); fitOptions = optimset('Display','iter','MaxIter',100); pars,likelihood] = Model.maximizeLikelihood([],fitOptions);

Update Model and Make Plots of Results

Model.parameters(:,2) = num2cell(pars);

Model.makeFitPlot

You should arrive at a fit of the model to the experimentally measured Dusp1 mRNA distributions looking something like this:

SSIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 50.4%
  • HTML 36.9%
  • Mathematica 8.4%
  • C 3.8%
  • Other 0.5%