From: Rainer M. <ra...@tb...> - 2006-05-11 11:05:59
|
Hi Eryk, On Thu, 11 May 2006, Witold Wolski wrote: > Hi Rainer, > > The point I wanted to make is that I am wondering why depending if I use the > function globalizeParameter or not prior to integration I am getting > different results. Sorry, I really didn't answer that question! >> > globalizeParameter(model,"V2","J1"); By globalizing two parameters you add them to the cvodeData constants (nvalues and nconst increase by two) and thereby request more sensitivities from CVODES. Calculating many sensitivities at the same time can in some cases significantly decrease the performance or even get too much for CVODES and it quits. `convergence failed' is the usual message when CVODES cannot calculate results (timecourses and/or sensitivities) within the requested error tolerance. Unfortunately, the sensitivity error tolerance currently cannot be set, but you can try to play with the general tolerances (--error and --rerror) and with the maximum number of internal steps option (--mxstep) or with external steps (--printstep). To solve this, we need to a) implement a way to select specific parameters for which sensitivities are calculated; a quick hack could be a function localizeParameterExcept that works on the SBML input model and localizes all global parameters except the ones that you want sensititities for. b) implement error settings for sensitivities Furthermore, we need to write documentation on performance relevant settings, such as errors, mxstep etc. Ok? Rainer > > cheers > Eryk > > > On 5/10/06, Rainer Machne <ra...@tb...> wrote: >> >> >> >> > If I do not call it the output reads: >> > >> > CVode-- At t = 0 and h = 1.12418e-06, the corrector >> > convergence failed repeatedly or with |h| = hmin. >> > >> > 1.12418e-06 0 0 0 0 0 0 0 0 >> > 1.12418e-06 10 0 0 0 0 >> >> >> The first two lines mean that cvodes has failed for integration with >> sensitivity analysis. Thus results and sensitivities were not calculated. >> >> IntegratorInstance_dumpY/PSensitivities >> >> print first the current time, then the current value of the >> variable/parameter, and then the sensitivities to all constants of the >> model. >> >> I have never noticed however that upon failure the current time seems to >> be the h, which is cvodes' internal timestep. So the sensitivities for >> this time h are wrong and the output should look different. Maybe upon >> failure cvodeData the time should be reset to the last valid time. >> >> >> Rainer >> >> On Wed, 10 May 2006, Witold Wolski wrote: >> >> > Hello, >> > >> > Depending if I apply globalise parameter or not I am getting different >> > outputs in the sensitivity analysis. >> > >> > Given the MAPK.xml >> > >> > Namely the output of the functions (see attachment) >> > >> > IntegratorInstance_dumpPSensitivities(integratorInstance,p1); >> > IntegratorInstance_dumpYSensitivities(integratorInstance,y1); >> > >> > differs depedning if >> > >> > globalizeParameter(model,"V2","J1"); >> > >> > was called. >> > >> > If I do not call it the output reads: >> > >> > CVode-- At t = 0 and h = 1.12418e-06, the corrector >> > convergence failed repeatedly or with |h| = hmin. >> > >> > 1.12418e-06 0 0 0 0 0 0 0 0 >> > 1.12418e-06 10 0 0 0 0 >> > >> > I am working on a very recent cvs checkout. >> > >> > cheers >> > >> > Eryk >> > >> > |