- From: Andrew Miller <ak.miller AT auckland.ac.nz>
- To: cellml-tools-developers AT lists.cellml.org
- Subject: Re: [[cellml-dev] ] Re: cellml-tools-developers Digest Sun, 21 Jul 2013
- Date: Tue, 23 Jul 2013 10:30:10 +1200
On 23/07/13 09:42, Maxwell Neal wrote:
>
Hi Andrew,
>
>
I've been able to load in the CIS library and integrate my models,
>
so thanks for the help there.
>
>
What I'm wondering now is - how do I capture the output from these
>
model runs?
Hi Maxwell,
The key is to implement an IntegrationProgressObserver; on your
CellMLIntegration run (the base interface of ODEIntegrationRun or
DAEIntegrationRun) call run.setProgressObserver(yourProgressObserver)
http://cellml-api.sourceforge.net/1.13/interfacecellml__services_1_1_cell_m_l_integration_run.html#a691bc04c36cf33f762cb13c308539722
The interface you need to implement is documented here:
http://cellml-api.sourceforge.net/1.13/interfacecellml__services_1_1_integration_progress_observer.html
- be aware that callbacks happen in a different thread, so you might
just want to store the results somewhere and notify the main thread so
the UI can use the results.
The IDL interface actually maps to a Java class, so from the Java
perspective, you actually are extending a class.
Best wishes,
Andrew
>
>
Many thanks!
>
>
M
>
>
--------------------------------- Maxwell Neal
>
>
Post-doctoral researcher Department of Bioengineering University of
>
Washington
>
mneal AT uw.edu
>
>
<mailto:mneal AT uw.edu>
>
>
---------------------------------
>
>
>
>
>
>
>
>
>
On Jul 20, 2013, at 5:00 PM,
>
cellml-tools-developers-request AT lists.cellml.org
>
>
<mailto:cellml-tools-developers-request AT lists.cellml.org>
>
wrote:
>
>
> cellml-tools-developers Digest Sun, 21 Jul 2013
>
>
>
> Table of contents:
>
>
>
> 1. [[cellml-dev] ] Fwd: Re: batch processing - Andrew Miller
>
> <ak.miller AT auckland.ac.nz
>
>
>
> <mailto:ak.miller AT auckland.ac.nz>>
>
>
>
>
>
> ----------------------------------------------------------------------
>
>
>
>
>
>
Date: Sat, 20 Jul 2013 14:18:59 +1200
>
> From: Andrew Miller
>
> <ak.miller AT auckland.ac.nz
>
>
>
> <mailto:ak.miller AT auckland.ac.nz>>
>
> Subject: [[cellml-dev] ] Fwd:
>
> Re: batch processing
>
>
>
> -------- Original Message -------- Subject: Re: batch processing
>
> Date: Sat, 20 Jul 2013 12:08:54 +1200 From: Andrew Miller
>
> <ak.miller AT auckland.ac.nz
>
>
>
> <mailto:ak.miller AT auckland.ac.nz>>
>
> To:
>
> Maxwell Neal
>
> <mneal AT u.washington.edu
>
> <mailto:mneal AT u.washington.edu>>
>
> CC: Alan Garny
>
> <alan.garny AT inria.fr
>
>
>
> <mailto:alan.garny AT inria.fr>>,
>
> Michael
>
> Cooling
>
> <m.cooling AT auckland.ac.nz
>
> <mailto:m.cooling AT auckland.ac.nz>>,
>
> David Nickerson
>
> <d.nickerson AT auckland.ac.nz
>
>
>
> <mailto:d.nickerson AT auckland.ac.nz>>
>
>
>
> On 20/07/13 05:24, Maxwell Neal wrote:
>
>> Hi all,
>
>>
>
>> I'm setting up a java program to test CellML-SemSim round
>
>> trips over all the CellML models in the repository. Tommy sent
>
>> me a txt file with URLs to all the models and I've been able to
>
>> download them all into a local folder. I've got the CellML API
>
>> incorporated into my program and I'm able to programmatically
>
>> read the local CellML models and output things like the names
>
>> of components, variables, etc.
>
>>
>
>> What I'm wondering is - how do I simulate the models using the
>
>> CellML API and record the numerical output?
>
>>
>
>> Alan you had mentioned there is a "RunCellML" test program in
>
>> the API but I haven't been able to find it in the cellml.jar
>
>> classes. Any help would be appreciated!
>
>
>
> Hi Maxwell,
>
>
>
> The RunCellML program is a test program used for testing the
>
> API, written in C++, not an API. Because the C++ bindings map
>
> closely to the Java bindings (the Java bindings are automatically
>
> generated to ensure this remains true) once you know how things
>
> map to Java, you can easily translate any CellML API based
>
> program from C++ to Java.
>
>
>
> The service in the CellML API you want to use is called the
>
> CellML Integration Service (CIS); the documentation (which is
>
> language independent) is here:
>
> http://cellml-api.sourceforge.net/1.13/interfacecellml__services_1_1_cell_m_l_integration_service.html
>
>
>
>
>
>
// You probably already call this somewhere...
>
> System.loadLibrary("java_cellml"); // You will want this to
>
> enable the CIS from Java... System.loadLibrary("java_cis"); //
>
> Most users of the CIS also use the CCGS...
>
> System.loadLibrary("java_ccgs");
>
>
>
> // You already probably get the CellML Bootstrap like this:
>
> CellMLBootstrap cb =
>
> cellml_bootstrap.CellMLBootstrap.createCellMLBootstrap(); //
>
> Similarly you want to bootstrap the CIS so you can run
>
> integrations: CellMLIntegrationService cis =
>
> cellml_bootstrap.CellMLIntegrationService.createCellMLIntegrationService();
>
>
>
>
// Now read the documentation for CellMLIntegrationService to decide
>
> what you want to do, e.g.: ODESolverCompiledModel cmod =
>
> cis.compileModelODE(someModel); ODESolverRun run =
>
> cis.createODEIntegrationRun(cmod);
>
> run.setStepType(ODEIntegrationStepType.ADAMS_MOULTON_1_12);
>
> run.setResultRange(0.0, 10.0, 1000.0);
>
> run.setStepSizeControl(1E-6, 1E-6, 1.0, 1.0, 1.0);
>
> run.setProgressObserver(yourProgressObserverCallbackObject);
>
> run.start();
>
>
>
> BTW do you mind if I forward your question (with my answer) to
>
> the
>
> cellml-tools-developers AT lists.cellml.org
>
> mailing list so we
>
> have a public archive of the question and answer? That is the
>
> best place for questions like this.
>
> https://lists.cellml.org/sympa/info/cellml-tools-developers
>
>
>
> Best wishes, Andrew
>
>
>
>>
>
>> Many thanks!
>
>>
>
>> M
>
>>
>
>>
>
>> --------------------------------- Maxwell Neal
>
>>
>
>> Post-doctoral researcher Department of Bioengineering
>
>> University of Washington
>
>> mneal AT uw.edu
>
>>
>
>> <mailto:mneal AT uw.edu>
>
>>
>
>> ---------------------------------
>
>>
>
>>
>
>>
>
>>
>
>>
>
>>
>
>>
>
>>
>
>> On Jun 7, 2013, at 1:12 AM, Alan Garny wrote:
>
>>
>
>>> Hi Max,
>
>>>
>
>>> At this point in time, you might want to use the ‘RunCellML’
>
>>> test program. It is part of the CellML API (you might have to
>
>>> build it). Alternatively, you could use one of David
>
>>> Nickerson’s tools: http://code.google.com/p/cellml-simulator/
>
>>> (this being said, I am not sure it can directly be used with
>
>>> CellML; it might need a SED-ML file as an input).
>
>>>
>
>>> Alan
>
>>>
>
>>> *From:* Maxwell Neal
>
>>> [mailto:mneal AT u.washington.edu]
>
>>> *Sent:*
>
>>> 07 June 2013 04:50 *To:* Alan Garny *Subject:* batch
>
>>> processing
>
>>>
>
>>> Hi Alan,
>
>>>
>
>>> I'd like to be able to perform automated tests on multiple
>
>>> SemGen-exported CellML models and validate their numerical
>
>>> results against those of the original models. So far I've
>
>>> been doing this manually using OpenCell but I was wondering -
>
>>> is there a tool for batch processing a set of CellML models
>
>>> and retrieving their numerical output programmatically?
>
>>>
>
>>> Thanks!
>
>>>
>
>>> M
>
>>>
>
>>>
>
>>> --------------------------------- Maxwell Neal
>
>>>
>
>>> Post-doctoral researcher Department of Bioengineering
>
>>> University of Washington
>
>>> mneal AT uw.edu
>
>>>
>
>>> <mailto:mneal AT uw.edu>
>
>>>
>
>>> ---------------------------------
>
>>>
>
>>>
>
>>>
>
>>>
>
>>>
>
>>>
>
>>>
>
>>>
>
>>
>
>
>
>
>
> ------------------------------
>
>
>
>
>
> End of cellml-tools-developers Digest Sun, 21 Jul 2013
>
> *********************************************
>
Archive powered by MHonArc 2.6.18.