Pre-equilibrating models when performing global sensitivity analyses
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
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
채택된 답변
Florian Augustin
2021년 11월 19일
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
Hi Florian,
Does this approach take into consideration that the steady-state may be different for the different parameter samples in the GSA?
Thanks,
Abed
Florian Augustin
2021년 11월 19일
편집: Florian Augustin
2021년 11월 22일
Hi Abed,
My apologies, I was thinking of a different workflow. There is currently (Matlab release R2021b) no flag that allows you to specify that the model should be run to steady-state while running the global sensitivity analysis.
This rules out sbiosobol and sbioelementaryeffects, but you may still be able to use sbiompgsa; assuming the requirement for this type of analysis is met; a way to check this is that the steps in the eCDF plots should become smaller with increasing number of samples.
The workflow to achieve the GSA in steady-state is possible but a bit complicated. Here is the general idea:
- Use SimBiology.Scenarios to generate parameter samples for the sensitivity analysis. You can specify probability distributions and sampling methods / options in a similar way as you would for sbiompgsa.
- Compute the steady-state for all scenarios.
- Generate simulation data by simulating the model based on the steady-state configuration.
- Run sbiompgsa for parameter samples (from step 1) and the generated simulation data (from step 3).
An example how this could be done is attached. You would have to swap out the model, configure the sensitivity inputs/outputs, adapt the model simulation off of the steady state (lines 43 and 47), and adapt the classifier in line 57. You may also want to change the configuration of how sbiosteadystate is called.
Best,
Florian
Edited (Nov. 22, 21): Correction of the attached script to use independent samples for the sensitivity inputs.
Thank you, Florian! I'm able to follow and understand the example workflow. This is very helpful.
Florian, one more question related to the workflow: The documentation for sbiosteadystate indicates that the output variant will contain "all non-constant species, compartments, and parameters of the model having the steady-state values". However, I noticed in the workflow that the output variant contains constant parameters, and the workflow as coded depends on this, because only the steady-state variant is passed into the call of the simfunction on Line 48. Can you please confirm the behavior of sbiosteadystate -- does the outputted variant include constant parameters?
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
추가 답변 (0개)
커뮤니티
더 많은 답변 보기: SimBiology Community
카테고리
도움말 센터 및 File Exchange에서 Perform Sensitivity Analysis에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
