MATLAB Answers

How to fit steady state data in SimBiology Desktop 5.7?

3 views (last 30 days)
I am trying to use SimBiology to fit a simple model of receptor binding, consisting of a ligand, a receptor, and a complex. The reaction uses reversible mass action kinetics. I can fit this system to time course data, but have not been able to figure out how to use steady state data to find the forward and reverse kinetic rate constants. For example, the data I am trying to fit can be simulated by the following table:
Ligand concentration (nM) | Resulting complex concentration (normalized)
0.01 | 0.01
0.03 | 0.05
0.20 | 0.15
1.00 | 0.35
3.00 | 0.70
11.0 | 0.85
110 | 1.00
I have tried to estimate parameters by having a bolus of ligand "injected" and then some (long) time later reporting the normalized complex concentration. However, this results in values which do not return the initial logistic curve. I would prefer to use SimBiology Desktop as I am new to the program, but I am willing to learn how to program a model in the workspace. Any help or tips would be appreciated. Thank you!
  2 Comments
Nicholas Anderson
Nicholas Anderson on 29 Jan 2018
Florian,
Thank you for the response. I understand that steady state data alone cannot determine rates for a system. I'm sorry for the confusing. I have a mixture of kinetic and steady state data that I would like to match. So, to extend the example above, I have a few kinetic data points for the system to constrain parameter values. Is there some way that I can use both of these data in the model? I have been playing around with the system and the fit task, but I can't seem to get it to work. Thanks again!
-Nick

Sign in to comment.

Accepted Answer

Florian Augustin
Florian Augustin on 30 Jan 2018
Hi Nick,
Here is an example of a simple model with one mass action reaction, L <-> C, with initial amounts of L and C being 1 and 0, respectively. The goal is to estimate the forward, kf, and reverse, kr, reaction rate parameters from data:
ID TIME LDATA CDATA DOSING
'1' 0 NaN NaN 1
'1' 0.056515 1.896 0.10399 NaN
'1' 0.2819 1.6196 0.38043 NaN
'1' 0.43163 1.5161 0.48388 NaN
'1' 2.1167 1.3346 0.66538 NaN
'1' 2.666 1.3336 0.66638 NaN
'1' 10 1.3333 0.66667 NaN
'2' 0 NaN NaN 2
'2' 10 2 1 NaN
'3' 0 NaN NaN 3
'3' 10 2.6667 1.3333 NaN
'4' 0 NaN NaN 4
'4' 10 3.3333 1.6667 NaN
This table contains data for four different experiments (ID). Each experiment corresponds to a different dose (DOSING) and has different data for L and C (LDATA/CDATA). In this example, we have steady state data (at time 10) for all experiments, but transient data is only available for the first experiment. Missing or not applicable data is indicated using NaN.
I am assuming you already have the model in the SimBiology desktop. The following steps give you a high-level overview of how to set up the fit task:
In the "Data" section, choose "Import Data from MATLAB workspace..." to add the table to the task. The "Independent Variable" should be TIME and the "Group" should be ID.
Next, click on the little + in section "Estimated Parameters" and add kf and kr to the list. Since this example is well-scaled, I suggest choosing no transformation.
Next, in section "Dosing Information", enter DOSING as "Dose Column Name" and L as "Dose Component Name".
In section "Response and Error Model Information" add "Response Column Name"s LDATA and CDATA with "Response Component Name"s L and C, respectively.
Lastly, expand section "Estimation Method" and check "Pool data". This tells the fit that all of your experiments share the same parameters, i.e. you can combine data from multiple experiments to inform the estimation of the rate parameters.
Now click the "Run" button in the tool strip on the top of the Task Editor. You should obtain rate parameters [kf, kr] close to [1, 2], which I used to create the data in the first place.
I hope this helps.
Best
-Florian

More Answers (0)

Communities

More Answers in the  SimBiology Community

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!