From hettling at few.vu.nl Tue Feb 2 00:34:31 2010 From: hettling at few.vu.nl (hettling) Date: Mon, 01 Feb 2010 12:34:31 +0100 Subject: [cellml-discussion] copyright Message-ID: <1265024071.6355.42.camel@killer2000> Dear CellML community, In the model repository, there is a really nice schematic figure of the phosphocreatine shuttle in the "Kongas, Van Beek" model. Could I use this figure for a paper and a conference talk or are there copyright issues? If it is ok, I suppose I cite the "The CellML Model Repository. Bioinformatics. 2008" paper? Hope you can help me... Kind Regards Hannes Hettling (IBIVU group, VU University Amsterdam) From c.lloyd at auckland.ac.nz Tue Feb 2 07:14:57 2010 From: c.lloyd at auckland.ac.nz (Catherine Lloyd) Date: Tue, 2 Feb 2010 07:14:57 +1300 Subject: [cellml-discussion] copyright In-Reply-To: <1265024071.6355.42.camel@killer2000> References: <1265024071.6355.42.camel@killer2000> Message-ID: Dear Hannes Yes, you are welcome to use this image. We are in the process of applying a Creative Commons Attribution license to the repository and all it's content, however since we are not quite there yet if you use this image please just cite the Bioinformatics paper. If any of the other CellML team members object to this, or have other ideas, I'm sure they will get back to you in the next few hours. Thank you for being so polite and for asking! Best wishes Catherine On 2/02/2010, at 12:34 AM, hettling wrote: > Dear CellML community, > > In the model repository, there is a really nice schematic figure of > the > phosphocreatine shuttle in the "Kongas, Van Beek" model. Could I use > this figure for a paper and a conference talk or are there copyright > issues? If it is ok, I suppose I cite the "The CellML Model > Repository. > Bioinformatics. 2008" paper? > > Hope you can help me... > > Kind Regards > > Hannes Hettling > (IBIVU group, VU University Amsterdam) > > _______________________________________________ > cellml-discussion mailing list > cellml-discussion at cellml.org > http://www.cellml.org/mailman/listinfo/cellml-discussion From dj.cowan at auckland.ac.nz Tue Feb 2 07:27:42 2010 From: dj.cowan at auckland.ac.nz (Dougal Cowan) Date: Tue, 02 Feb 2010 07:27:42 +1300 Subject: [cellml-discussion] Announcement of OpenCell 0.7rc1 In-Reply-To: <002a01caa0c9$2f69e460$8e3dad20$@dpag.ox.ac.uk> References: <4B60054C.6000602@auckland.ac.nz> <000b01ca9f3f$00808860$01819920$@dpag.ox.ac.uk> <20100128081017.13123wno2zi6a3rt@webmail.bioeng.auckland.ac.nz> <4B60C1AF.10101@auckland.ac.nz> <4B60C598.6030908@auckland.ac.nz> <4B61DF38.3090609@auckland.ac.nz> <4B61E46D.8010605@auckland.ac.nz> <002a01caa0c9$2f69e460$8e3dad20$@dpag.ox.ac.uk> Message-ID: <4B671D1E.8010501@auckland.ac.nz> On 29/01/2010 10:55 p.m., Alan Garny wrote: > I have never liked the PCEnv/OpenCell icon (it doesn't mean anything to me), > but I guess that with 0.7 coming out soon, it's not the right time to think > about new one, so only one comment: it feels like the bottom of the icon has > been chopped off. It's even more obvious when looking at the 512px version > (https://tracker.physiomeproject.org/attachment.cgi?id=449). If anything, I > would like to suggest 'fixing' that? The chopped-off effect is my fault Alan, in my rush to make large icons I neglected to notice that the scaling of the drop shadow effect in illustrator is a bit quirky. I will fix these shortly. As for the icon itself, its "meaning" is simply a cell enclosed in angle brackets - that is, cell markup. I think the current icon at least has the benefit of being quite distinctive, but we could probably usefully think about a new one. Dougal From dj.cowan at auckland.ac.nz Tue Feb 9 07:48:51 2010 From: dj.cowan at auckland.ac.nz (Dougal Cowan) Date: Tue, 09 Feb 2010 07:48:51 +1300 Subject: [cellml-discussion] ABI CellML meeting minutes 2010-02-03 Message-ID: <4B705C93.4080208@auckland.ac.nz> I have put the minutes from last week's CellML meeting up at: http://www.cellml.org/community/meeting/minutes/2010/02.03 My apologies for the delay this week. Thanks, Dougal From c.lloyd at auckland.ac.nz Wed Feb 10 09:03:00 2010 From: c.lloyd at auckland.ac.nz (Catherine Lloyd) Date: Wed, 10 Feb 2010 09:03:00 +1300 Subject: [cellml-discussion] Remote "attendance" at the CellML hackathon and workshop Message-ID: <6F8CA650-4FED-4597-8865-618CC36B85C7@auckland.ac.nz> Dear All We have received a number of requests for an audio-visual connection to the CellML hackathon and workshop allowing people to attend "remotely". I have set up meeting rooms on Evo: http://evo.caltech.edu/evoGate/ If you would like to "remotely attend" the hackathon and/or the workshop you will need to pre-register (for free) in advance at Evo. The meetings are called CellML Hackathon (Feb 24th 8.30-16.00 NZ time), CellML Workshop (Feb 25th 8.30-17.30 NZ time) and CellML Workshop (day 2) (Feb 26th 8.30-18.00 NZ time). The meetings are password protected: for the hackathon - cellmlhack, and for the workshop (both days) cellmlwork. We intend to have both audio and visual connections set up. If the connection becomes unstable there are also phone numbers supplied by Evo which can be called (for free). Please trial the software in advance and let me know if you have any questions. Best wishes Catherine From p.hunter at auckland.ac.nz Wed Feb 10 09:23:10 2010 From: p.hunter at auckland.ac.nz (Peter Hunter) Date: Wed, 10 Feb 2010 09:23:10 +1300 Subject: [cellml-discussion] Remote "attendance" at the CellML hackathon and workshop Message-ID: Thanks Catherine! -------------------------- Sent using BlackBerry ----- Original Message ----- From: cellml-discussion-bounces at cellml.org To: CellML Discussion List Sent: Wed Feb 10 09:03:00 2010 Subject: [cellml-discussion] Remote "attendance" at the CellML hackathon and workshop Dear All We have received a number of requests for an audio-visual connection to the CellML hackathon and workshop allowing people to attend "remotely". I have set up meeting rooms on Evo: http://evo.caltech.edu/evoGate/ If you would like to "remotely attend" the hackathon and/or the workshop you will need to pre-register (for free) in advance at Evo. The meetings are called CellML Hackathon (Feb 24th 8.30-16.00 NZ time), CellML Workshop (Feb 25th 8.30-17.30 NZ time) and CellML Workshop (day 2) (Feb 26th 8.30-18.00 NZ time). The meetings are password protected: for the hackathon - cellmlhack, and for the workshop (both days) cellmlwork. We intend to have both audio and visual connections set up. If the connection becomes unstable there are also phone numbers supplied by Evo which can be called (for free). Please trial the software in advance and let me know if you have any questions. Best wishes Catherine _______________________________________________ cellml-discussion mailing list cellml-discussion at cellml.org http://www.cellml.org/mailman/listinfo/cellml-discussion From dj.cowan at auckland.ac.nz Thu Feb 11 16:31:29 2010 From: dj.cowan at auckland.ac.nz (Dougal Cowan) Date: Thu, 11 Feb 2010 16:31:29 +1300 Subject: [cellml-discussion] ABI CellML meeting minutes 2010-02-10 Message-ID: <4B737A11.8030709@auckland.ac.nz> I have put the minutes from yesterday's CellML meeting up at: http://www.cellml.org/community/meeting/minutes/2010/02.10 Thanks, Dougal From c.lloyd at auckland.ac.nz Tue Feb 16 13:11:58 2010 From: c.lloyd at auckland.ac.nz (Catherine Lloyd) Date: Tue, 16 Feb 2010 13:11:58 +1300 Subject: [cellml-discussion] Evo connection Message-ID: Dear All Some further information on the EVO virtual meeting room. The meetings are password protected. If you are trying to get to grips with EVO - firstly thank you for doing this in advance of the meeting! - but you will find you will not be able to login to the meeting itself until 5-10 minutes before the meeting actually starts. There are however "test" meetings where you can play around with the software and alter your settings. Just incase your connection on the day drops out, for the Hackathon: the Phone Bridge ID is 1620984 and the Phone Bridge password is 1361 For day 1 of the workshop: the Phone Bridge ID is 51921 and the Phone Bridge password is 8220 For day 2 of the workshop: the Phone Bridge ID is 1621020 and the Phone Bridge password is 8220 Please let me know if you have any further queries about EVO. Best wishes Catherine From ak.miller at auckland.ac.nz Thu Feb 18 12:18:06 2010 From: ak.miller at auckland.ac.nz (Andrew Miller) Date: Thu, 18 Feb 2010 12:18:06 +1300 Subject: [cellml-discussion] Meeting Minutes - Auckland CellML Meeting, 17-Feb-2010 Message-ID: <4B7C792E.6050409@auckland.ac.nz> Hi all, Please find the minutes from the Auckland CellML Meeting on the 17th of February up at: http://www.cellml.org/community/meeting/minutes/2010/02-17 Best wishes, Andrew From c.lloyd at auckland.ac.nz Wed Feb 24 11:49:27 2010 From: c.lloyd at auckland.ac.nz (Catherine Lloyd) Date: Wed, 24 Feb 2010 11:49:27 +1300 Subject: [cellml-discussion] Fwd: Evo connection References: <20100223203813.GF44767@strackenz.spod-central.org> Message-ID: <019D922C-FC0D-41D0-AB41-E721C8A3EDD5@auckland.ac.nz> Dear Andrew I am forwarding Lucian's questions onto you in case you feel you have to file tracker items for any of them or need to get in touch with Lucian again. I am also opening it up to the discussion list in case anyone else would like to comment. Best wishes Catherine Begin forwarded message: > From: Lucian Smith > Date: 24 February 2010 9:38:13 AM > To: Catherine Lloyd > Subject: Re: [cellml-discussion] Evo connection > > -Currently, I must run my program from the directory with the > 'components/' > subdirectory. Is there a way I can set things up so I can run my > program > from anywhere? > > -In the model bertram_satin_pedersen_luciani_sherman_2007.cellml, > 'lambda' > gets translated into infix with a '$' before it. Is this because > 'lambda' > is also a function name? Does this happen with any other variables? > > -Is there documentation about how you define your infix? > > -If I get a 'failed to load external entity' exception, it SIGABRTs > me, > despite being supposedly wrapped in one of those 'nsresult' > thingummies, and > try/catch doesn't seem to work. What do I need to do to catch this? > > code: > bool Registry::LoadCellML(nsCOMPtr model) > { > if (model == NULL) return true; > nsresult rv; > nsCOMPtr > cevasboot(do_GetService(CEVAS_BOOTSTRAP_CONTRACTID, &rv)); > NS_ENSURE_SUCCESS(rv, true); > > nsCOMPtr cevas; > try { > rv = cevasboot->CreateCeVASForModel(model, getter_AddRefs(cevas)); > } > catch (...){ > return true; > } > > > result: > I/O warning : failed to load external entity "/home/lpsmith/CellML/ > models/.\ImportExample2.cellml" > terminate called after throwing an instance of > 'iface::cellml_api::CellMLException' > what(): std::exception > > Program received signal SIGABRT, Aborted. > 0xb7f5b430 in __kernel_vsyscall () > > -Speaking of, the above problem was due to the imported file name > being > called ".\ImportedExample2.cellml" instead of "./ > ImportedExample2.cellml" > (and me running on a unix platform). Is there a good cross-platform > method > for fixing this problem? > > -Can I get a zip file of all the cellml models on cellml.org from > anywhere? > > -hypertrophy_or_deterioration_parent.cellml > -faville_model_2008: This model is recursive. When I loop over its > components, some components come up multiple times, every time under > the > original name. My code then sees the same thing again, and fails. > How > would I get the *new* name for the component? Here's the current > code: > > while (component != NULL) { > numcomps++; > //Each CellML 'component' becomes its own Antimony 'module' > nsString cellmltext; > rv = component->GetName(cellmltext); > string cellmlname = "cellmlmod_" + ToThinString(cellmltext.get()); > NewCurrentModule(&cellmlname); > CurrentModule()->LoadCellMLComponent(component); > RevertToPreviousModule(); > rv = cmpi->NextComponent(getter_AddRefs(component)); > } -------------- next part -------------- An HTML attachment was scrubbed... URL: From m.cooling at auckland.ac.nz Wed Feb 24 12:05:00 2010 From: m.cooling at auckland.ac.nz (Mike Cooling) Date: Wed, 24 Feb 2010 12:05:00 +1300 Subject: [cellml-discussion] Fwd: Evo connection In-Reply-To: <019D922C-FC0D-41D0-AB41-E721C8A3EDD5@auckland.ac.nz> References: <20100223203813.GF44767@strackenz.spod-central.org> <019D922C-FC0D-41D0-AB41-E721C8A3EDD5@auckland.ac.nz> Message-ID: <004001cab4dc$a05f10b0$e11d3210$@cooling@auckland.ac.nz> On his question about practices for modular modelling, I have sent Lucian a list of our publications in this area over the last 3-4 years from me, Sarala Wimalaratne, David Nickerson, and Jonna Terkildsen. I also included our latest work on a repository-enabled modular model library, in this case for Synthetic Biology, made available on Advance Access just over a week ago. I include a link here in case there are others similarly interested who cannot be at the talks tomorrow. http://bioinformatics.oxfordjournals.org/cgi/content/abstract/btq063 Cheers, Mike. From: cellml-discussion-bounces at cellml.org [mailto:cellml-discussion-bounces at cellml.org] On Behalf Of Catherine Lloyd Sent: Wednesday, 24 February 2010 11:49 a.m. To: Andrew Miller Cc: CellML Discussion List Subject: [cellml-discussion] Fwd: Evo connection Dear Andrew I am forwarding Lucian's questions onto you in case you feel you have to file tracker items for any of them or need to get in touch with Lucian again. I am also opening it up to the discussion list in case anyone else would like to comment. Best wishes Catherine Begin forwarded message: From: Lucian Smith Date: 24 February 2010 9:38:13 AM To: Catherine Lloyd Subject: Re: [cellml-discussion] Evo connection -Currently, I must run my program from the directory with the 'components/' subdirectory. Is there a way I can set things up so I can run my program from anywhere? -In the model bertram_satin_pedersen_luciani_sherman_2007.cellml, 'lambda' gets translated into infix with a '$' before it. Is this because 'lambda' is also a function name? Does this happen with any other variables? -Is there documentation about how you define your infix? -If I get a 'failed to load external entity' exception, it SIGABRTs me, despite being supposedly wrapped in one of those 'nsresult' thingummies, and try/catch doesn't seem to work. What do I need to do to catch this? code: bool Registry::LoadCellML(nsCOMPtr model) { if (model == NULL) return true; nsresult rv; nsCOMPtr cevasboot(do_GetService(CEVAS_BOOTSTRAP_CONTRACTID, &rv)); NS_ENSURE_SUCCESS(rv, true); nsCOMPtr cevas; try { rv = cevasboot->CreateCeVASForModel(model, getter_AddRefs(cevas)); } catch (...){ return true; } result: I/O warning : failed to load external entity "/home/lpsmith/CellML/models/.\ImportExample2.cellml" terminate called after throwing an instance of 'iface::cellml_api::CellMLException' what(): std::exception Program received signal SIGABRT, Aborted. 0xb7f5b430 in __kernel_vsyscall () -Speaking of, the above problem was due to the imported file name being called ".\ImportedExample2.cellml" instead of "./ImportedExample2.cellml" (and me running on a unix platform). Is there a good cross-platform method for fixing this problem? -Can I get a zip file of all the cellml models on cellml.org from anywhere? -hypertrophy_or_deterioration_parent.cellml -faville_model_2008: This model is recursive. When I loop over its components, some components come up multiple times, every time under the original name. My code then sees the same thing again, and fails. How would I get the *new* name for the component? Here's the current code: while (component != NULL) { numcomps++; //Each CellML 'component' becomes its own Antimony 'module' nsString cellmltext; rv = component->GetName(cellmltext); string cellmlname = "cellmlmod_" + ToThinString(cellmltext.get()); NewCurrentModule(&cellmlname); CurrentModule()->LoadCellMLComponent(component); RevertToPreviousModule(); rv = cmpi->NextComponent(getter_AddRefs(component)); } -------------- next part -------------- An HTML attachment was scrubbed... URL: From lpsmith at spod-central.org Wed Feb 24 12:27:21 2010 From: lpsmith at spod-central.org (Lucian Smith) Date: Tue, 23 Feb 2010 23:27:21 +0000 Subject: [cellml-discussion] Lucian's questions In-Reply-To: <019D922C-FC0D-41D0-AB41-E721C8A3EDD5@auckland.ac.nz> References: <20100223203813.GF44767@strackenz.spod-central.org> <019D922C-FC0D-41D0-AB41-E721C8A3EDD5@auckland.ac.nz> Message-ID: <20100223232720.GB49875@strackenz.spod-central.org> * Catherine Lloyd [2010-02-23 22:50] writes: > Dear Andrew > > I am forwarding Lucian's questions onto you in case you feel you have > to file tracker items for any of them or need to get in touch with > Lucian again. > > I am also opening it up to the discussion list in case anyone else > would like to comment. I can at least put the answers I got; here they are: > Begin forwarded message: > > >From: Lucian Smith > > > >-Currently, I must run my program from the directory with the > >'components/' > >subdirectory. Is there a way I can set things up so I can run my > >program > >from anywhere? The short answer is 'yes'; the longer answer is 'look at the OpenCell Installer'. I may need some help here, but it's at least a start. > >-In the model bertram_satin_pedersen_luciani_sherman_2007.cellml, > >'lambda' > >gets translated into infix with a '$' before it. Is this because > >'lambda' > >is also a function name? Does this happen with any other variables? Yes. Any variable may be prepended with the '$'; it's *required* for any variable that is also a reserved word. There may be a list of reserved words somewhere; someone said they'd look into forwarding me a copy. > >-Is there documentation about how you define your infix? Not externally, but it's inside the help in OpenCell. > >-If I get a 'failed to load external entity' exception, it SIGABRTs > >me, > >despite being supposedly wrapped in one of those 'nsresult' > >thingummies, and > >try/catch doesn't seem to work. What do I need to do to catch this? > > > >code: > >bool Registry::LoadCellML(nsCOMPtr model) > >{ > > if (model == NULL) return true; > > nsresult rv; > > nsCOMPtr > >cevasboot(do_GetService(CEVAS_BOOTSTRAP_CONTRACTID, &rv)); > > NS_ENSURE_SUCCESS(rv, true); > > > > nsCOMPtr cevas; > > try { > > rv = cevasboot->CreateCeVASForModel(model, getter_AddRefs(cevas)); > > } > > catch (...){ > > return true; > > } > > > > > >result: > >I/O warning : failed to load external entity "/home/lpsmith/CellML/ > >models/.\ImportExample2.cellml" > >terminate called after throwing an instance of > >'iface::cellml_api::CellMLException' > > what(): std::exception > > > >Program received signal SIGABRT, Aborted. > >0xb7f5b430 in __kernel_vsyscall () > > Basically, this is a bug, so I submitted a tracker item for it. Andrew had a workaround (I believe), but I don't remember what it was; it's a low enough priority item for me I think I'll just wait for the fix. > >-Speaking of, the above problem was due to the imported file name > >being > >called ".\ImportedExample2.cellml" instead of "./ > >ImportedExample2.cellml" > >(and me running on a unix platform). Is there a good cross-platform > >method > >for fixing this problem? This turned out to also be a bug in the example CellML file (the file in question was named 'CompletedImportExample.cellml'). I submitted a different tracker item for that. Basically, the answer was 'use / and not \'. > >-Can I get a zip file of all the cellml models on cellml.org from > >anywhere? The short answer was "What?" and the long answer was "Um, maybe?" There may be a script that uses mercurial that could work for this. I still think such a zip file would be very useful for anyone who wants to translate models or just test their own systems. Biomodels does this (albeit with a lower number of models), and that's what I always grab when I'm testing things. If in the future I wanted to provide Antimony versions of CellML models, it would be great if I could update those translations with the current versions at the repository. One possibility would be to download the cellml files grouped by their curation status: cellml_threestar_models.tar.gz, etc. > >-hypertrophy_or_deterioration_parent.cellml > >-faville_model_2008: This model is recursive. When I loop over its > >components, some components come up multiple times, every time under > >the > >original name. My code then sees the same thing again, and fails. > >How > >would I get the *new* name for the component? Here's the current > >code: > > > > while (component != NULL) { > > numcomps++; > > //Each CellML 'component' becomes its own Antimony 'module' > > nsString cellmltext; > > rv = component->GetName(cellmltext); > > string cellmlname = "cellmlmod_" + ToThinString(cellmltext.get()); > > NewCurrentModule(&cellmlname); > > CurrentModule()->LoadCellMLComponent(component); > > RevertToPreviousModule(); > > rv = cmpi->NextComponent(getter_AddRefs(component)); > > } There are API calls you can use to get the number of times the current component has been imported--I think I can use this so I don't try to re-create the basic model again. The trick then will be to make sure I implement the multiple instantiations needed for the full model. This does bring up a different point that wasn't quite appropriate for the hackathon, but might be worth discussing here: if a model like faville_model_2008 has shown that it is helpful to 'clone' components, I would propose that CellML should add a way to do this directly, without having to do the faville hack here of importing its own filename before being able to clone elements. The syntax would be very similar; you'd just add a way to refer to 'this component of the current document' instead of 'this component of this file (which happens to be the current document'. Thanks for answering all my questions, and I'll see you all tomorrow! -Lucian From m.cooling at auckland.ac.nz Wed Feb 24 13:38:00 2010 From: m.cooling at auckland.ac.nz (Mike Cooling) Date: Wed, 24 Feb 2010 13:38:00 +1300 Subject: [cellml-discussion] Fwd: Evo connection References: <20100223203813.GF44767@strackenz.spod-central.org> <019D922C-FC0D-41D0-AB41-E721C8A3EDD5@auckland.ac.nz> Message-ID: <006501cab4e9$9e27ab60$da770220$@cooling@auckland.ac.nz> Oops, I also meant to include the other publications from the list I sent Lucian. They are (roughly chronological reverse order): http://ep.physoc.org/content/94/5/472.abstract Advocating separating common mathematical formalisms into separate components. http://dx.doi.org/10.1016/j.pbiomolbio.2008.05.006 Where encapsulation groupings are explored. This uses CellML to swap in and out different formulations of ion channels in cardiac electrophysiology. And there is also this related work http://ep.physoc.org/content/93/7/919 which is about combining larger-scale modules together and Modelling modularity with CellML http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal &id=ISBEAT000002000002000073000001&idtype=cvips&gifs=Yes&ref=no Regards, Mike. From: Mike Cooling [mailto:m.cooling at auckland.ac.nz] Sent: Wednesday, 24 February 2010 12:05 p.m. To: 'CellML Discussion List' Subject: RE: [cellml-discussion] Fwd: Evo connection On his question about practices for modular modelling, I have sent Lucian a list of our publications in this area over the last 3-4 years from me, Sarala Wimalaratne, David Nickerson, and Jonna Terkildsen. I also included our latest work on a repository-enabled modular model library, in this case for Synthetic Biology, made available on Advance Access just over a week ago. I include a link here in case there are others similarly interested who cannot be at the talks tomorrow. http://bioinformatics.oxfordjournals.org/cgi/content/abstract/btq063 Cheers, Mike. From: cellml-discussion-bounces at cellml.org [mailto:cellml-discussion-bounces at cellml.org] On Behalf Of Catherine Lloyd Sent: Wednesday, 24 February 2010 11:49 a.m. To: Andrew Miller Cc: CellML Discussion List Subject: [cellml-discussion] Fwd: Evo connection Dear Andrew I am forwarding Lucian's questions onto you in case you feel you have to file tracker items for any of them or need to get in touch with Lucian again. I am also opening it up to the discussion list in case anyone else would like to comment. Best wishes Catherine Begin forwarded message: From: Lucian Smith Date: 24 February 2010 9:38:13 AM To: Catherine Lloyd Subject: Re: [cellml-discussion] Evo connection -Currently, I must run my program from the directory with the 'components/' subdirectory. Is there a way I can set things up so I can run my program from anywhere? -In the model bertram_satin_pedersen_luciani_sherman_2007.cellml, 'lambda' gets translated into infix with a '$' before it. Is this because 'lambda' is also a function name? Does this happen with any other variables? -Is there documentation about how you define your infix? -If I get a 'failed to load external entity' exception, it SIGABRTs me, despite being supposedly wrapped in one of those 'nsresult' thingummies, and try/catch doesn't seem to work. What do I need to do to catch this? code: bool Registry::LoadCellML(nsCOMPtr model) { if (model == NULL) return true; nsresult rv; nsCOMPtr cevasboot(do_GetService(CEVAS_BOOTSTRAP_CONTRACTID, &rv)); NS_ENSURE_SUCCESS(rv, true); nsCOMPtr cevas; try { rv = cevasboot->CreateCeVASForModel(model, getter_AddRefs(cevas)); } catch (...){ return true; } result: I/O warning : failed to load external entity "/home/lpsmith/CellML/models/.\ImportExample2.cellml" terminate called after throwing an instance of 'iface::cellml_api::CellMLException' what(): std::exception Program received signal SIGABRT, Aborted. 0xb7f5b430 in __kernel_vsyscall () -Speaking of, the above problem was due to the imported file name being called ".\ImportedExample2.cellml" instead of "./ImportedExample2.cellml" (and me running on a unix platform). Is there a good cross-platform method for fixing this problem? -Can I get a zip file of all the cellml models on cellml.org from anywhere? -hypertrophy_or_deterioration_parent.cellml -faville_model_2008: This model is recursive. When I loop over its components, some components come up multiple times, every time under the original name. My code then sees the same thing again, and fails. How would I get the *new* name for the component? Here's the current code: while (component != NULL) { numcomps++; //Each CellML 'component' becomes its own Antimony 'module' nsString cellmltext; rv = component->GetName(cellmltext); string cellmlname = "cellmlmod_" + ToThinString(cellmltext.get()); NewCurrentModule(&cellmlname); CurrentModule()->LoadCellMLComponent(component); RevertToPreviousModule(); rv = cmpi->NextComponent(getter_AddRefs(component)); } -------------- next part -------------- An HTML attachment was scrubbed... URL: From lpsmith at spod-central.org Sat Feb 27 08:43:41 2010 From: lpsmith at spod-central.org (Lucian Smith) Date: Fri, 26 Feb 2010 19:43:41 +0000 Subject: [cellml-discussion] Leftover thoughts from the CellML workshop Message-ID: <20100226194341.GB66438@strackenz.spod-central.org> Thanks to all of you who were at the workshop for letting me attend remotely. I found it quite valuable, and hope you didn't mind me asking you all to repeat the questions too often. And special thanks to Catherine for being the driving force behind getting it all set up! I had a couple extra thoughts on some of the presentations, which I probably would have chatted with you about had I been there, but since I wasn't, here they are in email instead. The OpenCell network visualization tool: I agree that there is definitely a need both for automatically- generated network visualization and for human-arranged network visualization. One thing that might help this is to have a standard for exchanging or at least storing these--I know SBML has a 'layout extension' that stores the visual representation of SBML models. I don't know if a CellML extension is the right way to go or if that information is better suited to storing in a separate file, but you could at least look at that extension for an example of the information you'd want to store. CellML 1.2: One thing I noticed was the claim that events could be stored in CellML as piecewise formulas. I'm pretty sure that won't be the case with SBML events, which are 'fire once' events instead of 'true while' events. Maybe one could come up with a piecewise hack to store SBML events, but if a goal is to become more amenable to SBML-translated models, you might want to think about how best to translate SBML events. Or maybe I'm wrong and there's already a way to do it? Another thing I noticed was a reluctance to add too many new features to the language in the fear that interpreters might not be able or willing to handle them. One way to mitigate this would be to allow models to claim somewhere in the header whether the model required that feature or not--an interpreter could then more cleanly note whether it was able to correctly interpret a given model, while still being able to interpret other 1.2 models. Roundtrip translators: I think I'm coming around to the theory that we don't need non-lossy translators--that's probably an unattainable goal. What might be more helpful instead is roundtrop re-integrators. What I mean by that is that nobody actually needs a way to round-trip a model that has never been modified, because you still have the original. Instead, what you need is a way to translate a model to a new format, modify it in that new format, translate it back to the original format, and end up with a model that is identical to the original model except for those bits that have been changed. I think the best hope for this is if you take the original model and the round-tripped-and-modified model, and re-integrate the two. Obviously, the trickiest bit of this is if you've modified the model by deleting something--you need to know that the round-tripping was *able* to keep the information, so that if it's gone, that means it's been deleted on purpose. But everything else can stay. Similarly, you need to know if the format of the information will have changed, and if so, how to map the new format to the old format. This may well be the trickier bit--I certainly don't know off the top of my head what a good algorithm would be to track CellML's modularity through modularless SBML, for example. But perhaps with the Hierarchical Modeling extention up and running SBML, this would become attainable? At any rate, I'd be interested in others' thoughts on this. I'm certainly not saying that translators should discard information they could have saved--the more information they save, the better. I just think there will alwaybe be information they can't save (even if it's just some proprietary annotations), and re-itegration seems like the way to go here. -Lucian