Simbiology interface: only plot time course simulations? or, it is possible to plot, for example, binding curves without leaving the interface?
5 views (last 30 days)
Show older comments
Luis B. Walter
on 23 Feb 2024
Commented: Luis B. Walter
on 28 Feb 2024
The question arises because I simulated equilibrium binding isotherm of the Exclusive/Monod-Wyman-Changeaux model for cooperativity in Simbiology interface. The result of the simulation is a Datasheet that contain the simulating data (concentration of all complexes between ligand and receptor in equilibrium, values of binding density and free ligand concentration at each total ligand concentration). Binding density and free ligand concentration data (to plot binding curve or binding isoterm) are exported to the Matlab workspace and then we construct the plot from the workspace of the principal program. Can I plot, for example, this data directly from the sSmbiolgy interface without the need to export them to the workspace? How?
I attached a file that shows the Simbiology protocol of such an example, the Datasheet image and the plot obtained from the Matlab workspace.
Thanks, a lot
Luis B.
0 Comments
Accepted Answer
Jeremy Huard
on 26 Feb 2024
the definition of your observables let me think that they will change over time and thus, that they are not scalar observables. But I see that you simulate with stopTime=0. Is this what you intended to do?
But let me address your specific question about creating this plot in the Model Analyzer App.
This type if plot is created by default after a scan whenever an observable returns scalar values. SimBiology creates a scatter plot for each observable vs each scan parameter. But again the observables need to be scalar. In you specific case, the observable data will contain only one value because stopTime is set to 0 but if you were to simulate for a larger stopTime, your observable data will be a time-dependent vector. So, SimBiology sees your observables as time-dependent and not scalar.
I recommend you add a new observable nu_0 = nu(end). nu_0 will be a scalar and SimBiology will create a plots nu_0 vs L after running the scan program.
I hope this helps.
Jérémy
4 Comments
Jeremy Huard
on 28 Feb 2024
there are a couple of points I would like to address:
Steady state computation:
you are correct that when a system reaches steady state at , . But if the concentrations were not carefully chosen for the system to be at steady state from the start.
So, simulating your system with stopTime=0 will not necessarily give you steady state values.
The steady state computation in SimBiology does the right thing: it will try to solve the system of equation algebraically. It it fails, it will run a simulation until a steady state is detected with some tolerance.
Nomenclature in SimBiology:
If a species was named L, you can use L in a repeated assignment, which will correspond to its time-dependent value L(t). If you use L in a initial assignment, it will denote its initial value L(0).
Now, when you choose a quantity in a scan program, SimBiology will set its value at the beginning of each simulation using the sampled values. So, if L is one of the quantities sampled in the scan program, you will effectively sample its initial value L(0).
Likewise, when you run a fit program and choose to estimate L, you will estimate the initial value of L.
Your model:
From what I see, the total concentration of L seems constant. There is no synthesis nor any elimination.
So, I would recommend to add a parameter Ltot which denotes the total concentration of L in the system.
Now, you can define L with a repeated assignment:
L = Ltot - RL - 2*RL2 - 3*RL3 - 4*RL4
Since L is determined by this equation, you can remove its associated ODE to avoid overdetermination. For that you can set its BoundaryCondition property to true. Please refer to this post for more information.
Plot:
Instead of selecting the two observables in the Browser individually, you need to select the row:
scalars, 1x1, table
Best,
Jérémy
More Answers (0)
Communities
More Answers in the SimBiology Community
See Also
Categories
Find more on Scan Parameter Ranges in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!