You can subscribe to this list here.
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2013 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(10) |
Oct
(27) |
Nov
|
Dec
(6) |
2014 |
Jan
(25) |
Feb
|
Mar
(44) |
Apr
(21) |
May
(1) |
Jun
(7) |
Jul
(3) |
Aug
(18) |
Sep
(7) |
Oct
(1) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
(9) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(15) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(31) |
Jun
(4) |
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Sarah K. <ske...@ca...> - 2018-09-18 09:39:15
|
Please note the current SBML Editors will continue to work on this publication and it will proceed as planned. SBML Editors |
From: Sarah K. <ske...@ca...> - 2018-09-18 08:33:13
|
Sorry I was perhaps not completely clear. Nicolas Le Novere has withdrawn from the paper and has handed over all notes/comments etc to the remaining SBML Editors. There will be a slight hiatus in the timing, but we are close to having a manuscript for submission, and we will proceed with this. Thank you to everyone who has commented so far and I hope this completely clarifies the situation. Sarah Coordinator of SBML Editors On 18/09/2018 09:04, Sarah Keating wrote: > Please note the current SBML Editors will continue to work on this > publication and it will proceed as planned. > > SBML Editors > |
From: Nicolas Le N. <n.l...@gm...> - 2018-08-04 14:12:29
|
Dear Colleagues, We are in the process of submitting a manuscript describing SBML Level 3 for publication in Molecular Systems Biology as a perspective (current version attached). The manuscript has been written by past and current SBML editors and both its content and structure discussed with MSB editors. Although the structure and the main messages of the paper have been settled, we would welcome any suggestion you would have in relation with the manuscript. Best regards The SBML editors. |
From: Chris M. <my...@ec...> - 2017-07-18 14:02:18
|
Hi Sarah, I agree that having such a statement is a good way to cover ourselves if we miss a potential validation problem. The validation rules though are written with the goal of ensuring that a valid array model will flatten into a valid flat model. In the example below, our validation rules would have caught the problem when presented with the complete model before flattening. Indeed, it is a really good idea to validate a model before flattening. The JSBML flatten routine makes assumptions about the model given that it is valid, and it has issues when provided an invalid array model to flatten. Cheers, Chris > On Jul 18, 2017, at 2:47 AM, Sarah Keating <ske...@ca...> wrote: > > Hi Chris > > I realised the example was not complete and that it could be made to represent a valid situation. My point was that dimensions (explicit or inherited) need careful consideration everywhere an element might have an attribute that is a reference to another element. > > In this case a species that was not dimensioned and a compartment that was. There was a solution (as you indicated) but it may not be the first thing that sprang to mind :-) > > It may be arrays needs to make the same statement as comp i.e. the flattened version of the model must also be valid. > > Sarah > > > > On 17/07/2017 14:32, Chris Myers wrote: >> HI Sarah, >> This was indeed a mistake in my example, but my example was also not complete. I failed to declare Compartment and Species. If I had done so, then the error would have been more clear. Let’s consider what it might have been: >> Compartment Cell[n] >> Species A >> Compartment Cell >> This would be invalid because Cell has a dimension but no index. Ok, how about: >> Compartment Cell >> Species A >> Compartment Cell >> This would be invalid because the Reaction has an index for Cell, but it does not have a dimension. >> So, there are two solutions to make this valid. Namely, >> Compartment Cell[n] >> Compartment OutsideCell >> Species A >> Compartment OutsideCell >> I don’t believe there is any validation rule that says a Reaction and the Species in the reactions must be in the same Compartment. I don’t think there should be either when a Reaction for example is on a membrane and is talking about diffusion into the medium, which could be what the above solution represents. Another solution, would be to remove the index for Cell from the Reaction below. >> So, I don’t think the issue with my example is related to inherited dimensions at all. It was just missing details. >> Cheers, >> Chris >> >>> On Jul 17, 2017, at 4:46 AM, Sarah Keating <ske...@ca...> wrote: >>> >>> Hi Guys >>> >>> I know the example was intended to be hypothetical but in fact the flat model is invalid. >>> >>> If the compartment is dimensioned and the species is not then species 'A' resides in compartment 'Cell' which does not exist in the flat model >>> >>> If both compartment and species are dimensioned then speciesReference species="A" points to something that doesn't exist. >>> >>> So inherited dimension is more complex that just worrying about id/metaid!! >>> >>> Sarah >>> >>> >>> On 11/07/2017 09:58, Sarah Keating wrote: >>>> @Chris Yes I would agree with that example :-) >>>> Sarah >>>> On 10/07/2017 18:56, Chris Myers wrote: >>>>> Yes, I also confirm that is my understanding. I also would like the >>>>> library to make this invisible to users of arrays. Namely, having >>>>> getDimensions follow parents when no dimensions are found on a child. >>>>> >>>>> To be absolute sure we are on the same page, I wanted to check my >>>>> understanding with a slightly different example: >>>>> >>>>> <reaction id="r" reversible="false" fast="false" compartment="Cell"> >>>>> <arrays:listOfDimensions >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>> arrays:arrayDimension="0"/> >>>>> </arrays:listOfDimensions> >>>>> <arrays:listOfIndices >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >>>>> <arrays:index arrays:arrayDimension="0" >>>>> arrays:referencedAttribute="compartment"> >>>>> <math xmlns="http://www.w3.org/1998/Math/MathML"> >>>>> <ci> d0 </ci> >>>>> </math> >>>>> </arrays:index> >>>>> </arrays:listOfIndices> >>>>> <listOfReactants metaid="_msr"> >>>>> <speciesReference constant="true" species="A" >>>>> stoichiometry="1" id=“sr1"> >>>>> </speciesReference> >>>>> >>>>> and I would expect when flattened to get (assume n = 2) >>>>> >>>>> <reaction id="r_0" reversible="false" fast="false" >>>>> compartment="Cell_0"> >>>>> <listOfReactants metaid="_msr_0"> >>>>> <speciesReference constant="true" species="A" >>>>> stoichiometry="1" id="sr1_0"> >>>>> </speciesReference> >>>>> ... >>>>> <reaction id="r_1" reversible="false" fast="false" >>>>> compartment="Cell_1"> >>>>> <listOfReactants metaid="_msr_1"> >>>>> <speciesReference constant="true" species="A" >>>>> stoichiometry="1" id="sr1_1"> >>>>> </speciesReference> >>>>> … >>>>> >>>>> Namely, the SpecieReference id still gets expanded. So, the rule is >>>>> basically that child Ids get expanded to match parent ID expansions, >>>>> then if they also have additional dimensions then they get expanded >>>>> after that. Does this make sense? >>>>> >>>>> Chris >>>>> >>>>>> On Jul 10, 2017, at 10:50 AM, Leandro Watanabe <lea...@gm... >>>>>> <mailto:lea...@gm...>> wrote: >>>>>> >>>>>> I believe that is the case. If we have an agreement, then I can make >>>>>> modifications in JSBML too. >>>>>> >>>>>> Leandro >>>>>> >>>>>> On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith >>>>>> <luc...@gm... <mailto:luc...@gm...>> wrote: >>>>>> >>>>>> That is indeed the idea as I understand it, too. >>>>>> >>>>>> The only additional thing is that it would be nice if a function >>>>>> existed in libsbml and jsbml like 'GetDimensions' that returned >>>>>> the dimensions that applied to that object, whether direct or >>>>>> inherited (or null). >>>>>> >>>>>> -Lucian >>>>>> >>>>>> >>>>>> On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca... >>>>>> <mailto:ske...@ca...>> wrote: >>>>>> >>>>>> So I think what got decided was: >>>>>> >>>>>> 1. A child object inherits the dimensions of its parent >>>>>> implicitly. This include listOf children that would not >>>>>> normally be dimensioned. >>>>>> >>>>>> So assuming the compartment Cell and species A also have >>>>>> dimension '0' of size n >>>>>> the speciesReference in the reaction below inherits dimension >>>>>> '0' of size n without the need to explicitly declare it. >>>>>> >>>>>> <reaction id="r" reversible="false" fast="false" >>>>>> compartment="Cell"> >>>>>> <arrays:listOfDimensions >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>>> arrays:arrayDimension="0"/> >>>>>> </arrays:listOfDimensions> >>>>>> <arrays:listOfIndices >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:index arrays:arrayDimension="0" >>>>>> arrays:referencedAttribute="compartment"> >>>>>> <math xmlns="http://www.w3.org/1998/Math/MathML >>>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>>> <ci> d0 </ci> >>>>>> </math> >>>>>> </arrays:index> >>>>>> </arrays:listOfIndices> >>>>>> <listOfReactants metaid="_msr"> >>>>>> <speciesReference constant="true" species="A" >>>>>> stoichiometry="1" id="sr1"> >>>>>> <arrays:listOfIndices >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:index >>>>>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>>>>> <math >>>>>> xmlns="http://www.w3.org/1998/Math/MathML >>>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>>> <ci> d0 </ci> >>>>>> </math> >>>>>> </arrays:index> >>>>>> </arrays:listOfIndices> >>>>>> </speciesReference> >>>>>> >>>>>> and you would expect when flattened to get (assume n = 2) >>>>>> >>>>>> <reaction id="r_0" reversible="false" fast="false" >>>>>> compartment="Cell_0"> >>>>>> <listOfReactants metaid="_msr_0"> >>>>>> <speciesReference constant="true" species="A_0" >>>>>> stoichiometry="1" id="sr1_0"> >>>>>> </speciesReference> >>>>>> ... >>>>>> <reaction id="r_1" reversible="false" fast="false" >>>>>> compartment="Cell_1"> >>>>>> <listOfReactants metaid="_msr_1"> >>>>>> <speciesReference constant="true" species="A_1" >>>>>> stoichiometry="1" id="sr1_1"> >>>>>> </speciesReference> >>>>>> ... >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> 2. If any child object adds dimensions of its own then it MUST >>>>>> also declare the inherited dimensions from the parent. >>>>>> >>>>>> So my species reference claims to have two dimensions in the >>>>>> one dimension reaction so has to redeclare the dimension d0 >>>>>> that it inherits and then add another >>>>>> >>>>>> <reaction id="r" reversible="false" fast="false" >>>>>> compartment="Cell"> >>>>>> <arrays:listOfDimensions >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>>> arrays:arrayDimension="0"/> >>>>>> </arrays:listOfDimensions> >>>>>> <arrays:listOfIndices >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:index arrays:arrayDimension="0" >>>>>> arrays:referencedAttribute="compartment"> >>>>>> <math xmlns="http://www.w3.org/1998/Math/MathML >>>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>>> <ci> d0 </ci> >>>>>> </math> >>>>>> </arrays:index> >>>>>> </arrays:listOfIndices> >>>>>> <listOfReactants metaid="_msr"> >>>>>> <speciesReference constant="true" species="A" >>>>>> stoichiometry="1" id="sr1"> >>>>>> <arrays:listOfDimensions >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>>> arrays:arrayDimension="0"/> >>>>>> <arrays:dimension arrays:id="d1" arrays:size="n" >>>>>> arrays:arrayDimension="1"/> >>>>>> </arrays:listOfDimensions> >>>>>> <arrays:listOfIndices >>>>>> >>>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>>> <arrays:index >>>>>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>>>>> <math >>>>>> xmlns="http://www.w3.org/1998/Math/MathML >>>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>>> <ci> d0 </ci> >>>>>> </math> >>>>>> </arrays:index> >>>>>> <arrays:index arrays:referencedAttribute="id" >>>>>> arrays:arrayDimension="1"> >>>>>> <math >>>>>> xmlns="http://www.w3.org/1998/Math/MathML >>>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>>> <ci> d1 </ci> >>>>>> </math> >>>>>> </arrays:index> >>>>>> </arrays:listOfIndices> >>>>>> </speciesReference> >>>>>> >>>>>> and you would expect when flattened to get (assume n = 2) I >>>>>> think ???? >>>>>> >>>>>> <reaction id="r_0" reversible="false" fast="false" >>>>>> compartment="Cell_0"> >>>>>> <listOfReactants metaid="_msr_0"> >>>>>> <speciesReference constant="true" species="A_0" >>>>>> stoichiometry="1" id="sr1_0_0"> >>>>>> <speciesReference constant="true" species="A_0" >>>>>> stoichiometry="1" id="sr1_0_1"> >>>>>> </speciesReference> >>>>>> ... >>>>>> <reaction id="r_1" reversible="false" fast="false" >>>>>> compartment="Cell_1"> >>>>>> <listOfReactants metaid="_msr_1"> >>>>>> <speciesReference constant="true" species="A_1" >>>>>> stoichiometry="1" id="sr1_1_0"> >>>>>> <speciesReference constant="true" species="A_1" >>>>>> stoichiometry="1" id="sr1_1_1"> >>>>>> </speciesReference> >>>>>> ... >>>>>> >>>>>> >>>>>> Before I change my flattening code any more it would be great >>>>>> if someone would confirm my recollection and my interpretation :-) >>>>>> >>>>>> Sarah >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> Check out the vibrant tech community on one of the world's most >>>>>> engaging tech sites, Slashdot.org <http://slashdot.org>! >>>>>> http://sdm.link/slashdot >>>>>> _______________________________________________ >>>>>> sbml-arrays mailing list >>>>>> sbm...@li... >>>>>> <mailto:sbm...@li...> >>>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>>> <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Check out the vibrant tech community on one of the world's most >>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> sbml-arrays mailing list >>>>> sbm...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>> >>> > |
From: Sarah K. <ske...@ca...> - 2017-07-18 08:47:59
|
Hi Chris I realised the example was not complete and that it could be made to represent a valid situation. My point was that dimensions (explicit or inherited) need careful consideration everywhere an element might have an attribute that is a reference to another element. In this case a species that was not dimensioned and a compartment that was. There was a solution (as you indicated) but it may not be the first thing that sprang to mind :-) It may be arrays needs to make the same statement as comp i.e. the flattened version of the model must also be valid. Sarah On 17/07/2017 14:32, Chris Myers wrote: > HI Sarah, > > This was indeed a mistake in my example, but my example was also not complete. I failed to declare Compartment and Species. If I had done so, then the error would have been more clear. Let’s consider what it might have been: > > Compartment Cell[n] > Species A > Compartment Cell > > This would be invalid because Cell has a dimension but no index. Ok, how about: > > Compartment Cell > Species A > Compartment Cell > > This would be invalid because the Reaction has an index for Cell, but it does not have a dimension. > > So, there are two solutions to make this valid. Namely, > > Compartment Cell[n] > Compartment OutsideCell > Species A > Compartment OutsideCell > > I don’t believe there is any validation rule that says a Reaction and the Species in the reactions must be in the same Compartment. I don’t think there should be either when a Reaction for example is on a membrane and is talking about diffusion into the medium, which could be what the above solution represents. Another solution, would be to remove the index for Cell from the Reaction below. > > So, I don’t think the issue with my example is related to inherited dimensions at all. It was just missing details. > > Cheers, > > Chris > > >> On Jul 17, 2017, at 4:46 AM, Sarah Keating <ske...@ca...> wrote: >> >> Hi Guys >> >> I know the example was intended to be hypothetical but in fact the flat model is invalid. >> >> If the compartment is dimensioned and the species is not then species 'A' resides in compartment 'Cell' which does not exist in the flat model >> >> If both compartment and species are dimensioned then speciesReference species="A" points to something that doesn't exist. >> >> So inherited dimension is more complex that just worrying about id/metaid!! >> >> Sarah >> >> >> On 11/07/2017 09:58, Sarah Keating wrote: >>> @Chris Yes I would agree with that example :-) >>> Sarah >>> On 10/07/2017 18:56, Chris Myers wrote: >>>> Yes, I also confirm that is my understanding. I also would like the >>>> library to make this invisible to users of arrays. Namely, having >>>> getDimensions follow parents when no dimensions are found on a child. >>>> >>>> To be absolute sure we are on the same page, I wanted to check my >>>> understanding with a slightly different example: >>>> >>>> <reaction id="r" reversible="false" fast="false" compartment="Cell"> >>>> <arrays:listOfDimensions >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>> arrays:arrayDimension="0"/> >>>> </arrays:listOfDimensions> >>>> <arrays:listOfIndices >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >>>> <arrays:index arrays:arrayDimension="0" >>>> arrays:referencedAttribute="compartment"> >>>> <math xmlns="http://www.w3.org/1998/Math/MathML"> >>>> <ci> d0 </ci> >>>> </math> >>>> </arrays:index> >>>> </arrays:listOfIndices> >>>> <listOfReactants metaid="_msr"> >>>> <speciesReference constant="true" species="A" >>>> stoichiometry="1" id=“sr1"> >>>> </speciesReference> >>>> >>>> and I would expect when flattened to get (assume n = 2) >>>> >>>> <reaction id="r_0" reversible="false" fast="false" >>>> compartment="Cell_0"> >>>> <listOfReactants metaid="_msr_0"> >>>> <speciesReference constant="true" species="A" >>>> stoichiometry="1" id="sr1_0"> >>>> </speciesReference> >>>> ... >>>> <reaction id="r_1" reversible="false" fast="false" >>>> compartment="Cell_1"> >>>> <listOfReactants metaid="_msr_1"> >>>> <speciesReference constant="true" species="A" >>>> stoichiometry="1" id="sr1_1"> >>>> </speciesReference> >>>> … >>>> >>>> Namely, the SpecieReference id still gets expanded. So, the rule is >>>> basically that child Ids get expanded to match parent ID expansions, >>>> then if they also have additional dimensions then they get expanded >>>> after that. Does this make sense? >>>> >>>> Chris >>>> >>>>> On Jul 10, 2017, at 10:50 AM, Leandro Watanabe <lea...@gm... >>>>> <mailto:lea...@gm...>> wrote: >>>>> >>>>> I believe that is the case. If we have an agreement, then I can make >>>>> modifications in JSBML too. >>>>> >>>>> Leandro >>>>> >>>>> On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith >>>>> <luc...@gm... <mailto:luc...@gm...>> wrote: >>>>> >>>>> That is indeed the idea as I understand it, too. >>>>> >>>>> The only additional thing is that it would be nice if a function >>>>> existed in libsbml and jsbml like 'GetDimensions' that returned >>>>> the dimensions that applied to that object, whether direct or >>>>> inherited (or null). >>>>> >>>>> -Lucian >>>>> >>>>> >>>>> On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca... >>>>> <mailto:ske...@ca...>> wrote: >>>>> >>>>> So I think what got decided was: >>>>> >>>>> 1. A child object inherits the dimensions of its parent >>>>> implicitly. This include listOf children that would not >>>>> normally be dimensioned. >>>>> >>>>> So assuming the compartment Cell and species A also have >>>>> dimension '0' of size n >>>>> the speciesReference in the reaction below inherits dimension >>>>> '0' of size n without the need to explicitly declare it. >>>>> >>>>> <reaction id="r" reversible="false" fast="false" >>>>> compartment="Cell"> >>>>> <arrays:listOfDimensions >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>> arrays:arrayDimension="0"/> >>>>> </arrays:listOfDimensions> >>>>> <arrays:listOfIndices >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:index arrays:arrayDimension="0" >>>>> arrays:referencedAttribute="compartment"> >>>>> <math xmlns="http://www.w3.org/1998/Math/MathML >>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>> <ci> d0 </ci> >>>>> </math> >>>>> </arrays:index> >>>>> </arrays:listOfIndices> >>>>> <listOfReactants metaid="_msr"> >>>>> <speciesReference constant="true" species="A" >>>>> stoichiometry="1" id="sr1"> >>>>> <arrays:listOfIndices >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:index >>>>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>>>> <math >>>>> xmlns="http://www.w3.org/1998/Math/MathML >>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>> <ci> d0 </ci> >>>>> </math> >>>>> </arrays:index> >>>>> </arrays:listOfIndices> >>>>> </speciesReference> >>>>> >>>>> and you would expect when flattened to get (assume n = 2) >>>>> >>>>> <reaction id="r_0" reversible="false" fast="false" >>>>> compartment="Cell_0"> >>>>> <listOfReactants metaid="_msr_0"> >>>>> <speciesReference constant="true" species="A_0" >>>>> stoichiometry="1" id="sr1_0"> >>>>> </speciesReference> >>>>> ... >>>>> <reaction id="r_1" reversible="false" fast="false" >>>>> compartment="Cell_1"> >>>>> <listOfReactants metaid="_msr_1"> >>>>> <speciesReference constant="true" species="A_1" >>>>> stoichiometry="1" id="sr1_1"> >>>>> </speciesReference> >>>>> ... >>>>> >>>>> >>>>> >>>>> >>>>> 2. If any child object adds dimensions of its own then it MUST >>>>> also declare the inherited dimensions from the parent. >>>>> >>>>> So my species reference claims to have two dimensions in the >>>>> one dimension reaction so has to redeclare the dimension d0 >>>>> that it inherits and then add another >>>>> >>>>> <reaction id="r" reversible="false" fast="false" >>>>> compartment="Cell"> >>>>> <arrays:listOfDimensions >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>> arrays:arrayDimension="0"/> >>>>> </arrays:listOfDimensions> >>>>> <arrays:listOfIndices >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:index arrays:arrayDimension="0" >>>>> arrays:referencedAttribute="compartment"> >>>>> <math xmlns="http://www.w3.org/1998/Math/MathML >>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>> <ci> d0 </ci> >>>>> </math> >>>>> </arrays:index> >>>>> </arrays:listOfIndices> >>>>> <listOfReactants metaid="_msr"> >>>>> <speciesReference constant="true" species="A" >>>>> stoichiometry="1" id="sr1"> >>>>> <arrays:listOfDimensions >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>>> arrays:arrayDimension="0"/> >>>>> <arrays:dimension arrays:id="d1" arrays:size="n" >>>>> arrays:arrayDimension="1"/> >>>>> </arrays:listOfDimensions> >>>>> <arrays:listOfIndices >>>>> >>>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>>> <arrays:index >>>>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>>>> <math >>>>> xmlns="http://www.w3.org/1998/Math/MathML >>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>> <ci> d0 </ci> >>>>> </math> >>>>> </arrays:index> >>>>> <arrays:index arrays:referencedAttribute="id" >>>>> arrays:arrayDimension="1"> >>>>> <math >>>>> xmlns="http://www.w3.org/1998/Math/MathML >>>>> <http://www.w3.org/1998/Math/MathML>"> >>>>> <ci> d1 </ci> >>>>> </math> >>>>> </arrays:index> >>>>> </arrays:listOfIndices> >>>>> </speciesReference> >>>>> >>>>> and you would expect when flattened to get (assume n = 2) I >>>>> think ???? >>>>> >>>>> <reaction id="r_0" reversible="false" fast="false" >>>>> compartment="Cell_0"> >>>>> <listOfReactants metaid="_msr_0"> >>>>> <speciesReference constant="true" species="A_0" >>>>> stoichiometry="1" id="sr1_0_0"> >>>>> <speciesReference constant="true" species="A_0" >>>>> stoichiometry="1" id="sr1_0_1"> >>>>> </speciesReference> >>>>> ... >>>>> <reaction id="r_1" reversible="false" fast="false" >>>>> compartment="Cell_1"> >>>>> <listOfReactants metaid="_msr_1"> >>>>> <speciesReference constant="true" species="A_1" >>>>> stoichiometry="1" id="sr1_1_0"> >>>>> <speciesReference constant="true" species="A_1" >>>>> stoichiometry="1" id="sr1_1_1"> >>>>> </speciesReference> >>>>> ... >>>>> >>>>> >>>>> Before I change my flattening code any more it would be great >>>>> if someone would confirm my recollection and my interpretation :-) >>>>> >>>>> Sarah >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Check out the vibrant tech community on one of the world's most >>>>> engaging tech sites, Slashdot.org <http://slashdot.org>! >>>>> http://sdm.link/slashdot >>>>> _______________________________________________ >>>>> sbml-arrays mailing list >>>>> sbm...@li... >>>>> <mailto:sbm...@li...> >>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>> <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> >>>>> >>>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Check out the vibrant tech community on one of the world's most >>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>> >>>> >>>> >>>> _______________________________________________ >>>> sbml-arrays mailing list >>>> sbm...@li... >>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>> >> > > |
From: Chris M. <my...@ec...> - 2017-07-17 13:32:45
|
HI Sarah, This was indeed a mistake in my example, but my example was also not complete. I failed to declare Compartment and Species. If I had done so, then the error would have been more clear. Let’s consider what it might have been: Compartment Cell[n] Species A Compartment Cell This would be invalid because Cell has a dimension but no index. Ok, how about: Compartment Cell Species A Compartment Cell This would be invalid because the Reaction has an index for Cell, but it does not have a dimension. So, there are two solutions to make this valid. Namely, Compartment Cell[n] Compartment OutsideCell Species A Compartment OutsideCell I don’t believe there is any validation rule that says a Reaction and the Species in the reactions must be in the same Compartment. I don’t think there should be either when a Reaction for example is on a membrane and is talking about diffusion into the medium, which could be what the above solution represents. Another solution, would be to remove the index for Cell from the Reaction below. So, I don’t think the issue with my example is related to inherited dimensions at all. It was just missing details. Cheers, Chris > On Jul 17, 2017, at 4:46 AM, Sarah Keating <ske...@ca...> wrote: > > Hi Guys > > I know the example was intended to be hypothetical but in fact the flat model is invalid. > > If the compartment is dimensioned and the species is not then species 'A' resides in compartment 'Cell' which does not exist in the flat model > > If both compartment and species are dimensioned then speciesReference species="A" points to something that doesn't exist. > > So inherited dimension is more complex that just worrying about id/metaid!! > > Sarah > > > On 11/07/2017 09:58, Sarah Keating wrote: >> @Chris Yes I would agree with that example :-) >> Sarah >> On 10/07/2017 18:56, Chris Myers wrote: >>> Yes, I also confirm that is my understanding. I also would like the >>> library to make this invisible to users of arrays. Namely, having >>> getDimensions follow parents when no dimensions are found on a child. >>> >>> To be absolute sure we are on the same page, I wanted to check my >>> understanding with a slightly different example: >>> >>> <reaction id="r" reversible="false" fast="false" compartment="Cell"> >>> <arrays:listOfDimensions >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >>> <arrays:dimension arrays:id="d0" arrays:size="n" >>> arrays:arrayDimension="0"/> >>> </arrays:listOfDimensions> >>> <arrays:listOfIndices >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >>> <arrays:index arrays:arrayDimension="0" >>> arrays:referencedAttribute="compartment"> >>> <math xmlns="http://www.w3.org/1998/Math/MathML"> >>> <ci> d0 </ci> >>> </math> >>> </arrays:index> >>> </arrays:listOfIndices> >>> <listOfReactants metaid="_msr"> >>> <speciesReference constant="true" species="A" >>> stoichiometry="1" id=“sr1"> >>> </speciesReference> >>> >>> and I would expect when flattened to get (assume n = 2) >>> >>> <reaction id="r_0" reversible="false" fast="false" >>> compartment="Cell_0"> >>> <listOfReactants metaid="_msr_0"> >>> <speciesReference constant="true" species="A" >>> stoichiometry="1" id="sr1_0"> >>> </speciesReference> >>> ... >>> <reaction id="r_1" reversible="false" fast="false" >>> compartment="Cell_1"> >>> <listOfReactants metaid="_msr_1"> >>> <speciesReference constant="true" species="A" >>> stoichiometry="1" id="sr1_1"> >>> </speciesReference> >>> … >>> >>> Namely, the SpecieReference id still gets expanded. So, the rule is >>> basically that child Ids get expanded to match parent ID expansions, >>> then if they also have additional dimensions then they get expanded >>> after that. Does this make sense? >>> >>> Chris >>> >>>> On Jul 10, 2017, at 10:50 AM, Leandro Watanabe <lea...@gm... >>>> <mailto:lea...@gm...>> wrote: >>>> >>>> I believe that is the case. If we have an agreement, then I can make >>>> modifications in JSBML too. >>>> >>>> Leandro >>>> >>>> On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith >>>> <luc...@gm... <mailto:luc...@gm...>> wrote: >>>> >>>> That is indeed the idea as I understand it, too. >>>> >>>> The only additional thing is that it would be nice if a function >>>> existed in libsbml and jsbml like 'GetDimensions' that returned >>>> the dimensions that applied to that object, whether direct or >>>> inherited (or null). >>>> >>>> -Lucian >>>> >>>> >>>> On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca... >>>> <mailto:ske...@ca...>> wrote: >>>> >>>> So I think what got decided was: >>>> >>>> 1. A child object inherits the dimensions of its parent >>>> implicitly. This include listOf children that would not >>>> normally be dimensioned. >>>> >>>> So assuming the compartment Cell and species A also have >>>> dimension '0' of size n >>>> the speciesReference in the reaction below inherits dimension >>>> '0' of size n without the need to explicitly declare it. >>>> >>>> <reaction id="r" reversible="false" fast="false" >>>> compartment="Cell"> >>>> <arrays:listOfDimensions >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>> arrays:arrayDimension="0"/> >>>> </arrays:listOfDimensions> >>>> <arrays:listOfIndices >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:index arrays:arrayDimension="0" >>>> arrays:referencedAttribute="compartment"> >>>> <math xmlns="http://www.w3.org/1998/Math/MathML >>>> <http://www.w3.org/1998/Math/MathML>"> >>>> <ci> d0 </ci> >>>> </math> >>>> </arrays:index> >>>> </arrays:listOfIndices> >>>> <listOfReactants metaid="_msr"> >>>> <speciesReference constant="true" species="A" >>>> stoichiometry="1" id="sr1"> >>>> <arrays:listOfIndices >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:index >>>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>>> <math >>>> xmlns="http://www.w3.org/1998/Math/MathML >>>> <http://www.w3.org/1998/Math/MathML>"> >>>> <ci> d0 </ci> >>>> </math> >>>> </arrays:index> >>>> </arrays:listOfIndices> >>>> </speciesReference> >>>> >>>> and you would expect when flattened to get (assume n = 2) >>>> >>>> <reaction id="r_0" reversible="false" fast="false" >>>> compartment="Cell_0"> >>>> <listOfReactants metaid="_msr_0"> >>>> <speciesReference constant="true" species="A_0" >>>> stoichiometry="1" id="sr1_0"> >>>> </speciesReference> >>>> ... >>>> <reaction id="r_1" reversible="false" fast="false" >>>> compartment="Cell_1"> >>>> <listOfReactants metaid="_msr_1"> >>>> <speciesReference constant="true" species="A_1" >>>> stoichiometry="1" id="sr1_1"> >>>> </speciesReference> >>>> ... >>>> >>>> >>>> >>>> >>>> 2. If any child object adds dimensions of its own then it MUST >>>> also declare the inherited dimensions from the parent. >>>> >>>> So my species reference claims to have two dimensions in the >>>> one dimension reaction so has to redeclare the dimension d0 >>>> that it inherits and then add another >>>> >>>> <reaction id="r" reversible="false" fast="false" >>>> compartment="Cell"> >>>> <arrays:listOfDimensions >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>> arrays:arrayDimension="0"/> >>>> </arrays:listOfDimensions> >>>> <arrays:listOfIndices >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:index arrays:arrayDimension="0" >>>> arrays:referencedAttribute="compartment"> >>>> <math xmlns="http://www.w3.org/1998/Math/MathML >>>> <http://www.w3.org/1998/Math/MathML>"> >>>> <ci> d0 </ci> >>>> </math> >>>> </arrays:index> >>>> </arrays:listOfIndices> >>>> <listOfReactants metaid="_msr"> >>>> <speciesReference constant="true" species="A" >>>> stoichiometry="1" id="sr1"> >>>> <arrays:listOfDimensions >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:dimension arrays:id="d0" arrays:size="n" >>>> arrays:arrayDimension="0"/> >>>> <arrays:dimension arrays:id="d1" arrays:size="n" >>>> arrays:arrayDimension="1"/> >>>> </arrays:listOfDimensions> >>>> <arrays:listOfIndices >>>> >>>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>>> <arrays:index >>>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>>> <math >>>> xmlns="http://www.w3.org/1998/Math/MathML >>>> <http://www.w3.org/1998/Math/MathML>"> >>>> <ci> d0 </ci> >>>> </math> >>>> </arrays:index> >>>> <arrays:index arrays:referencedAttribute="id" >>>> arrays:arrayDimension="1"> >>>> <math >>>> xmlns="http://www.w3.org/1998/Math/MathML >>>> <http://www.w3.org/1998/Math/MathML>"> >>>> <ci> d1 </ci> >>>> </math> >>>> </arrays:index> >>>> </arrays:listOfIndices> >>>> </speciesReference> >>>> >>>> and you would expect when flattened to get (assume n = 2) I >>>> think ???? >>>> >>>> <reaction id="r_0" reversible="false" fast="false" >>>> compartment="Cell_0"> >>>> <listOfReactants metaid="_msr_0"> >>>> <speciesReference constant="true" species="A_0" >>>> stoichiometry="1" id="sr1_0_0"> >>>> <speciesReference constant="true" species="A_0" >>>> stoichiometry="1" id="sr1_0_1"> >>>> </speciesReference> >>>> ... >>>> <reaction id="r_1" reversible="false" fast="false" >>>> compartment="Cell_1"> >>>> <listOfReactants metaid="_msr_1"> >>>> <speciesReference constant="true" species="A_1" >>>> stoichiometry="1" id="sr1_1_0"> >>>> <speciesReference constant="true" species="A_1" >>>> stoichiometry="1" id="sr1_1_1"> >>>> </speciesReference> >>>> ... >>>> >>>> >>>> Before I change my flattening code any more it would be great >>>> if someone would confirm my recollection and my interpretation :-) >>>> >>>> Sarah >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Check out the vibrant tech community on one of the world's most >>>> engaging tech sites, Slashdot.org <http://slashdot.org>! >>>> http://sdm.link/slashdot >>>> _______________________________________________ >>>> sbml-arrays mailing list >>>> sbm...@li... >>>> <mailto:sbm...@li...> >>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>> <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> >>>> >>>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Check out the vibrant tech community on one of the world's most >>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>> >>> >>> >>> _______________________________________________ >>> sbml-arrays mailing list >>> sbm...@li... >>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>> > |
From: Sarah K. <ske...@ca...> - 2017-07-17 10:47:12
|
Hi Guys I know the example was intended to be hypothetical but in fact the flat model is invalid. If the compartment is dimensioned and the species is not then species 'A' resides in compartment 'Cell' which does not exist in the flat model If both compartment and species are dimensioned then speciesReference species="A" points to something that doesn't exist. So inherited dimension is more complex that just worrying about id/metaid!! Sarah On 11/07/2017 09:58, Sarah Keating wrote: > @Chris Yes I would agree with that example :-) > > Sarah > > On 10/07/2017 18:56, Chris Myers wrote: >> Yes, I also confirm that is my understanding. I also would like the >> library to make this invisible to users of arrays. Namely, having >> getDimensions follow parents when no dimensions are found on a child. >> >> To be absolute sure we are on the same page, I wanted to check my >> understanding with a slightly different example: >> >> <reaction id="r" reversible="false" fast="false" compartment="Cell"> >> <arrays:listOfDimensions >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:index arrays:arrayDimension="0" >> arrays:referencedAttribute="compartment"> >> <math xmlns="http://www.w3.org/1998/Math/MathML"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> <listOfReactants metaid="_msr"> >> <speciesReference constant="true" species="A" >> stoichiometry="1" id=“sr1"> >> </speciesReference> >> >> and I would expect when flattened to get (assume n = 2) >> >> <reaction id="r_0" reversible="false" fast="false" >> compartment="Cell_0"> >> <listOfReactants metaid="_msr_0"> >> <speciesReference constant="true" species="A" >> stoichiometry="1" id="sr1_0"> >> </speciesReference> >> ... >> <reaction id="r_1" reversible="false" fast="false" >> compartment="Cell_1"> >> <listOfReactants metaid="_msr_1"> >> <speciesReference constant="true" species="A" >> stoichiometry="1" id="sr1_1"> >> </speciesReference> >> … >> >> Namely, the SpecieReference id still gets expanded. So, the rule is >> basically that child Ids get expanded to match parent ID expansions, >> then if they also have additional dimensions then they get expanded >> after that. Does this make sense? >> >> Chris >> >>> On Jul 10, 2017, at 10:50 AM, Leandro Watanabe <lea...@gm... >>> <mailto:lea...@gm...>> wrote: >>> >>> I believe that is the case. If we have an agreement, then I can make >>> modifications in JSBML too. >>> >>> Leandro >>> >>> On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith >>> <luc...@gm... <mailto:luc...@gm...>> wrote: >>> >>> That is indeed the idea as I understand it, too. >>> >>> The only additional thing is that it would be nice if a function >>> existed in libsbml and jsbml like 'GetDimensions' that returned >>> the dimensions that applied to that object, whether direct or >>> inherited (or null). >>> >>> -Lucian >>> >>> >>> On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca... >>> <mailto:ske...@ca...>> wrote: >>> >>> So I think what got decided was: >>> >>> 1. A child object inherits the dimensions of its parent >>> implicitly. This include listOf children that would not >>> normally be dimensioned. >>> >>> So assuming the compartment Cell and species A also have >>> dimension '0' of size n >>> the speciesReference in the reaction below inherits dimension >>> '0' of size n without the need to explicitly declare it. >>> >>> <reaction id="r" reversible="false" fast="false" >>> compartment="Cell"> >>> <arrays:listOfDimensions >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:dimension arrays:id="d0" arrays:size="n" >>> arrays:arrayDimension="0"/> >>> </arrays:listOfDimensions> >>> <arrays:listOfIndices >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:index arrays:arrayDimension="0" >>> arrays:referencedAttribute="compartment"> >>> <math xmlns="http://www.w3.org/1998/Math/MathML >>> <http://www.w3.org/1998/Math/MathML>"> >>> <ci> d0 </ci> >>> </math> >>> </arrays:index> >>> </arrays:listOfIndices> >>> <listOfReactants metaid="_msr"> >>> <speciesReference constant="true" species="A" >>> stoichiometry="1" id="sr1"> >>> <arrays:listOfIndices >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:index >>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>> <math >>> xmlns="http://www.w3.org/1998/Math/MathML >>> <http://www.w3.org/1998/Math/MathML>"> >>> <ci> d0 </ci> >>> </math> >>> </arrays:index> >>> </arrays:listOfIndices> >>> </speciesReference> >>> >>> and you would expect when flattened to get (assume n = 2) >>> >>> <reaction id="r_0" reversible="false" fast="false" >>> compartment="Cell_0"> >>> <listOfReactants metaid="_msr_0"> >>> <speciesReference constant="true" species="A_0" >>> stoichiometry="1" id="sr1_0"> >>> </speciesReference> >>> ... >>> <reaction id="r_1" reversible="false" fast="false" >>> compartment="Cell_1"> >>> <listOfReactants metaid="_msr_1"> >>> <speciesReference constant="true" species="A_1" >>> stoichiometry="1" id="sr1_1"> >>> </speciesReference> >>> ... >>> >>> >>> >>> >>> 2. If any child object adds dimensions of its own then it MUST >>> also declare the inherited dimensions from the parent. >>> >>> So my species reference claims to have two dimensions in the >>> one dimension reaction so has to redeclare the dimension d0 >>> that it inherits and then add another >>> >>> <reaction id="r" reversible="false" fast="false" >>> compartment="Cell"> >>> <arrays:listOfDimensions >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:dimension arrays:id="d0" arrays:size="n" >>> arrays:arrayDimension="0"/> >>> </arrays:listOfDimensions> >>> <arrays:listOfIndices >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:index arrays:arrayDimension="0" >>> arrays:referencedAttribute="compartment"> >>> <math xmlns="http://www.w3.org/1998/Math/MathML >>> <http://www.w3.org/1998/Math/MathML>"> >>> <ci> d0 </ci> >>> </math> >>> </arrays:index> >>> </arrays:listOfIndices> >>> <listOfReactants metaid="_msr"> >>> <speciesReference constant="true" species="A" >>> stoichiometry="1" id="sr1"> >>> <arrays:listOfDimensions >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:dimension arrays:id="d0" arrays:size="n" >>> arrays:arrayDimension="0"/> >>> <arrays:dimension arrays:id="d1" arrays:size="n" >>> arrays:arrayDimension="1"/> >>> </arrays:listOfDimensions> >>> <arrays:listOfIndices >>> >>> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >>> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >>> <arrays:index >>> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >>> <math >>> xmlns="http://www.w3.org/1998/Math/MathML >>> <http://www.w3.org/1998/Math/MathML>"> >>> <ci> d0 </ci> >>> </math> >>> </arrays:index> >>> <arrays:index arrays:referencedAttribute="id" >>> arrays:arrayDimension="1"> >>> <math >>> xmlns="http://www.w3.org/1998/Math/MathML >>> <http://www.w3.org/1998/Math/MathML>"> >>> <ci> d1 </ci> >>> </math> >>> </arrays:index> >>> </arrays:listOfIndices> >>> </speciesReference> >>> >>> and you would expect when flattened to get (assume n = 2) I >>> think ???? >>> >>> <reaction id="r_0" reversible="false" fast="false" >>> compartment="Cell_0"> >>> <listOfReactants metaid="_msr_0"> >>> <speciesReference constant="true" species="A_0" >>> stoichiometry="1" id="sr1_0_0"> >>> <speciesReference constant="true" species="A_0" >>> stoichiometry="1" id="sr1_0_1"> >>> </speciesReference> >>> ... >>> <reaction id="r_1" reversible="false" fast="false" >>> compartment="Cell_1"> >>> <listOfReactants metaid="_msr_1"> >>> <speciesReference constant="true" species="A_1" >>> stoichiometry="1" id="sr1_1_0"> >>> <speciesReference constant="true" species="A_1" >>> stoichiometry="1" id="sr1_1_1"> >>> </speciesReference> >>> ... >>> >>> >>> Before I change my flattening code any more it would be great >>> if someone would confirm my recollection and my interpretation :-) >>> >>> Sarah >>> >>> >>> ------------------------------------------------------------------------------ >>> Check out the vibrant tech community on one of the world's most >>> engaging tech sites, Slashdot.org <http://slashdot.org>! >>> http://sdm.link/slashdot >>> _______________________________________________ >>> sbml-arrays mailing list >>> sbm...@li... >>> <mailto:sbm...@li...> >>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>> <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> >>> >>> >> >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> >> >> >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> > > |
From: Sarah K. <ske...@ca...> - 2017-07-11 08:59:24
|
@Chris Yes I would agree with that example :-) Sarah On 10/07/2017 18:56, Chris Myers wrote: > Yes, I also confirm that is my understanding. I also would like the > library to make this invisible to users of arrays. Namely, having > getDimensions follow parents when no dimensions are found on a child. > > To be absolute sure we are on the same page, I wanted to check my > understanding with a slightly different example: > > <reaction id="r" reversible="false" fast="false" compartment="Cell"> > <arrays:listOfDimensions > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:dimension arrays:id="d0" arrays:size="n" > arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:index arrays:arrayDimension="0" > arrays:referencedAttribute="compartment"> > <math xmlns="http://www.w3.org/1998/Math/MathML"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > <listOfReactants metaid="_msr"> > <speciesReference constant="true" species="A" > stoichiometry="1" id=“sr1"> > </speciesReference> > > and I would expect when flattened to get (assume n = 2) > > <reaction id="r_0" reversible="false" fast="false" > compartment="Cell_0"> > <listOfReactants metaid="_msr_0"> > <speciesReference constant="true" species="A" > stoichiometry="1" id="sr1_0"> > </speciesReference> > ... > <reaction id="r_1" reversible="false" fast="false" > compartment="Cell_1"> > <listOfReactants metaid="_msr_1"> > <speciesReference constant="true" species="A" > stoichiometry="1" id="sr1_1"> > </speciesReference> > … > > Namely, the SpecieReference id still gets expanded. So, the rule is > basically that child Ids get expanded to match parent ID expansions, > then if they also have additional dimensions then they get expanded > after that. Does this make sense? > > Chris > >> On Jul 10, 2017, at 10:50 AM, Leandro Watanabe <lea...@gm... >> <mailto:lea...@gm...>> wrote: >> >> I believe that is the case. If we have an agreement, then I can make >> modifications in JSBML too. >> >> Leandro >> >> On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith >> <luc...@gm... <mailto:luc...@gm...>> wrote: >> >> That is indeed the idea as I understand it, too. >> >> The only additional thing is that it would be nice if a function >> existed in libsbml and jsbml like 'GetDimensions' that returned >> the dimensions that applied to that object, whether direct or >> inherited (or null). >> >> -Lucian >> >> >> On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca... >> <mailto:ske...@ca...>> wrote: >> >> So I think what got decided was: >> >> 1. A child object inherits the dimensions of its parent >> implicitly. This include listOf children that would not >> normally be dimensioned. >> >> So assuming the compartment Cell and species A also have >> dimension '0' of size n >> the speciesReference in the reaction below inherits dimension >> '0' of size n without the need to explicitly declare it. >> >> <reaction id="r" reversible="false" fast="false" >> compartment="Cell"> >> <arrays:listOfDimensions >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:index arrays:arrayDimension="0" >> arrays:referencedAttribute="compartment"> >> <math xmlns="http://www.w3.org/1998/Math/MathML >> <http://www.w3.org/1998/Math/MathML>"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> <listOfReactants metaid="_msr"> >> <speciesReference constant="true" species="A" >> stoichiometry="1" id="sr1"> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:index >> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >> <math >> xmlns="http://www.w3.org/1998/Math/MathML >> <http://www.w3.org/1998/Math/MathML>"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> </speciesReference> >> >> and you would expect when flattened to get (assume n = 2) >> >> <reaction id="r_0" reversible="false" fast="false" >> compartment="Cell_0"> >> <listOfReactants metaid="_msr_0"> >> <speciesReference constant="true" species="A_0" >> stoichiometry="1" id="sr1_0"> >> </speciesReference> >> ... >> <reaction id="r_1" reversible="false" fast="false" >> compartment="Cell_1"> >> <listOfReactants metaid="_msr_1"> >> <speciesReference constant="true" species="A_1" >> stoichiometry="1" id="sr1_1"> >> </speciesReference> >> ... >> >> >> >> >> 2. If any child object adds dimensions of its own then it MUST >> also declare the inherited dimensions from the parent. >> >> So my species reference claims to have two dimensions in the >> one dimension reaction so has to redeclare the dimension d0 >> that it inherits and then add another >> >> <reaction id="r" reversible="false" fast="false" >> compartment="Cell"> >> <arrays:listOfDimensions >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:index arrays:arrayDimension="0" >> arrays:referencedAttribute="compartment"> >> <math xmlns="http://www.w3.org/1998/Math/MathML >> <http://www.w3.org/1998/Math/MathML>"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> <listOfReactants metaid="_msr"> >> <speciesReference constant="true" species="A" >> stoichiometry="1" id="sr1"> >> <arrays:listOfDimensions >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> <arrays:dimension arrays:id="d1" arrays:size="n" >> arrays:arrayDimension="1"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 >> <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> >> <arrays:index >> arrays:referencedAttribute="species" arrays:arrayDimension="0"> >> <math >> xmlns="http://www.w3.org/1998/Math/MathML >> <http://www.w3.org/1998/Math/MathML>"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> <arrays:index arrays:referencedAttribute="id" >> arrays:arrayDimension="1"> >> <math >> xmlns="http://www.w3.org/1998/Math/MathML >> <http://www.w3.org/1998/Math/MathML>"> >> <ci> d1 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> </speciesReference> >> >> and you would expect when flattened to get (assume n = 2) I >> think ???? >> >> <reaction id="r_0" reversible="false" fast="false" >> compartment="Cell_0"> >> <listOfReactants metaid="_msr_0"> >> <speciesReference constant="true" species="A_0" >> stoichiometry="1" id="sr1_0_0"> >> <speciesReference constant="true" species="A_0" >> stoichiometry="1" id="sr1_0_1"> >> </speciesReference> >> ... >> <reaction id="r_1" reversible="false" fast="false" >> compartment="Cell_1"> >> <listOfReactants metaid="_msr_1"> >> <speciesReference constant="true" species="A_1" >> stoichiometry="1" id="sr1_1_0"> >> <speciesReference constant="true" species="A_1" >> stoichiometry="1" id="sr1_1_1"> >> </speciesReference> >> ... >> >> >> Before I change my flattening code any more it would be great >> if someone would confirm my recollection and my interpretation :-) >> >> Sarah >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org <http://slashdot.org>! >> http://sdm.link/slashdot >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> <mailto:sbm...@li...> >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> >> >> > > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays > |
From: Chris M. <my...@ec...> - 2017-07-10 17:56:53
|
Yes, I also confirm that is my understanding. I also would like the library to make this invisible to users of arrays. Namely, having getDimensions follow parents when no dimensions are found on a child. To be absolute sure we are on the same page, I wanted to check my understanding with a slightly different example: <reaction id="r" reversible="false" fast="false" compartment="Cell"> <arrays:listOfDimensions xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> </arrays:listOfDimensions> <arrays:listOfIndices xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> </arrays:listOfIndices> <listOfReactants metaid="_msr"> <speciesReference constant="true" species="A" stoichiometry="1" id=“sr1"> </speciesReference> and I would expect when flattened to get (assume n = 2) <reaction id="r_0" reversible="false" fast="false" compartment="Cell_0"> <listOfReactants metaid="_msr_0"> <speciesReference constant="true" species="A" stoichiometry="1" id="sr1_0"> </speciesReference> ... <reaction id="r_1" reversible="false" fast="false" compartment="Cell_1"> <listOfReactants metaid="_msr_1"> <speciesReference constant="true" species="A" stoichiometry="1" id="sr1_1"> </speciesReference> … Namely, the SpecieReference id still gets expanded. So, the rule is basically that child Ids get expanded to match parent ID expansions, then if they also have additional dimensions then they get expanded after that. Does this make sense? Chris > On Jul 10, 2017, at 10:50 AM, Leandro Watanabe <lea...@gm...> wrote: > > I believe that is the case. If we have an agreement, then I can make modifications in JSBML too. > > Leandro > > On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith <luc...@gm... <mailto:luc...@gm...>> wrote: > That is indeed the idea as I understand it, too. > > The only additional thing is that it would be nice if a function existed in libsbml and jsbml like 'GetDimensions' that returned the dimensions that applied to that object, whether direct or inherited (or null). > > -Lucian > > > On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca... <mailto:ske...@ca...>> wrote: > So I think what got decided was: > > 1. A child object inherits the dimensions of its parent implicitly. This include listOf children that would not normally be dimensioned. > > So assuming the compartment Cell and species A also have dimension '0' of size n > the speciesReference in the reaction below inherits dimension '0' of size n without the need to explicitly declare it. > > <reaction id="r" reversible="false" fast="false" compartment="Cell"> > <arrays:listOfDimensions > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > <listOfReactants metaid="_msr"> > <speciesReference constant="true" species="A" stoichiometry="1" id="sr1"> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:index arrays:referencedAttribute="species" arrays:arrayDimension="0"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > </speciesReference> > > and you would expect when flattened to get (assume n = 2) > > <reaction id="r_0" reversible="false" fast="false" compartment="Cell_0"> > <listOfReactants metaid="_msr_0"> > <speciesReference constant="true" species="A_0" stoichiometry="1" id="sr1_0"> > </speciesReference> > ... > <reaction id="r_1" reversible="false" fast="false" compartment="Cell_1"> > <listOfReactants metaid="_msr_1"> > <speciesReference constant="true" species="A_1" stoichiometry="1" id="sr1_1"> > </speciesReference> > ... > > > > > 2. If any child object adds dimensions of its own then it MUST also declare the inherited dimensions from the parent. > > So my species reference claims to have two dimensions in the one dimension reaction so has to redeclare the dimension d0 that it inherits and then add another > > <reaction id="r" reversible="false" fast="false" compartment="Cell"> > <arrays:listOfDimensions > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > <listOfReactants metaid="_msr"> > <speciesReference constant="true" species="A" stoichiometry="1" id="sr1"> > <arrays:listOfDimensions > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> > <arrays:dimension arrays:id="d1" arrays:size="n" arrays:arrayDimension="1"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:index arrays:referencedAttribute="species" arrays:arrayDimension="0"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > <arrays:index arrays:referencedAttribute="id" arrays:arrayDimension="1"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d1 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > </speciesReference> > > and you would expect when flattened to get (assume n = 2) I think ???? > > <reaction id="r_0" reversible="false" fast="false" compartment="Cell_0"> > <listOfReactants metaid="_msr_0"> > <speciesReference constant="true" species="A_0" stoichiometry="1" id="sr1_0_0"> > <speciesReference constant="true" species="A_0" stoichiometry="1" id="sr1_0_1"> > </speciesReference> > ... > <reaction id="r_1" reversible="false" fast="false" compartment="Cell_1"> > <listOfReactants metaid="_msr_1"> > <speciesReference constant="true" species="A_1" stoichiometry="1" id="sr1_1_0"> > <speciesReference constant="true" species="A_1" stoichiometry="1" id="sr1_1_1"> > </speciesReference> > ... > > > Before I change my flattening code any more it would be great if someone would confirm my recollection and my interpretation :-) > > Sarah > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot <http://sdm.link/slashdot> > _______________________________________________ > sbml-arrays mailing list > sbm...@li... <mailto:sbm...@li...> > https://lists.sourceforge.net/lists/listinfo/sbml-arrays <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> > |
From: Leandro W. <lea...@gm...> - 2017-07-10 16:50:22
|
I believe that is the case. If we have an agreement, then I can make modifications in JSBML too. Leandro On Mon, Jul 10, 2017 at 10:40 AM, Lucian Smith <luc...@gm...> wrote: > That is indeed the idea as I understand it, too. > > The only additional thing is that it would be nice if a function existed > in libsbml and jsbml like 'GetDimensions' that returned the dimensions that > applied to that object, whether direct or inherited (or null). > > -Lucian > > On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca...> wrote: > >> So I think what got decided was: >> >> 1. A child object inherits the dimensions of its parent implicitly. This >> include listOf children that would not normally be dimensioned. >> >> So assuming the compartment Cell and species A also have dimension '0' of >> size n >> the speciesReference in the reaction below inherits dimension '0' of size >> n without the need to explicitly declare it. >> >> <reaction id="r" reversible="false" fast="false" compartment="Cell"> >> <arrays:listOfDimensions >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:index arrays:arrayDimension="0" >> arrays:referencedAttribute="compartment"> >> <math xmlns="http://www.w3.org/1998/Math/MathML"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> <listOfReactants metaid="_msr"> >> <speciesReference constant="true" species="A" stoichiometry="1" >> id="sr1"> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:index arrays:referencedAttribute="species" >> arrays:arrayDimension="0"> >> <math xmlns="http://www.w3.org/1998/Math/MathML"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> </speciesReference> >> >> and you would expect when flattened to get (assume n = 2) >> >> <reaction id="r_0" reversible="false" fast="false" >> compartment="Cell_0"> >> <listOfReactants metaid="_msr_0"> >> <speciesReference constant="true" species="A_0" >> stoichiometry="1" id="sr1_0"> >> </speciesReference> >> ... >> <reaction id="r_1" reversible="false" fast="false" >> compartment="Cell_1"> >> <listOfReactants metaid="_msr_1"> >> <speciesReference constant="true" species="A_1" >> stoichiometry="1" id="sr1_1"> >> </speciesReference> >> ... >> >> >> >> >> 2. If any child object adds dimensions of its own then it MUST also >> declare the inherited dimensions from the parent. >> >> So my species reference claims to have two dimensions in the one >> dimension reaction so has to redeclare the dimension d0 that it inherits >> and then add another >> >> <reaction id="r" reversible="false" fast="false" compartment="Cell"> >> <arrays:listOfDimensions >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:index arrays:arrayDimension="0" >> arrays:referencedAttribute="compartment"> >> <math xmlns="http://www.w3.org/1998/Math/MathML"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> <listOfReactants metaid="_msr"> >> <speciesReference constant="true" species="A" stoichiometry="1" >> id="sr1"> >> <arrays:listOfDimensions >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:dimension arrays:id="d0" arrays:size="n" >> arrays:arrayDimension="0"/> >> <arrays:dimension arrays:id="d1" arrays:size="n" >> arrays:arrayDimension="1"/> >> </arrays:listOfDimensions> >> <arrays:listOfIndices >> >> xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> >> <arrays:index arrays:referencedAttribute="species" >> arrays:arrayDimension="0"> >> <math xmlns="http://www.w3.org/1998/Math/MathML"> >> <ci> d0 </ci> >> </math> >> </arrays:index> >> <arrays:index arrays:referencedAttribute="id" >> arrays:arrayDimension="1"> >> <math xmlns="http://www.w3.org/1998/Math/MathML"> >> <ci> d1 </ci> >> </math> >> </arrays:index> >> </arrays:listOfIndices> >> </speciesReference> >> >> and you would expect when flattened to get (assume n = 2) I think ???? >> >> <reaction id="r_0" reversible="false" fast="false" >> compartment="Cell_0"> >> <listOfReactants metaid="_msr_0"> >> <speciesReference constant="true" species="A_0" >> stoichiometry="1" id="sr1_0_0"> >> <speciesReference constant="true" species="A_0" >> stoichiometry="1" id="sr1_0_1"> >> </speciesReference> >> ... >> <reaction id="r_1" reversible="false" fast="false" >> compartment="Cell_1"> >> <listOfReactants metaid="_msr_1"> >> <speciesReference constant="true" species="A_1" >> stoichiometry="1" id="sr1_1_0"> >> <speciesReference constant="true" species="A_1" >> stoichiometry="1" id="sr1_1_1"> >> </speciesReference> >> ... >> >> >> Before I change my flattening code any more it would be great if someone >> would confirm my recollection and my interpretation :-) >> >> Sarah >> >> >> ------------------------------------------------------------ >> ------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> > |
From: Lucian S. <luc...@gm...> - 2017-07-10 16:40:57
|
That is indeed the idea as I understand it, too. The only additional thing is that it would be nice if a function existed in libsbml and jsbml like 'GetDimensions' that returned the dimensions that applied to that object, whether direct or inherited (or null). -Lucian On Jul 10, 2017 8:16 AM, "Sarah Keating" <ske...@ca...> wrote: > So I think what got decided was: > > 1. A child object inherits the dimensions of its parent implicitly. This > include listOf children that would not normally be dimensioned. > > So assuming the compartment Cell and species A also have dimension '0' of > size n > the speciesReference in the reaction below inherits dimension '0' of size > n without the need to explicitly declare it. > > <reaction id="r" reversible="false" fast="false" compartment="Cell"> > <arrays:listOfDimensions > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:dimension arrays:id="d0" arrays:size="n" > arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:index arrays:arrayDimension="0" > arrays:referencedAttribute="compartment"> > <math xmlns="http://www.w3.org/1998/Math/MathML"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > <listOfReactants metaid="_msr"> > <speciesReference constant="true" species="A" stoichiometry="1" > id="sr1"> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:index arrays:referencedAttribute="species" > arrays:arrayDimension="0"> > <math xmlns="http://www.w3.org/1998/Math/MathML"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > </speciesReference> > > and you would expect when flattened to get (assume n = 2) > > <reaction id="r_0" reversible="false" fast="false" > compartment="Cell_0"> > <listOfReactants metaid="_msr_0"> > <speciesReference constant="true" species="A_0" > stoichiometry="1" id="sr1_0"> > </speciesReference> > ... > <reaction id="r_1" reversible="false" fast="false" > compartment="Cell_1"> > <listOfReactants metaid="_msr_1"> > <speciesReference constant="true" species="A_1" > stoichiometry="1" id="sr1_1"> > </speciesReference> > ... > > > > > 2. If any child object adds dimensions of its own then it MUST also > declare the inherited dimensions from the parent. > > So my species reference claims to have two dimensions in the one dimension > reaction so has to redeclare the dimension d0 that it inherits and then add > another > > <reaction id="r" reversible="false" fast="false" compartment="Cell"> > <arrays:listOfDimensions > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:dimension arrays:id="d0" arrays:size="n" > arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:index arrays:arrayDimension="0" > arrays:referencedAttribute="compartment"> > <math xmlns="http://www.w3.org/1998/Math/MathML"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > <listOfReactants metaid="_msr"> > <speciesReference constant="true" species="A" stoichiometry="1" > id="sr1"> > <arrays:listOfDimensions > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:dimension arrays:id="d0" arrays:size="n" > arrays:arrayDimension="0"/> > <arrays:dimension arrays:id="d1" arrays:size="n" > arrays:arrayDimension="1"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> > <arrays:index arrays:referencedAttribute="species" > arrays:arrayDimension="0"> > <math xmlns="http://www.w3.org/1998/Math/MathML"> > <ci> d0 </ci> > </math> > </arrays:index> > <arrays:index arrays:referencedAttribute="id" > arrays:arrayDimension="1"> > <math xmlns="http://www.w3.org/1998/Math/MathML"> > <ci> d1 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > </speciesReference> > > and you would expect when flattened to get (assume n = 2) I think ???? > > <reaction id="r_0" reversible="false" fast="false" > compartment="Cell_0"> > <listOfReactants metaid="_msr_0"> > <speciesReference constant="true" species="A_0" > stoichiometry="1" id="sr1_0_0"> > <speciesReference constant="true" species="A_0" > stoichiometry="1" id="sr1_0_1"> > </speciesReference> > ... > <reaction id="r_1" reversible="false" fast="false" > compartment="Cell_1"> > <listOfReactants metaid="_msr_1"> > <speciesReference constant="true" species="A_1" > stoichiometry="1" id="sr1_1_0"> > <speciesReference constant="true" species="A_1" > stoichiometry="1" id="sr1_1_1"> > </speciesReference> > ... > > > Before I change my flattening code any more it would be great if someone > would confirm my recollection and my interpretation :-) > > Sarah > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays > |
From: Sarah K. <ske...@ca...> - 2017-07-10 15:15:07
|
So I think what got decided was: 1. A child object inherits the dimensions of its parent implicitly. This include listOf children that would not normally be dimensioned. So assuming the compartment Cell and species A also have dimension '0' of size n the speciesReference in the reaction below inherits dimension '0' of size n without the need to explicitly declare it. <reaction id="r" reversible="false" fast="false" compartment="Cell"> <arrays:listOfDimensions xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> </arrays:listOfDimensions> <arrays:listOfIndices xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> </arrays:listOfIndices> <listOfReactants metaid="_msr"> <speciesReference constant="true" species="A" stoichiometry="1" id="sr1"> <arrays:listOfIndices xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:referencedAttribute="species" arrays:arrayDimension="0"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> </arrays:listOfIndices> </speciesReference> and you would expect when flattened to get (assume n = 2) <reaction id="r_0" reversible="false" fast="false" compartment="Cell_0"> <listOfReactants metaid="_msr_0"> <speciesReference constant="true" species="A_0" stoichiometry="1" id="sr1_0"> </speciesReference> ... <reaction id="r_1" reversible="false" fast="false" compartment="Cell_1"> <listOfReactants metaid="_msr_1"> <speciesReference constant="true" species="A_1" stoichiometry="1" id="sr1_1"> </speciesReference> ... 2. If any child object adds dimensions of its own then it MUST also declare the inherited dimensions from the parent. So my species reference claims to have two dimensions in the one dimension reaction so has to redeclare the dimension d0 that it inherits and then add another <reaction id="r" reversible="false" fast="false" compartment="Cell"> <arrays:listOfDimensions xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> </arrays:listOfDimensions> <arrays:listOfIndices xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> </arrays:listOfIndices> <listOfReactants metaid="_msr"> <speciesReference constant="true" species="A" stoichiometry="1" id="sr1"> <arrays:listOfDimensions xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> <arrays:dimension arrays:id="d1" arrays:size="n" arrays:arrayDimension="1"/> </arrays:listOfDimensions> <arrays:listOfIndices xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:referencedAttribute="species" arrays:arrayDimension="0"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> <arrays:index arrays:referencedAttribute="id" arrays:arrayDimension="1"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d1 </ci> </math> </arrays:index> </arrays:listOfIndices> </speciesReference> and you would expect when flattened to get (assume n = 2) I think ???? <reaction id="r_0" reversible="false" fast="false" compartment="Cell_0"> <listOfReactants metaid="_msr_0"> <speciesReference constant="true" species="A_0" stoichiometry="1" id="sr1_0_0"> <speciesReference constant="true" species="A_0" stoichiometry="1" id="sr1_0_1"> </speciesReference> ... <reaction id="r_1" reversible="false" fast="false" compartment="Cell_1"> <listOfReactants metaid="_msr_1"> <speciesReference constant="true" species="A_1" stoichiometry="1" id="sr1_1_0"> <speciesReference constant="true" species="A_1" stoichiometry="1" id="sr1_1_1"> </speciesReference> ... Before I change my flattening code any more it would be great if someone would confirm my recollection and my interpretation :-) Sarah |
From: Leandro W. <lea...@gm...> - 2017-06-08 16:04:09
|
Hi Sarah, I agree with you :-) Leandro On Mon, Jun 5, 2017 at 4:09 AM, Sarah Keating <ske...@ca...> wrote: > Hi Guys > > Not ignoring the arrays list - just having issue with email and not > actually getting mail from the list at the moment :-) > > I think arrays and inherited dimensions is definitely a hacking session at > HARMONY ! > > Sarah > > |
From: Sarah K. <ske...@ca...> - 2017-06-05 10:10:19
|
Hi Guys Not ignoring the arrays list - just having issue with email and not actually getting mail from the list at the moment :-) I think arrays and inherited dimensions is definitely a hacking session at HARMONY ! Sarah |
From: Chris M. <my...@ec...> - 2017-06-01 17:07:08
|
Hi, One more thing I would like to add that by making all dimensions “explicit” that it should also help as IDs start appearing in other places. Since all IDs are globally scoped, the problem we are having with SpeciesReferences will essentially be all over the place with any child object. Therefore, it is best to make clear that child objects must include the dimensions of their parents. Look forward to your feedback. Thanks, Chris > On Jun 1, 2017, at 9:59 AM, Leandro Watanabe <lea...@gm...> wrote: > > Hi Sarah, > > Yes, this is a problem in the flattening due to implicit dimensions. I'll fix this problem at HARMONY. Thanks for finding all these bugs. It is nice having other people testing this too. > > Chris and I talked about the problem with implicit dimensions and we thought about using index on ids. You add dimensions to the species reference (making implicit dimensions actually explicit) and add indices to id. When indexing ids, only one element should be selected and added to the list of species reference of the parent. > > NOTE: this will not work on the current flattening because index on ids would just update the id but still add all the expanded species reference to the parent. > > It would be nice to get your feedback since you are implementing flattening about this approach, but it is nice to hear what other people have to say. This would change validation rules. I would also have to update flattening in JSBML to reflect this change. > > Using your example: > > <listOfReactions> > <reaction id="r" reversible="false" fast="false" compartment="Cell"> > <arrays:listOfDimensions > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > <listOfReactants> > <speciesReference constant="true" species="A" > stoichiometry="1" id="sr1"> > <arrays:listOfDimensions > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:dimension arrays:id="rd0" arrays:size="n" arrays:arrayDimension="0"/> > </arrays:listOfDimensions> > <arrays:listOfIndices > xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1 <http://www.sbml.org/sbml/level3/version1/arrays/version1>"> > <arrays:index arrays:referencedAttribute="species" arrays:arrayDimension="0"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > <arrays:index arrays:referencedAttribute="id" arrays:arrayDimension="0"> > <math xmlns="http://www.w3.org/1998/Math/MathML <http://www.w3.org/1998/Math/MathML>"> > <ci> d0 </ci> > </math> > </arrays:index> > </arrays:listOfIndices> > </speciesReference> > > </listOfReactants> > > </reaction> > </listOfReactions> > > > This would be able to make different species reference ids (sr1_0 and sr1_1). > > Thanks, > Leandro > > > > On Tue, May 30, 2017 at 8:15 AM, Sarah Keating <ske...@ca... <mailto:ske...@ca...>> wrote: > Thanks Chris > > That did clarify things - and I think you will need to detail this in the spec. I would offer to contribute but realistically that will not happen before HARMONY. > > Not sure whether to post this here or to jsbml-development. The attached file did not flatten with JSBML - which I assume is due to the id issue :-) > > ERROR (Model.java:4689) - An element of type speciesReference with the id "sr1" is already present in this model. The new element of type speciesReference will not be added to the model. > ERROR (ArraysFlattening.java:96) - Could not add SBase reaction [ id="r_0" compartment="Cell_0" fast="false" reversible="false"] because this object has an id that is already present in the model. Flattening Failed. > failed to write > > Sarah > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot <http://sdm.link/slashdot> > _______________________________________________ > sbml-arrays mailing list > sbm...@li... <mailto:sbm...@li...> > https://lists.sourceforge.net/lists/listinfo/sbml-arrays <https://lists.sourceforge.net/lists/listinfo/sbml-arrays> > > |
From: Leandro W. <lea...@gm...> - 2017-06-01 15:59:44
|
Hi Sarah, Yes, this is a problem in the flattening due to implicit dimensions. I'll fix this problem at HARMONY. Thanks for finding all these bugs. It is nice having other people testing this too. Chris and I talked about the problem with implicit dimensions and we thought about using index on ids. You add dimensions to the species reference (making implicit dimensions actually explicit) and add indices to id. When indexing ids, only one element should be selected and added to the list of species reference of the parent. NOTE: this will not work on the current flattening because index on ids would just update the id but still add all the expanded species reference to the parent. It would be nice to get your feedback since you are implementing flattening about this approach, but it is nice to hear what other people have to say. This would change validation rules. I would also have to update flattening in JSBML to reflect this change. Using your example: <listOfReactions> <reaction id="r" reversible="false" fast="false" compartment="Cell"> <arrays:listOfDimensions xmlns:arrays=" http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:dimension arrays:id="d0" arrays:size="n" arrays:arrayDimension="0"/> </arrays:listOfDimensions> <arrays:listOfIndices xmlns:arrays=" http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:arrayDimension="0" arrays:referencedAttribute="compartment"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> </arrays:listOfIndices> <listOfReactants> <speciesReference constant="true" species="A" stoichiometry="1" id="sr1"> <arrays:listOfDimensions xmlns:arrays=" http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:dimension arrays:id="rd0" arrays:size="n" arrays:arrayDimension="0"/> </arrays:listOfDimensions> <arrays:listOfIndices xmlns:arrays=" http://www.sbml.org/sbml/level3/version1/arrays/version1"> <arrays:index arrays:referencedAttribute="species" arrays:arrayDimension="0"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> <arrays:index arrays:referencedAttribute="id" arrays:arrayDimension="0"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <ci> d0 </ci> </math> </arrays:index> </arrays:listOfIndices> </speciesReference> </listOfReactants> </reaction> </listOfReactions> This would be able to make different species reference ids (sr1_0 and sr1_1). Thanks, Leandro On Tue, May 30, 2017 at 8:15 AM, Sarah Keating <ske...@ca...> wrote: > Thanks Chris > > That did clarify things - and I think you will need to detail this in the > spec. I would offer to contribute but realistically that will not happen > before HARMONY. > > Not sure whether to post this here or to jsbml-development. The attached > file did not flatten with JSBML - which I assume is due to the id issue :-) > > ERROR (Model.java:4689) - An element of type speciesReference with the id > "sr1" is already present in this model. The new element of type > speciesReference will not be added to the model. > ERROR (ArraysFlattening.java:96) - Could not add SBase reaction [ id="r_0" > compartment="Cell_0" fast="false" reversible="false"] because this object > has an id that is already present in the model. Flattening Failed. > failed to write > > Sarah > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays > > |
From: Sarah K. <ske...@ca...> - 2017-05-30 14:16:00
|
Thanks Chris That did clarify things - and I think you will need to detail this in the spec. I would offer to contribute but realistically that will not happen before HARMONY. Not sure whether to post this here or to jsbml-development. The attached file did not flatten with JSBML - which I assume is due to the id issue :-) ERROR (Model.java:4689) - An element of type speciesReference with the id "sr1" is already present in this model. The new element of type speciesReference will not be added to the model. ERROR (ArraysFlattening.java:96) - Could not add SBase reaction [ id="r_0" compartment="Cell_0" fast="false" reversible="false"] because this object has an id that is already present in the model. Flattening Failed. failed to write Sarah |
From: Leandro W. <lea...@gm...> - 2017-05-27 16:36:28
|
Hi Jacob, Sorry, I meant to create a new thread for iBioSim related questions only. SBML questions should be asked here. It is still quite helpful to ask questions in the arrays mailing list to get opinions from other people. Also, Lucian, SBML Team, editors, etc are more experienced than me so they can explain something that I wasn't very clear or correct me if I am wrong, so it is still quite helpful to keep them in the loop. Leandro On Sat, May 27, 2017 at 9:50 AM, Jacob Barhak <jac...@gm...> wrote: > So Lucian, > > What you are pointing out may be exactly what I need. > > I need events that use the same instruction line which is in the trigger > to fire in random order. The randomness is important since it allows > situations where a person has an MI before a Stroke or a Stroke before an > MI where both events have their own probability. > > I was hoping to handle it later on by assigning priority a random number - > for now it is not that important - and for debug purposes, I need something > I can follow - the code is convoluted enough. > > By the way, do you want to be in the discussion where I send code to > Leandro? You were very helpful so far. > > Yet you have a good point that we will revisit - please remember it and > raise it again in a few weeks. It will help me remember. > > Jacob > > > > On Sat, May 27, 2017 at 10:45 AM, Jacob Barhak <jac...@gm...> > wrote: > >> So Lucian, >> >> Leandro, asked to discontinue the old thread due to length, so I am >> creating a new thread with new title . >> >> >> >> Jacob >> >> On Fri, May 26, 2017 at 3:19 PM, Lucian Smith <luc...@gm...> >> wrote: >> >>> One note: >>> >>> On Thu, May 25, 2017 at 1:03 PM, Leandro Watanabe <lea...@gm...> >>> wrote: >>> >>>> If you leave priority out, then it is equal probability (50 50 in this >>>> case) of firing each. >>>> >>> >>> This is not true: in the absence of priorities, simulators may use any >>> method they wish to determine which event fires first. Some use 'the order >>> the event appears in the document', so would always fire event E1 before >>> event E2. In order to ensure a 50:50 probability, the 'priority' attribute >>> must exist, and be the same for both events. >>> >>> This means that your example, where both priorities are draws from the >>> same distribution, is functionally equivalent to giving both priorities the >>> same value, which is probably simplest. >>> >>> If you want one event to preferentially fire, you can give them >>> different distributions. As an example: >>> >>> E1 priority: uniform(0,1) >>> E2 priority: uniform(0,2) >>> >>> will preferentially execute event E2 75% of the time, as a draw from >>> uniform(0,2) will be greater than a draw from uniform(0,1) 75% of the time. >>> >>> -Lucian >>> >> >> > |
From: Jacob B. <jac...@gm...> - 2017-05-27 15:51:03
|
So Lucian, What you are pointing out may be exactly what I need. I need events that use the same instruction line which is in the trigger to fire in random order. The randomness is important since it allows situations where a person has an MI before a Stroke or a Stroke before an MI where both events have their own probability. I was hoping to handle it later on by assigning priority a random number - for now it is not that important - and for debug purposes, I need something I can follow - the code is convoluted enough. By the way, do you want to be in the discussion where I send code to Leandro? You were very helpful so far. Yet you have a good point that we will revisit - please remember it and raise it again in a few weeks. It will help me remember. Jacob On Sat, May 27, 2017 at 10:45 AM, Jacob Barhak <jac...@gm...> wrote: > So Lucian, > > Leandro, asked to discontinue the old thread due to length, so I am > creating a new thread with new title . > > > > Jacob > > On Fri, May 26, 2017 at 3:19 PM, Lucian Smith <luc...@gm...> > wrote: > >> One note: >> >> On Thu, May 25, 2017 at 1:03 PM, Leandro Watanabe <lea...@gm...> >> wrote: >> >>> If you leave priority out, then it is equal probability (50 50 in this >>> case) of firing each. >>> >> >> This is not true: in the absence of priorities, simulators may use any >> method they wish to determine which event fires first. Some use 'the order >> the event appears in the document', so would always fire event E1 before >> event E2. In order to ensure a 50:50 probability, the 'priority' attribute >> must exist, and be the same for both events. >> >> This means that your example, where both priorities are draws from the >> same distribution, is functionally equivalent to giving both priorities the >> same value, which is probably simplest. >> >> If you want one event to preferentially fire, you can give them different >> distributions. As an example: >> >> E1 priority: uniform(0,1) >> E2 priority: uniform(0,2) >> >> will preferentially execute event E2 75% of the time, as a draw from >> uniform(0,2) will be greater than a draw from uniform(0,1) 75% of the time. >> >> -Lucian >> > > |
From: Jacob B. <jac...@gm...> - 2017-05-27 15:45:19
|
So Lucian, Leandro, asked to discontinue the old thread due to length, so I am creating a new thread with new title . Jacob On Fri, May 26, 2017 at 3:19 PM, Lucian Smith <luc...@gm...> wrote: > One note: > > On Thu, May 25, 2017 at 1:03 PM, Leandro Watanabe <lea...@gm...> > wrote: > >> If you leave priority out, then it is equal probability (50 50 in this >> case) of firing each. >> > > This is not true: in the absence of priorities, simulators may use any > method they wish to determine which event fires first. Some use 'the order > the event appears in the document', so would always fire event E1 before > event E2. In order to ensure a 50:50 probability, the 'priority' attribute > must exist, and be the same for both events. > > This means that your example, where both priorities are draws from the > same distribution, is functionally equivalent to giving both priorities the > same value, which is probably simplest. > > If you want one event to preferentially fire, you can give them different > distributions. As an example: > > E1 priority: uniform(0,1) > E2 priority: uniform(0,2) > > will preferentially execute event E2 75% of the time, as a draw from > uniform(0,2) will be greater than a draw from uniform(0,1) 75% of the time. > > -Lucian > |
From: Lucian S. <luc...@gm...> - 2017-05-26 20:19:59
|
One note: On Thu, May 25, 2017 at 1:03 PM, Leandro Watanabe <lea...@gm...> wrote: > If you leave priority out, then it is equal probability (50 50 in this > case) of firing each. > This is not true: in the absence of priorities, simulators may use any method they wish to determine which event fires first. Some use 'the order the event appears in the document', so would always fire event E1 before event E2. In order to ensure a 50:50 probability, the 'priority' attribute must exist, and be the same for both events. This means that your example, where both priorities are draws from the same distribution, is functionally equivalent to giving both priorities the same value, which is probably simplest. If you want one event to preferentially fire, you can give them different distributions. As an example: E1 priority: uniform(0,1) E2 priority: uniform(0,2) will preferentially execute event E2 75% of the time, as a draw from uniform(0,2) will be greater than a draw from uniform(0,1) 75% of the time. -Lucian |
From: Leandro W. <lea...@gm...> - 2017-05-25 20:03:53
|
Thanks Lucian. Good point about True/1. We are indeed assuming L3V1. Jacob: I understand what you are trying to do I think. You are encoding a fork transition. In instructionNumber 1.5, you have a choice of firing one event or the other but not both. Then you have those two events in a join transition. When doing fork transition, it is important to use the persistency flag and priority. When you do a fork transition, you should have two events have the exact same trigger math, set persistency to true, and use priority draw from a distribution. For instance, Event 1 trigger: instructionNumber[d0] == 1.5 persistent = true priority = normal(0,1) delay = 1 event assignments instructionNumber[d0] := 2 # some assignments Event 2 trigger: instructionNumber[d0] == 1.5 persistent = true priority = normal(0,1) delay = 1 event assignments instructionNumber[d0] := 2 # some other assignments Both events are enabled at the same time but you only fire one of the two because of the persistent flag. The persistent flag is important because you want to disable the other event when one is fired. If you leave priority out, then it is equal probability (50 50 in this case) of firing each. In this case, you don't need those placeholders. Thanks, Leandro On Thu, May 25, 2017 at 12:18 PM, Chris Myers <my...@ec...> wrote: > Ok, just trying to reduce spam for people, since we all reply to last > message sent. > > Chris > > > On May 25, 2017, at 1:56 PM, Lucian Smith <luc...@gm...> > wrote: > > I am, but I was replying to something specific that didn't involve arrays > ;-) > > -Lucian > > On Thu, May 25, 2017 at 10:45 AM, Chris Myers <my...@ec...> wrote: > >> Ok, Lucian just restarted thread on sbml-team, so if you reply to him use >> this one. :-) >> >> Lucian: are you on sbml-arrays? >> >> Chris >> >> On May 25, 2017, at 1:40 PM, Lucian Smith <luc...@gm...> >> wrote: >> >> If I can clarify something, I think: >> >> On Thu, May 25, 2017 at 10:09 AM, Leandro Watanabe <lea...@gm...> >> wrote: >> >>> Hi Jacob, >>> >>> Sounds good. If you replace 0 by something like random < 0.2 then it >>> makes sense, but leaving the 0 there effectively deletes that event >>> >> >> What this means is that you should use 'true' as a placeholder (or '1') >> instead of 'false' (or '0'). Events trigger when they transition from >> false to true, so if you are checking to see when '0' will turn to true, >> the answer will always be 'never'. >> >> (Also, you should use 'true' and 'false' instead of '1' and '0'. In SBML >> L3v1, the latter is actually illegal, and will give you an invalid model. >> In SBML L3v2, that restriction was relaxed, but most simulators still use >> l3v1 for their models.) >> >> -Lucian >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sbml-team" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sbm...@go.... >> For more options, visit https://groups.google.com/d/optout. >> > > > |
From: Chris M. <my...@ec...> - 2017-05-25 18:18:48
|
Ok, just trying to reduce spam for people, since we all reply to last message sent. Chris > On May 25, 2017, at 1:56 PM, Lucian Smith <luc...@gm...> wrote: > > I am, but I was replying to something specific that didn't involve arrays ;-) > > -Lucian > > On Thu, May 25, 2017 at 10:45 AM, Chris Myers <my...@ec... <mailto:my...@ec...>> wrote: > Ok, Lucian just restarted thread on sbml-team, so if you reply to him use this one. :-) > > Lucian: are you on sbml-arrays? > > Chris > >> On May 25, 2017, at 1:40 PM, Lucian Smith <luc...@gm... <mailto:luc...@gm...>> wrote: >> >> If I can clarify something, I think: >> >> On Thu, May 25, 2017 at 10:09 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >> Hi Jacob, >> >> Sounds good. If you replace 0 by something like random < 0.2 then it makes sense, but leaving the 0 there effectively deletes that event >> >> What this means is that you should use 'true' as a placeholder (or '1') instead of 'false' (or '0'). Events trigger when they transition from false to true, so if you are checking to see when '0' will turn to true, the answer will always be 'never'. >> >> (Also, you should use 'true' and 'false' instead of '1' and '0'. In SBML L3v1, the latter is actually illegal, and will give you an invalid model. In SBML L3v2, that restriction was relaxed, but most simulators still use l3v1 for their models.) >> >> -Lucian > > > -- > You received this message because you are subscribed to the Google Groups "sbml-team" group. > To unsubscribe from this group and stop receiving emails from it, send an email to sbm...@go... <mailto:sbm...@go...>. > For more options, visit https://groups.google.com/d/optout <https://groups.google.com/d/optout>. > |
From: Lucian S. <luc...@gm...> - 2017-05-25 17:56:32
|
I am, but I was replying to something specific that didn't involve arrays ;-) -Lucian On Thu, May 25, 2017 at 10:45 AM, Chris Myers <my...@ec...> wrote: > Ok, Lucian just restarted thread on sbml-team, so if you reply to him use > this one. :-) > > Lucian: are you on sbml-arrays? > > Chris > > On May 25, 2017, at 1:40 PM, Lucian Smith <luc...@gm...> > wrote: > > If I can clarify something, I think: > > On Thu, May 25, 2017 at 10:09 AM, Leandro Watanabe <lea...@gm...> > wrote: > >> Hi Jacob, >> >> Sounds good. If you replace 0 by something like random < 0.2 then it >> makes sense, but leaving the 0 there effectively deletes that event >> > > What this means is that you should use 'true' as a placeholder (or '1') > instead of 'false' (or '0'). Events trigger when they transition from > false to true, so if you are checking to see when '0' will turn to true, > the answer will always be 'never'. > > (Also, you should use 'true' and 'false' instead of '1' and '0'. In SBML > L3v1, the latter is actually illegal, and will give you an invalid model. > In SBML L3v2, that restriction was relaxed, but most simulators still use > l3v1 for their models.) > > -Lucian > > > -- > You received this message because you are subscribed to the Google Groups > "sbml-team" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sbm...@go.... > For more options, visit https://groups.google.com/d/optout. > |
From: Chris M. <my...@ec...> - 2017-05-25 17:45:31
|
Ok, Lucian just restarted thread on sbml-team, so if you reply to him use this one. :-) Lucian: are you on sbml-arrays? Chris > On May 25, 2017, at 1:40 PM, Lucian Smith <luc...@gm...> wrote: > > If I can clarify something, I think: > > On Thu, May 25, 2017 at 10:09 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: > Hi Jacob, > > Sounds good. If you replace 0 by something like random < 0.2 then it makes sense, but leaving the 0 there effectively deletes that event > > What this means is that you should use 'true' as a placeholder (or '1') instead of 'false' (or '0'). Events trigger when they transition from false to true, so if you are checking to see when '0' will turn to true, the answer will always be 'never'. > > (Also, you should use 'true' and 'false' instead of '1' and '0'. In SBML L3v1, the latter is actually illegal, and will give you an invalid model. In SBML L3v2, that restriction was relaxed, but most simulators still use l3v1 for their models.) > > -Lucian |