A list for the developers of CellML tools

Text archives Help


Re: [[cellml-dev] ] Re: cellml-tools-developers Digest Sun, 21 Jul 2013


Chronological Thread 
  • 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.

Top of page