Capabilities of mass action kinetics
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Arun
il 2 Mag 2025
Commentato: Arthur Goldsipe
il 5 Mag 2025
Hi,
I have a molecule A. Molecule A can undergo a system of reactions as seen in the figure below. 

Basically it can undergo a network of reactions (a custom combination of parallel and consequetive reversible steps ending with a final irreversible step). I have the rate constants (both forward and reverse for reversible steps) for all these steps.
Tilll now, i have been manually coding the time evolution of systems like these, using a system of first order coupled linear differential equations (solving a master equation). But the networks are getting complicated.
Solving this would get easier if I could use a MATLAB app which would help me build a network without manually coding it in.
Recently I came across this "Mass Action Kinetics" module in matlab. Does this module have the capability to solve systems like this? Is there anything else MATLAB has that can help me.
Thanks!
0 Commenti
Risposta accettata
Arthur Goldsipe
il 2 Mag 2025
Yes, this is exactly the sort of problem SimBiology is designed for. (I'm one of the developers of this product.) You can build this reaction network in a diagram very similar to what you show in your question. Or you can build the reaction network programmatically. SimBiology also offers several analysis tools on top of simulations, such as parameter estimation and sensitivity analysis. You can read more about SimBiology here. If you have specific questions about how to use it for your situation, feel free to post another question here.
2 Commenti
Arthur Goldsipe
il 5 Mag 2025
No need to repost this as a separate question. However, I do suggest a new post for any future questions.
You have several options, depending on what you want to do. My answer will be kind of long, but I want you to understand the full suite of options since all of them can be useful in different siutations.
Variants
My first thought is to use SimBiology variants. A variant is a set of alternative values that you organize by name. So here's how you could set up a variant that has new values for parameters k11 and k12:
variant1 = sbiovariant('MyVariantName');
addcontent(variant1, {'parameter', 'k11', 'Value', 2});
addcontent(variant1, {'parameter', 'k12', 'Value', 3});
variant1
You can update your model to use these parameter values using the commit method. Or you just use these values for a specific simulation by passing them as an additional argument to sbiosimulate:
model = sbiomodel('Test');
addparameter(model, 'k11', 'Constant', false);
addparameter(model, 'k12', 'Constant', false);
simResults = sbiosimulate(model, variant1);
commit(variant1, model);
sbioselect
In addition, you can use the sbioselect function to find a parameter by name and make changes to it:
k11 = sbioselect(model, 'Name', 'k11');
k11.Value = 1.5
SimFunction
If you want to simulate your model many times, you might want to create a SimFunction. A SimFunction will automatically accelerate your simulations (by generating and compiling more efficient code the first time you simulate). This typically speeds up future simulations by 10- or 20-fold. If you have Parallel Computing Toolbox, you can also easily run multiple simulations in parallel (see the UseParallel name-value pair to for createSimFunction).
Scenarios
Scenarios might be another convenient way for you to create "samples" of parameter values and use them for simulations. They are sort of a more powerful alternative to variants. You can use them to sample distributions of parameter values. You can also easily combine scenarios. For example, here's how you can easily sample and simulate all pairwise combinations of values for two parameters:
scenario = SimBiology.Scenarios;
add(scenario, 'cartesian', 'k11', 2:.5:4);
add(scenario, 'cartesian', 'k12', 3:.5:5);
simFunc = createSimFunction(model, scenario, {'k11','k12'}, []);
simDataScan = simFunc(scenario, 10);
Sensitivity analysis
Finally, if your simulating different parameter values for the purposes of sensitivity analysis, take a look at the sensitivity analysis features built in to SimBiology.
Più risposte (1)
TED MOSBY
il 2 Mag 2025
Hi Arun,
You can refer to MATLAB's "SimBiology Model Builder" which can be found in the "Apps" tab. You can sketch an arbitrary reaction network – including reversible steps that follow mass‑action kinetics – enter the forward and reverse rate constants, and SimBiology will automatically assemble and solve the underlying system of ODEs.
Please refer to this example for your use-case:
For more information about the toolbox please refer here:
Hope this helps!
0 Commenti
Vedere anche
Categorie
Scopri di più su Perform Sensitivity Analysis in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!