49 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Elisa am 3 Jul. 2024 um 10:33
Kommentiert: Jeremy Huard vor etwa 2 Stunden
Akzeptierte Antwort: Jeremy Huard
Hi everyone, I am studying a simbiology model not made by me. In particular, I know that some parameters/species have inconsistent units, I just don't know which ones, since it's a huge model. While the Unit Conversion of Simbiology works perfectly, I'd like to know which parameters have different units; in other words I'd like to have a model with consistent units, that would work without using the unit conversion. It would also be sufficient to have, somehow, a table of the changes in units wrt a 'ground' unit, so that I can change the units manually.
I don't know if that's possible in simbiology and I haven't found any documentation on that.
3 Kommentare 1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
John D'Errico am 3 Jul. 2024 um 11:16
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3201391
Bearbeitet: John D'Errico am 3 Jul. 2024 um 11:31
Even without any knowledge of the tool, I seriously doubt it is possible. I could be wrong, but I think not. You might suggest it as a feature request, but you don't do that in Answers. Send your idea directly to tech support.
As for having a table of all changes made on the fly by the tool, I think that is even less likely to happen.
Elisa am 3 Jul. 2024 um 11:43
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3201416
⋮
Yes that's what I thought, but I guess proving the 'middle model' with consistent units could be something doable and it would be extremely useful when developing. Thank you for your quick reply by the way!
John D'Errico am 3 Jul. 2024 um 12:24
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3201451
You got the best possible result, actually, in the sense that you just got a response from someone on the staff. I hope it helps!
Melden Sie sich an, um zu kommentieren.
Melden Sie sich an, um diese Frage zu beantworten.
Akzeptierte Antwort
Jeremy Huard am 3 Jul. 2024 um 12:13
Bearbeitet: Jeremy Huard am 3 Jul. 2024 um 12:16
In MATLAB Online öffnen
Hi @Elisa,
I am curious about why you want to turn off unit conversion. Can you please explain the motivation behind it?
As for an implementation, one possible way to convert parameter units with your system of units could be as follows:
% export the model object to the MATLAB workspace from the Model Builder
% and keep Model Builder open
% create dictionary to map current/old units to new ground units
conversiondic = configureDictionary("string","string");
conversiondic("milligram") = "nanogram";
conversiondic("day") = "hour";
conversiondic("milliliter") = "liter";
conversiondic
% get parameter objects with a unit composed with one of the old units
parObj = sbioselect(modelObj,'Type','Parameter','Where','Units','function',...
@(x) contains(x,conversiondic.keys))
% convert units of each parameter
for currentPar=parObj'
oldunit = currentPar.Units;
% convert unit string to ground units
newunit = replace(oldunit,conversiondic.keys,conversiondic.values);
% convert parameter value to new units
sbioconvertunits(currentPar,newunit);
end
parObj
% the changes in units and values of these parameters will now be reflected
% in Model Builder as well.
% you can now keep working in the Model Builder Apps and save your project
4 Kommentare 2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
Elisa am 3 Jul. 2024 um 13:45
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3201541
Hi @Jeremy Huard I will try your solution for sure! The main reason is that I wanted to perform a identifiability analysis of the model with a MATLAB library (so not integrated in simbiology). I needed to figure out a method for having consistent units after exporting all the necessary info with getequations(). Thank you very much for your quick reply!
Jeremy Huard am 3 Jul. 2024 um 14:09
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3201576
Bearbeitet: Jeremy Huard vor etwa 6 Stunden
Thanks @Elisa.
Can you share which library? Is it related to your previous post?
I also wonder whether you have tried the Profile Likelihood method for practical parameter identifiability. It can be computed after a fit program using the Confidence Interval step in Model Analyzer or programmatically with sbioparameterci. Would this be an option?
Best,
Jérémy
Elisa vor etwa 4 Stunden
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3202641
Hi @Jeremy Huard, sorry for the late reply. Yes, it's always GenSSI (you can find the link to the repo in the previous post).
The SBML does not a perfect job in exporting the model, since simbiology supports several things that cannot be coded into SBML. I am parsing the result of getequation(), but it has been a pain changing the units of each parameter, I was interested in automating this task.
I've tried using the Profile Likelihood method, but sbioparameterci takes a long time to run (I'm talking > 30 hours), and I've suggested to use GenSSI instead for global and structural identifiability analysis.
Elisa
Jeremy Huard vor etwa 2 Stunden
Direkter Link zu diesem Kommentar
https://de.mathworks.com/matlabcentral/answers/2134091-get-information-from-unit-conversion#comment_3202726
Thanks @Elisa for this info!
Calculating the Profile Likelihood CI can indeed be quite computationally expensive.
If you use the optimization-based method, increasing MaxStep and the Tolerance with a local optimizer might help. You could also try the integration-based method. In both cases parallel computing would help if you have access to the Parallel Computing Toolbox.
Melden Sie sich an, um zu kommentieren.
Weitere Antworten (0)
Melden Sie sich an, um diese Frage zu beantworten.
Communitys
Weitere Antworten in SimBiology Community
Siehe auch
Kategorien
Computational BiologySimBiologySimulationScan Parameter Ranges
Mehr zu Scan Parameter Ranges finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
Es ist ein Fehler aufgetreten
Da Änderungen an der Seite vorgenommen wurden, kann diese Aktion nicht abgeschlossen werden. Laden Sie die Seite neu, um sie im aktualisierten Zustand anzuzeigen.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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
- Deutsch
- English
- Français
- United Kingdom(English)
Asien-Pazifik
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)
Kontakt zu Ihrer lokalen Niederlassung