Pre-equilibrating models when performing global sensitivity analyses
    10 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Abed Alnaif
 el 18 de Nov. de 2021
  
    
    
    
    
    Comentada: Florian Augustin
    
 el 22 de Nov. de 2021
            Hello,
Is it possible to specify to pre-equilibrate a model, using functionality such as that available in sbiosteadystate, before applying doses when performing global sensitivity analyses?
Thanks,
Abed
0 comentarios
Respuesta aceptada
  Florian Augustin
    
 el 19 de Nov. de 2021
        Hi Abed,
You can chain a steady-state analysis and a global sensitivity analysis. For this you first have to run sbiosteadystate to compute the steady-state as you mentioned. The function returns a SimBiology model in steady-state (the third output argument of the function); all non-constant component values are set to the steady-state values and all initial assignment rules are disabled. The latter is important, because if the steady-state variant (that is also returned by sbiosteadystate) is used to simulate the original model in steady-state, then any active initial assignment rules will likely push the model off the steady-state. 
Using the steady-state model, you can then perform the global sensitivity analysis. The doses you want to explore can be specified as name-value arguments when calling sbiosobol, sbiompgsa, or sbioelementaryeffects. You can also parameterize the doses to explore the effect of, for example, varying dose amounts.
I hope this helps.
-Florian
5 comentarios
  Florian Augustin
    
 el 22 de Nov. de 2021
				Hi Abed,
Yes, this is the behavior of sbiosteadysteate. The reason is that the variant captures a snapshot of the model components' values at steady-state. This includes values of constant components because values of non-constant components depend on them. Otherwise, changing values of constant components on the model would mean that the variant does not represent a steady-state of the model anymore.
Unrelated to your question, I wanted to point out one subtlety of the script that I hinted at in the first answer I posted on this thread. It assumes that the model does not have inital assignment rules (it uses the original model for running the simulations). If your model has initial assignment rules you would either have to deactivate/reactivate those before/after creating the SimFunction (line 44), or change lines 36 and 44 to use the model returned by sbiosteadystate:
% Get model in steady-state that has initial assigment rules deactivated:
[success, steadyStateVariant, steadyStateModel]  = sbiosteadystate(...);
% Use steady-state model with deactivated initial assignment rules to create SimFunction:
simFun = createSimFunction(steadyStateModel, params, sensOutputs, []);
Best,
Florian
Más respuestas (0)
Comunidades de usuarios
Más respuestas en SimBiology Community
Ver también
Categorías
				Más información sobre Perform Sensitivity Analysis 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!