How to reference compartment value? (Volume)
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Felix
el 23 de Sept. de 2022
Comentada: Jeremy Huard
el 29 de Sept. de 2022
How do I reference the volume of a compartment in a mathematical expression?
For example, I can reference species "S" in compartment "C" via:
C.S
But none of these works to reference C's volume, even though they are the properties of compartments according to the documentation :
C
C.capacity
C.value
I can't seem to find an answer in the documentation.
0 comentarios
Respuesta aceptada
Jeremy Huard
el 23 de Sept. de 2022
Hi Felix,
you can refer to the volume of a compartment by the name of the compartment in any expression: C in your case.
Here is a quick example:
modelObj = sbiomodel('model');
compObj = addcompartment(modelObj,'C',1,Units='liter');
addspecies(compObj,'S',0,Units='milligram/liter');
addparameter(modelObj,'ke',0,Units='1/hour');
addparameter(modelObj,'CL',2,Units='liter/hour');
addrule(modelObj,'ke = CL/C','initialAssignment');
reacObj = addreaction(modelObj,'C.S -> null');
kObj = addkineticlaw(reacObj,"MassAction");
kObj.ParameterVariableNames = {'ke'};
cs = getconfigset(modelObj);
cs.CompileOptions.UnitConversion = true;
modelObj.Rules
Best regards,
Jérémy
2 comentarios
Jeremy Huard
el 29 de Sept. de 2022
Hi Felix,
stoichiometric coefficients must be numbers (double) and they can't be parametrized. Which means that a reaction like is fine but is not.
One way to achieve this woud be with a script that modifies the stoichiometric coefficient. For example:
modelObj = sbiomodel('cell');
compObj = addcompartment(modelObj,'Central',10,Units='liter');
reactionObj = addreaction(modelObj, '2 a + b -> c');
modelObj.Reactions
reactionObj.Stoichiometry(2) = -compObj.Value;
modelObj.Reactions
I am curious about your use case though.
Can you tell me more about the what you are trying to achieve?
Best regards,
Jérémy
Más respuestas (0)
Comunidades de usuarios
Más respuestas en SimBiology Community
Ver también
Categorías
Más información sobre Extend Modeling Environment en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!