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: Chris M. <my...@ec...> - 2017-05-25 17:27:29
|
Hi, I’m switching from SBML-team to SBML-arrays mailing list, since this is more a discussion about using arrays. I think many of those on sbml-team are on sbml-arrays and likely those that might be following this discussion: Sarah/Lucian, maybe. I’m bcc’ing sbml-team, so you are on team but not arrays speak up now about not switching lists, if you want to stay on this thread or better yet subscribe to arrays. If no one complains though, replying to this message should move the conversation to a more appropriate list. Chris > On May 25, 2017, at 1:09 PM, 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 > > In Output2, State0 to State1 Transition_0 event is switching state but the instruction is set to 3. However, none of the events seem to fire on instruction number 3. > Although your code can generate initial assignments using vector quite easily, I would recommend trying to use other types of math because vector won't allow you to be flexible with changing array sizes in SBML. > > This message will be archived for the SBML team but you and I don't have access to that Google group. SBML discuss and SBML arrays mailing list are publicly archived. > > You can continue to attach them for SBML related questions unless they request otherwise. > > iBioSim questions can be addressed to us separately. Flattening is already embedded within iBioSim. > > Leandro > > On Thu, May 25, 2017 at 10:21 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: > Ok Leandro, > > The instruction you saw should never be executed. It is the false trigger part of the instruction with the true trigger that comes before that actually increases age. It seems redundant now, yet it has use in some future cases where 0 is replaced by a probability. > > And let us start another thread. By the way, is the SBML Team email necessary for the new thread? Is it publicly archived somewhere? > > I already install iBioSim, I just need to know how to pass it the SBML I generate. Do I need flattening ? > > I'll try it tomorrow and hopefully have some results for you. > > Jacob > > On May 25, 2017 10:40 AM, "Leandro Watanabe" <lea...@gm... <mailto:lea...@gm...>> wrote: > Hi Jacob, > > I will look over the problems but the problem with events like Age Increase_1 is that it will never fire because you have > > instructionNumber[d0] == 1.5 && 0 > > Booleans in SBML is evaluated like weakly typed languages: 0 is false and everything else is true. I will let you know if I find any problem. When you have a 1 instead of 0, it is not doing anything to the math because x && true == x. > > If you want, you can install iBioSim following the instructions: https://github.com/MyersResearchGroup/iBioSim <https://github.com/MyersResearchGroup/iBioSim> > > If you have questions about iBioSim you can e-mail me separately as well since this thread is getting quite long. > > Leandro > > > > On Thu, May 25, 2017 at 6:35 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: > Hi Leandro, > > You are very helpful and your responses are very timely - I wish most folk will be as responsive as you are. > > The funny triggers you see is because I must always take care of both true and false conditions of an event generated for a rule or for a state transition. For Rules such as Age increase that always executes there is no false condition, yet I create it anyway while making sure it will never trigger and put a zero there. It is possible that such rules in the future may have a probability of being triggered. For example, the rule can be: if a patient takes their medication Blood Pressure drops and they take their medication with a certain probability that sets the trigger - if they do not take their medication, I still have to increase the Instruction number - therefore I need the false trigger event for the same instruction line but not changing the Blood Pressure. > > However, for some reason, it seems that the code does not work - since it worked in the past, I assume this is one of my latest changes of adding an event states or joiner/splitter states that messed the code. > > I went over the code and did find one bug in the event reset instruction - it was 1 instead of 2 - I made the fix, yet it does not explain what you are experiencing on your side - so something else must be wrong. > > Can you please then run example 1 in the code I am providing below - if it works for the 20 people in the simulation, then try example 2 and if 2 works fine, please try example 10. Yet I suspect things ill break at example 1 and since we have previous copies of it, we can go back in time and see on what date it broke to pin point the offending code. > > At this point, things become too complex to just read through the code, so I am seeking explanation by looking at behavior of the code when running it - since I know what to expect at the end, its a good debug strategy. > > If you can guide me through the process of running the code through iBioSim I may be able to do it on my machine to save you time, until then, I will really appreciate another eye - you have been more than helpful so far. > > > Jacob > > > > On Wed, May 24, 2017 at 1:52 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: > Hi Jacob, > > Sorry for the delay. This model is a lot more complex than the others. > > When I simulated the model, nothing seems to be happening. All of them aged to 31 years old and then nothing happens afterward. Instruction gets stuck at instruction number 2. Seems to be the same for Output2. > > Why are you have setting some triggers to instructionNumber[d0] == 1 && 0, instructionNumber[d0] == 1 && 1 ? > Did you mean to have a different check? > > Leandro > > > > On Wed, May 24, 2017 at 2:37 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: > Hi Leandro, Hi Chris, > > Again, the attached file is untested except from passing flattening, yet it seems I was able to implement example 10 which involves splitter and joiner states. Once a splitter state is reached it creates parallel disease processes and moves the individual to those states - like a fork in Linux. One a joiner state was reached it then terminate those processes. In disease modeling this is used many times to indicate what kind of death the person died from, for example a stroke process can compete with a MI process and with an other death process. There is one joiner state that all death lead to, so when an individual dies, all processes collapse. Splitter state are typically used a the beginning of simulation to start multiple processes is a person reaches a certain state such as diabetes that can start other disease processes a person can later die from. > > Implementing this required little changes in the code - it is mostly a change in approach - the event mechanism SBML provides seems to have good support to implement what I am trying to do - once you introduced arrays, it seems to add the extra functionality towards disease modeling at the individual level. > > Yet again I have to finish the entire test suite and see that it does work before I jump to any conclusions. I'll keep on adding examples in hope I can finish this. > > Leandro, if you find a few minutes, can you run example 10 in iBioSim and tell me if it produces similar results to example 2 where state 1,2 in example 10 = state 2 in example 2 - they should be equivalent by design. > > Hopefully this will work. > > Jacob > > On Tue, May 23, 2017 at 7:18 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: > Thanks Leandro, Thanks Lucian, > > Your fix seems to work. > > I think I also figured out how to represent MIST event states in SBML > > All state transitions events need to be persistent. Instructions numbers will guide execution of rules, so there only the instruction n number matters. For state transitions, all occur simultaneously and the trigger will define which will be executed. > > There are 3 parts in each transition there is a delay of 1 and : > X: generate Random + advance instruction to X+0.5 > X+0.5: if in proper state and random< threshold of transition, then Change state + advance instruction to Next Instruction > X+0.5: if in proper state and random>= threshold of transition, then Change state to another state or stay in same state is desired + advance instruction to Next Instructios > > > For event states there is a slight difference, the delay is 0 and > X: generate Random + advance instruction to X+0.5 > X+0.5: if in proper state and random< threshold of transition, then Change state + Reset instruction to X > X+0.5: if in proper state and random>= threshold of transition, then Change state to another state + Reset instruction to X > > Basically this means that event states just return backwards to the start of the instruction line to allow other state transitions to be processed - so you can potentially process multiple event states - and once a non event state is processed, the system will advance to the next instruction. > > I am attaching a new version with the SBML files having only 2 repetitions per individual - which seems to flatten nicely for all examples. > > Leandro, if you have a minute, I will appreciate if it you look at Examples 1 and 8 - they should work similarly - Where State 2= State1_Entered in Example 9, while State 1 is never set since it is reset upon exit. > > There is a chance it will not work - I may have broken something without knowing it - perhaps my solution is not that elegant - this is why it needs testing. > > If it works, can you see if example 9 also works? > > Hopefully it all works now. > > Jacob > > > > On Mon, May 22, 2017 at 12:30 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: > Thanks Lucian. > > Currently in Jacob's code he is using libsbml.parseL3Formula(formula) > for formula = 'plus(1, selector(Time,d0))'. > > In this case, Time is still csymbol. > > It looks like he needs to use libsbml.parseL3FormulaWithModel(formula, Model) instead. > Seems to fix this problem. > > Leandro > > On Mon, May 22, 2017 at 10:14 AM, Lucian Smith <luc...@gm... <mailto:luc...@gm...>> wrote: > The libsbml ASTNode parser can easily distinguish csymbol time from 'cn' time. The *infix* parser cannot do this, because you lose information when you go to text-only. Currently, the infix parser translates all capitalizations of 'time' to the csymbol time, so if you're planning to use infix, you should not have any parameter/variable with the same name as a csymbol or MathML constant (pi, avogadro, true, false, etc.) > > -Lucian > > On Mon, May 22, 2017 at 9:01 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: > SBML ids should be case sensitive but it looks like the ASTNode parser in libsbml is case insensitive. Someone from the libsbml team can clarify on this. > > Your instructions were previously running serially because of the chain of instructionNumber. Every step was moving from 1 to 1.5 to 2... > However, one cycle was not a unit delay. Each event was a unit delay. If your cycle has a chain of n events, then one year = n SBML time units. > If you say time is in year units, then every time an event fires one year has elapsed because of delay=1. > > I guess if you want to track the year when an individual has reached a terminal state, then it makes sense to add a variable. It just might be a little confusing because time != Time so I would pick another name (also due to the bug). > > As for event states, I would say that if you want to indicate event states (active and inactive) then you can annotate an event to indicate it is a terminal state. Not sure a better way but maybe someone knows. > > Leandro > > > On Mon, May 22, 2017 at 8:57 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: > So Leandro, > > You lost me there. > > My python code has "Time" with a capital T defined. - do not use and small caps "time" in the code. > > Is SBML not case sensitive? Or am I missing something there? > > Also, the delay causes thins to happen one time step ahead and in my case we want instructions to happen serially, so time is actually the instruction timer if I understand correctly - in my simulations typically a set of instructions and transitions all happen in one year which is the regular time step which should be several SBML_time steps if I understand correctly. > > I also think that the scheme we came up with may change due to the introduction of event states - hopefully there is a simple elegant solution there. > > Jacob > > > > > > > On Mon, May 22, 2017 at 9:45 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: > Hi Jacob, > > I think the copyright should be fine as it is. > > The global simulation time is implied in the model through csymbol time. You can use the value but you won't be able to set a value to it. Time is monotonically increasing and progresses according to your simulator. > > In your example, you introduced a parameter Time (different from simulation time). However, in the event assignment you are using csymbol time (referring to simulation time). Parameter Time is an array but symbol time is not. Since you are using a selector on the symbol, which is scalar, flattening is failing. > > In your examples, time is moving at the same time for every individual so I don't think you need to introduce a new variable. > > Leandro > > On Mon, May 22, 2017 at 7:30 AM, Chris Myers <my...@ec... <mailto:my...@ec...>> wrote: > Hi Jacob, > > I will just add my comments on persistent. In many cases, the flag setting will not matter. However, let’s consider the following example: > > Event 1 > Trigger a==1 > TriggerInitiallyTrue false > Persistent <true/false> > Delay 1 > Assign a:=0 > Assign b:=1 > > Event 2 > Trigger a==1 > TriggerInitiallyTrue false > Persistent <true/false> > Delay 2 > Assign a:=0 > Assign c:=1 > > Let’s assume a=1 and b=c=0 at time 0. If persistent is true, then at time 1 b=1 and at time 2 c=1. However, if persistent is false, then at time 1 b=1, but Event 2 is disabled by Event 1, so c will not change value after all. > > Basically, this flag, when false, allows events to disable each other. > > Does this make sense? > > Chris > >> On May 22, 2017, at 9:10 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >> >> Hi Leandro, >> >> First about the copyright. You and Chris deserve recognition since you guided this transformation of examples to SBML - and I had to add the copyright since MIST is GPL and the code was too close to MIST examples at this point so it was necessary to add it so it won't be forgotten in the future. >> >> However, if all is well, when I start transforming MIST to generate example like the ones you see, I will reuse some of the helper functions I am creating, I will ask that MIST copyright remains under my name - and the U of M for historical reasons. This may not matter , yet under certain circumstances it may have future implications - although everyone can use the GPL code once I release it I and plan to acknowledge your contribution - let me know if you or Chris have any objections to this or if you want to go into a more elaborate discussion on this copyright issue. >> >> After your explanations, I understood that I need to add a local Time parameter for each individual and keep track of time separately - since the events will be resolved during SBML_Time+1 - so my simulation time is not SBML_Time. >> >> I have not dealt with the persistent flag for events - it is really too much information for me to handle right now - I really cannot see how all these events will trigger with the elaborate structure of instructions order we added - I think that persistent should be set as true fro all my events, yet it is currently set to false and it seemed to work so far, so I am unsure. >> >> However, I do need help in a more critical point - I added some code to allow creating smaller examples by allowing to override number of repetitions. You can now run my examples with a command line parameter to set the number of repetitions. >> >> Below you will find a transcript of what happens when I try to flatten SBML that has only 2 repetitions = 20 records for example 1. I get an error, yet I cannot figure out at what SBML file this is happening - the error message does not point to the parameter name or XML line. >> >> The only parameter I added is Time and it seems to be similar to others, yet I cannot pinpoint the issue. >> >> Since it will probably more visible to you, I will appreciate it if you can look at the XML and help figure it out. >> >> Jacob >> >> ############# Transcript of execution and error ############# >> >> C:\Users\Work\Desktop\SBML>winpdb SBMLExamples.py 2 >> C:\Users\Work\Desktop\SBML>java -jar runner.jar -Xmx4096 OutSBML1.xml >> Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 19, Size: >> 0 >> at java.util.ArrayList.rangeCheck(Unknown Source) >> at java.util.ArrayList.get(Unknown Source) >> at org.sbml.jsbml.ASTNode.getChild(ASTNode.java:2489) >> at org.sbml.jsbml.ext.arrays.compiler.VectorCompiler.selector(VectorComp >> iler.java:4132) >> at org.sbml.jsbml.ASTNode.compile(ASTNode.java:2159) >> at org.sbml.jsbml.ext.arrays.compiler.VectorCompiler.getScalarsAndVector >> s(VectorCompiler.java:2515) >> at org.sbml.jsbml.ext.arrays.compiler.VectorCompiler.plus(VectorCompiler >> .java:3642) >> at org.sbml.jsbml.ASTNode.compile(ASTNode.java:1952) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convertArraysMa >> th(ArraysFlattening.java:204) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convertMath(Arr >> aysFlattening.java:270) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convertMath(Arr >> aysFlattening.java:271) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convertMath(Arr >> aysFlattening.java:271) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convertMath(Arr >> aysFlattening.java:271) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convertMath(Arr >> aysFlattening.java:285) >> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >> lattening.java:90) >> at io.github.leandrohw.Runner.main(Runner.java:68) >> >> >> >> >> >> >> >> On Sun, May 21, 2017 at 2:16 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >> Hi Jacob, >> >> Sounds good. This is interesting work thanks for including us. >> >> I do not see any problem with Output7. The problem is the model is too large so maybe the flattening algorithm needs some redesigning to scale out. I would say do not worry about flattening for such large models. If it flattens for small sizes, then you can assume it works for 2000 or so. This is one of the advantages of arrays. You can express large models more concisely. Especially because SBML is XML-based, the flattened models can get quite large. >> >> About some of your questions: >> - You cannot remove the event from the model. The simulator will continually check for the trigger. However, you can setup the trigger such that the event will never fire. You might be able to design a simulator to make assumptions about specifics properties of your models though. >> >> - You are correct about setting delay to 0 make the event instantaneous. >> >> - Event delays are the used to indicate when an event fire. If an event is triggered at time n, and has a delay of d, then the event only happens at time n+d. >> >> - Events can be in two states: triggered and not triggered. An event is triggered if the trigger was previously false and then evaluated to true. >> >> - The persistent flag is used to indicate whether you want to rechecked the trigger value again. In your model, you have a delay of 1 in many events. If you want to ensure that the event's trigger stays true for n and n+1, then you use the persistent flag (true if you fire regardless and false if you want to recheck). >> >> Thanks, >> Leandro >> >> On Sun, May 21, 2017 at 3:04 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >> Hi Leandro, Hi Chris, >> >> Attached you will find a new version of the SBML MIST examples. I added the event example #8 and I also added a copyright statement for this code to remain GPL - after all I am copying from the MIST GPL code examples, so I must keep this GPL. I added your names since you contributed to this - yet I can remove them in the next version if you do not want any responsibility for this code. >> >> I made some changes to accommodate event states. Yet this also makes flattening impossible - I can check example 8, yet I cannot flatten it anymore. >> >> Leandro, it will really help if you can run the XML through your system - Example 8 is relatively trivial - the same as example 1 only with an event state in the middle that just triggers and passes to the next state immediately. >> >> If this seems reasonable to you, I will continue and complicate examples. >> >> Hopefully the changes I made will work ok. >> >> Jacob >> >> >> >> >> >> On Fri, May 19, 2017 at 9:37 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >> Hi Jacob, >> >> Sounds good. Looks like you got pretty good with SBML. Your models look fine. I haven't been able to see if they behave as you described but since you can test in MIST then it is all good. >> >> This is looking quite promising. >> >> Thanks, >> Leandro >> >> On Fri, May 19, 2017 at 4:35 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >> Hi Leandro, >> >> You will find attached even a new version of the test code. I am recreating MIST examples serially and it seems that the current structure allows moving fast - it takes only a few minutes to create a new example. Examples 4,5,6 add some little complexity of functions and covariates and size - simulations are now a bit larger. >> >> No need to spend any time of those. I will just continue moving along - you see MIST has test code to test the simulation results of these examples - this is not something a human should do - yet I am sending those to you so that you will have a copy once I run into trouble and I expect this will happen pretty soon. >> >> Yet I am making progress fast, so its a good sign. >> >> Jacob >> >> >> On Thu, May 18, 2017 at 8:47 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >> Many thanks Leandro, >> >> You were very helpful - I was overwhelmed with the number of changes and missed some texts you and Chris wrote- I think I am all caught up now. >> >> Your new runner is working nicely and the system actually does flatten the XML files, yet I am sending only the code with the original XMLs because the flattened files are just too large. >> >> If this looks ok to you, I will proceed to the next example. >> >> I foresee that some examples will take much more time. Yet if I manage to finish them all, I will be able to write a converter from MIST eventually. >> >> Hopefully I am not taking too much of your time with these questions. >> >> Jacob >> >> >> On Wed, May 17, 2017 at 10:18 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >> That's right. You can run the validator with a -c flag for checking validation rules. >> java -jar runner.jar -c OutSBML2.xml >> >> NOTE: Do not worry about the errors about selectors. It is a bug. >> >> Jacob: Output2 and Output3 still have references to Dead in the terminate event so flattening fails. Output1 can be flattened. >> >> BTW, try running with -Xmx2048m (or 512m, 1024m etc). You are running out of heap space. >> >> The running time of the flattening is not so bad, but maybe we need to take a look on how to improve memory space in the future. Maybe there are dangling references to unused objects. >> >> Leandro >> >> >> >> On Wed, May 17, 2017 at 7:03 AM, Chris Myers <my...@ec... <mailto:my...@ec...>> wrote: >> The arrays validator like the arrays flattening is only available in Java. I think Leandro in his last message said he add this to the arrays flatten code he gave you. >> >> Chris >> >>> On May 17, 2017, at 7:29 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>> >>> Thanks Leandro, Thanks Chris, >>> >>> First Chris, your code is in java and I cannot find the validator function in python. The closest I can see at the top level is: SBMLExternalValidator I do not see the function ArraysValidator - under what object should I be able to find it? >>> >>> Leandro, thanks for noticing the death - it was a bug - I actually needed to dive deeper into the code and define a terminating event that starts the stimulation for Example3. The new event just checks at the beginning of each time loop if a terminal state is set, if it is, then the system skips assigning the next instruction line. This is how an individual simulation is terminated ahead of time in case of death. >>> >>> This also meant I needed to change the structure of all transition events and rule events - now rule events also have true and false elements with Instruction number advancing in both true and false parts. >>> >>> Attached is a new version of the file and you will also find Example 3 there with 2 terminal states to test this is working. >>> >>> However, your java code does not help flattening - below is the error I get with your new runner version. >>> >>> Since I made many changes, you can assume this version has some bugs in it. I will look at this more closely tomorrow - yet if you have a few minutes and can lend me another eye on this code, it would help me advance faster. >>> >>> Jacob >>> >>> ########### The Error I am getting when flattening ########### >>> >>> Exception in thread "main" java.lang.OutOfMemoryError: Java heap space >>> at java.util.Arrays.copyOf(Unknown Source) >>> at java.util.ArrayList.grow(Unknown Source) >>> at java.util.ArrayList.ensureExplicitCapacity(Unknown Source) >>> at java.util.ArrayList.ensureCapacityInternal(Unknown Source) >>> at java.util.ArrayList.addAll(Unknown Source) >>> at org.sbml.jsbml.AbstractTreeNode.addAllChangeListeners(AbstractTreeNod >>> e.java:200) >>> at org.sbml.jsbml.AbstractTreeNode.addAllChangeListeners(AbstractTreeNod >>> e.java:207) >>> at org.sbml.jsbml.AbstractTreeNode.addAllChangeListeners(AbstractTreeNod >>> e.java:207) >>> at org.sbml.jsbml.AbstractTreeNode.addAllChangeListeners(AbstractTreeNod >>> e.java:190) >>> at org.sbml.jsbml.AbstractTreeNode.setParent(AbstractTreeNode.java:796) >>> at org.sbml.jsbml.ASTNode.setParentSBMLObject(ASTNode.java:1342) >>> at org.sbml.jsbml.AbstractMathContainer.setMath(AbstractMathContainer.ja >>> va:322) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.updateMath(Arra >>> ysFlattening.java:580) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.expandDim(Array >>> sFlattening.java:376) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.expandDim(Array >>> sFlattening.java:416) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>> lattening.java:168) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>> lattening.java:170) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>> lattening.java:187) >>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>> lattening.java:89) >>> at io.github.leandrohw.Runner.main(Runner.java:68) >>> >>> >>> >>> >>> On Tue, May 16, 2017 at 1:00 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >>> The only problem I found was that event1 had a reference to Dead in its trigger but you don't have a variable with that name. >>> >>> I updated the jar on the Dropbox link I sent you earlier. If you want to run validation, you can do: >>> >>> java -jar runner.jar -c Output1.xml >>> >>> the -c flag is for checking validation rules. If you don't specify it, then it will just do flattening. >>> >>> Note: there are some bugs in the validator that I have to fix. I am planning to work on them during Harmony so you need to ignore some of them. >>> >>> If you run into this: Selector arguments other than first should not go out of bounds >>> then don't worry about it. This is because the event assignment is using the dimensions from the parent event and the validator is not picking it up. >>> >>> Leandro >>> >>> >>> >>> On Tue, May 16, 2017 at 10:34 AM, Chris Myers <my...@ec... <mailto:my...@ec...>> wrote: >>> Hi Jacob, >>> >>> It is usually best to validate before you flatten. When there are errors, flatten can crash as shown. I think something like this: >>> >>> List<SBMLError> arraysErrors = ArraysValidator.validate(doc); >>> for (int i = 0; i < arraysErrors.size(); i++) >>> { >>> String error = arraysErrors.get(i).getMessage(); >>> message += numErrors + ":" + error + "\n"; >>> numErrors++; >>> } >>> >>> Chris >>> >>>> On May 16, 2017, at 12:24 PM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>>> >>>> Hi Leandro, >>>> >>>> Attaches is the python code for the first attempt to model two examples using SBML array. >>>> >>>> If you look at the code you will find out that I was able to identify and consolidate repetitive code into functions. You will also find example 2 from: >>>> >>>> https://github.com/Jacob-Barhak/MIST/blob/master/SimulationExamples.pdf <https://github.com/Jacob-Barhak/MIST/blob/master/SimulationExamples.pdf> >>>> >>>> I also increase the number of individuals of Example 1 to match the example in the document. >>>> >>>> I am attaching the code and output, yet I can no longer flatten the code - Below is the error message I get: >>>> >>>> I know it is not realistic to flatten large arrays, so I am not worried. However, I lost the mechanism that allowed me to check for errors. >>>> >>>> Is there any other idea on how to debug other than decreasing array size? >>>> >>>> Hopefully the code looks ok to you. >>>> >>>> Jacob >>>> >>>> >>>> ###### The Error I get ####### >>>> >>>> Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceede >>>> d >>>> at org.sbml.jsbml.ASTNode.initDefaults(ASTNode.java:3023) >>>> at org.sbml.jsbml.ASTNode.<init>(ASTNode.java:1581) >>>> at org.sbml.jsbml.ASTNode.clone(ASTNode.java:1908) >>>> at org.sbml.jsbml.ASTNode.<init>(ASTNode.java:1603) >>>> at org.sbml.jsbml.ASTNode.clone(ASTNode.java:1908) >>>> at org.sbml.jsbml.ASTNode.<init>(ASTNode.java:1603) >>>> at org.sbml.jsbml.ASTNode.clone(ASTNode.java:1908) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.replaceDimensio >>>> nId(ArraysFlattening.java:563) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.updateMath(Arra >>>> ysFlattening.java:580) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.expandDim(Array >>>> sFlattening.java:376) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.expandDim(Array >>>> sFlattening.java:416) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>>> lattening.java:168) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>>> lattening.java:170) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>>> lattening.java:187) >>>> at org.sbml.jsbml.ext.arrays.flattening.ArraysFlattening.convert(ArraysF >>>> lattening.java:89) >>>> at io.github.leandrohw.Runner.main(Runner.java:29) >>>> >>>> >>>> >>>> >>>> On Sun, May 14, 2017 at 1:26 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >>>> Hi Jacob, >>>> >>>> This looks great. The model can be simulated without a problem. Your code is in good state to move on to other examples. >>>> >>>> Leandro >>>> >>>> On Sun, May 14, 2017 at 4:50 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>>> Thanks Leandro, >>>> >>>> You are very observant. I overlooked the difference between state transition events and rule events that change parameter values that do not have an else clause. >>>> >>>> I made the changes in the python file. Attached is the file and its products. >>>> >>>> If you think it is ready, I can move on to a more complicated disease modeling example. >>>> >>>> Hopefully it seems ready to you. >>>> >>>> Jacob >>>> >>>> >>>> >>>> >>>> >>>> On Thu, May 11, 2017 at 12:44 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >>>> I'm looking at the models using a GUI so it makes it easier to spot these things. >>>> >>>> It looks like your event1 is not switching states. You need InstructionNumber[d0] = 2 >>>> >>>> Other than that, it looks pretty good. >>>> >>>> Here is some simulation result. >>>> <Screen Shot 2017-05-11 at 11.32.03 AM.png> >>>> >>>> Sorry about the axis labels. Time is SBML simulation time but the cycle number is not really the same as simulation time because of the delay 1. Each year is about 4 time steps. >>>> >>>> <Screen Shot 2017-05-11 at 11.12.57 AM.png> >>>> >>>> This is not quite the results you get because of the iterations and repetitions in your simulation rules. In general, simulation rules are specified in a SED-ML file. However, you can have a counter in your model that will only repeat the loop three times and check the counter in the events trigger or use SBML constraints, >>>> >>>> Thanks, >>>> Leandro >>>> >>>> On Thu, May 11, 2017 at 8:13 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>>> Thanks Leandro, >>>> >>>> You are faster than me with testing this code. Your are also very observant - this is truly helpful and brings another issue - terminal states. If you look at the Example 1 diagram in https://github.com/Jacob-Barhak/MIST/blob/master/SimulationExamples.pdf <https://github.com/Jacob-Barhak/MIST/blob/master/SimulationExamples.pdf> you will see that the dead state has a red box around it - this indicates a terminal state, meaning that once this state is reached, there is no next time step - the individual record does not exist in the next time step. >>>> >>>> Also in the future, I may need event states where there are split assignments of what may happen. So I chose the option of true event and false event. >>>> >>>> I am attaching the new version with output and flattened XML. >>>> >>>> Hopefully it will behave better - however, it did not pass rigorous testing, so another eye on this will be truly helpful. >>>> >>>> Jacob >>>> >>>> On Wed, May 10, 2017 at 10:29 AM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >>>> Hi Jacob, >>>> >>>> Looks good. This is great progress. Make sure that InstructionNumber constant=false though. >>>> >>>> Now that the syntax looks good, we can talk about semantics. >>>> >>>> Good news: I was able to simulate your model. However, I encounter one problem. >>>> >>>> One thing I am not sure about is event3. If the probability < 0.0717, you say the person dies. Otherwise, you continue onto the next year. The problem with your model now is that if event3 is false, then the model halts because you are not setting instruction number back to 1 for probability >= 0.0717. In this case, all events become disabled. >>>> >>>> I recommend changing event3 to either: >>>> >>>> Solution 1: >>>> >>>> event3: >>>> - Trigger: InstructionNumber[d0] == 2.5 >>>> - Delay: 1 >>>> - Priority: 1 >>>> - Event Assignments: >>>> * Alive[d0] = piecewise(0, Alive[d0] == 1 && Random[d0] < 0.0717, 1) >>>> * Dead[d0] = piecewise(1, Alive[d0] == 1 && Random[d0] < 0.0717, 0) >>>> * InstructionNumber[d0] = 1 >>>> >>>> Piecewise is like if statements: 0 if Alive[d0] == 1 && Random[d0] < 0.0717 else 1. >>>> In L3V2, you would be able to use booleans in arithmetic operations instead of piecewise. However, it would be nice to get L3V1 done first. >>>> >>>> This way you can cycle back and do all the instructions again. This way you wouldn't need the Random variable anymore. You can just call uniform within the event assignment. >>>> >>>> Solution 2: >>>> Another way would be to create another event4 that would trigger when: >>>> - InstructionNumber[d0] == 2.5 && Alive[d0] == 1 && Random[d0] >= 0.0717 >>>> where the event assignment would only reset instruction number back to 1. >>>> >>>> Thanks, >>>> Leandro >>>> >>>> On Tue, May 9, 2017 at 7:18 AM, Chris Myers <my...@ec... <mailto:my...@ec...>> wrote: >>>> Hi Jacob, >>>> >>>> Sounds like great progress. I would suggest not worrying too much about getting the UncertML portions of distrib, but to instead focus on simply the annotation scheme. Other discussions may be taking distrib in a different direction, and in any case, the annotations are more widely supported at this time. >>>> >>>> I do hope you can make it to Seattle for Harmony in June. It would be a great opportunity for you to meet those working in this area and hack through any lingering issues. >>>> >>>> Cheers, >>>> >>>> Chris >>>> >>>>> On May 9, 2017, at 7:49 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>>>> >>>>> Thanks Leandro, >>>>> >>>>> Your guidance here is very much appreciated. >>>>> >>>>> I rearranged the code a bit and it passed flattening - see attached. >>>>> >>>>> Now it should be accessible by other systems if they support the features used . >>>>> >>>>> I am going to try and run the attached code on some other systems to see if this example works fine. >>>>> >>>>> If it does, I can go on and try more elaborate examples to see how far I can get with modeling disease models in SBML. I am organizing this example code in a way that I will be able in the future to export disease models from MIST to iBioSim. >>>>> >>>>> Hopefully things will be easier from this point on. >>>>> >>>>> Jacob >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Mon, May 8, 2017 at 11:16 PM, Leandro Watanabe <lea...@gm... <mailto:lea...@gm...>> wrote: >>>>> Hi Jacob, >>>>> >>>>> Since nobody responded, I looked through the documentation and figured out how to do the distribution for your model. >>>>> I don't know if it is the version I have or what, but the name of the python function to create uncert nodes was not consistent with the given examples. >>>>> Maybe this is what caused you trouble. >>>>> >>>>> This is consistent to what Chris sent earlier. It has the commonly used annotation and the distrib for your function definition. >>>>> >>>>> Hope this helps. >>>>> >>>>> Leandro >>>>> >>>>> On Mon, May 8, 2017 at 1:59 AM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>>>> Sorry Brett, >>>>> >>>>> The same message is returned after running the command you mentioned that cleared some disk space on my machine. For some reason, my system thinks the new file is corrupt. >>>>> >>>>> The downloaded file size shown on my machine is: >>>>> Size: 5.51 MB (5,781,328 bytes) >>>>> Size on disk: 5.51 MB (5,783,552 bytes) >>>>> >>>>> If there is a checksum I can test, I'll be happy to make sure it was downloaded correctly. >>>>> >>>>> I noticed that the path the system reports uses unix style separators rather than windows: 'Lib/site-packages/libsbml/__init__.pyc' is this the reason that the path is not found? >>>>> >>>>> The other option I was thinking is reinstalling anaconda, yet I rather first try to make sure that the downloaded file is ok. >>>>> >>>>> However, this issue does not block my progress, I am more in need of help to define distributions in SBML in python. Yet it would be nice to fix this issue on the way. >>>>> >>>>> Jacob >>>>> >>>>> >>>>> >>>>> >>>>> On Tue, Apr 25, 2017 at 4:03 AM, Brett G. Olivier <bre...@gm... <mailto:bre...@gm...>> wrote: >>>>> Dear Jacob >>>>> >>>>> Just to follow up on this, indeed this was a bug in the Arrays implementation, thanks for reporting it. Fortunately this issue has been fixed and an update version is available for testing. >>>>> >>>>> I see that you are using Anaconda Python, here are the instructions for downloading and installing they updated libSBML Anaconda package. >>>>> >>>>> Installing the Anaconda nightly build >>>>> ---------------------------------------------------- >>>>> >>>>> In order to install the nightly build of the Python Anaconda packages >>>>> >>>>> Visit http://raterule.caltech.edu/ <http://raterule.caltech.edu/> and browse to Section 6 at the bottom of the page:: >>>>> >>>>> - select 32/64 bit directory >>>>> - select the latest experimental package, for Python 2.7 this is python-libsbml-experimental-5.15.1-py27_0.tar.bz2 >>>>> - save it to a local directory >>>>> >>>>> Install the package locally with (in the same directory as the downloaded file):: >>>>> >>>>> conda install python-libsbml-experimental-5.15.1-py27_0.tar.bz2 >>>>> >>>>> If it installs skip this if you receive an error, something like:: >>>>> >>>>> CondaError: Cannot link a source that does not exist. C:\Anaconda\pkgs\python-libsbml-experimental-5.15.1-py27_0\Lib\site-packages\libsbml\__init__.pyc >>>>> >>>>> Don't worry, this is an Anaconda issue that, fortunately, has a simple workaround. Change to the directory mentioned in the error:: >>>>> >>>>> c:\Anaconda\pkgs\python-libsbml-experimental-5.15.1-py27_0\Lib\site-packages\libsbml\ >>>>> >>>>> copy __init__.py to __init__.pyc and rerun the installer:: >>>>> >>>>> conda install python-libsbml-experimental-5.15.1-py27_0.tar.bz2 >>>>> >>>>> and you should be good to go. An alternative to the above installation method is to simply overwrite your installed libSBML with the one in the downloaded archive. >>>>> >>>>> Either way, if your installation is successful you get the following:: >>>>> >>>>> In [1]: import libsbml as sb >>>>> In [2]: print(sb.LIBSBML_VERSION_STRING) >>>>> 51501 >>>>> In [3]: D = sb.readSBMLFromFile('arrays1.xml') >>>>> In [4]: M = D.getModel() >>>>> In [5]: M.getSpecies(0).getPlugin('arrays').getListOfDimensions()[0].getSize() >>>>> Out[5]: 'n' >>>>> >>>>> This is the output I received after I used the first method installing into a custom Anaconda environment. >>>>> >>>>> HTH >>>>> Brett (on behalf of the libSBML team) >>>>> >>>>> >>>>> >>>>> On Wed, Apr 19, 2017 at 1:36 PM, Jacob Barhak <jac...@gm... <mailto:jac...@gm...>> wrote: >>>>> >>>>> Here is what I tried in python: >>>>> >>>>> from libsbml import * >>>>> reader = SBMLReader() >>>>> reader.readSBMLFromFile('OutSBML_2017_04_17.xml') >>>>> >>>>> The system just hung and the python process stopped rather than produce an exception - this should be fixed. I am using Python 2.7.11 |Anaconda 2.4.1 (64-bit) with libsbml version '5.15.0' on windows 7. >>>>> >>>>> At this point I need to know if the problem is something I need to fix or something on the SBML team side. >>>>> >>>>> Hopefully its a silly issue with a quick fix. >>>>> >>>>> Jacob >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> <Flattened_2017_05_09.xml><OutSBML_2017_05_09.xml><SBMLExample1_2017_05_09.py> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> <SBMLExamples_2017_05_16.zip> >>> >>> >>> >>> <SBMLExamples_2017_05_17.zip> >> >> >> >> >> >> >> >> >> <SBMLExamples_2017_05_22.zip> > > > > > > -- > 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: Chris M. <my...@ec...> - 2017-05-25 17:04:05
|
Hi Sarah, You have the most challenging aspect of arrays. You might recall that I attempted, unsuccessfully, to re-scope species reference ids to be local to a reaction. This would have eliminated the need for these implicit dimensions. Here is an even simpler version of Leandro’s example: n = 2 Reaction R[n] - SpeciesReference s <—— Note s is the speciesReference id, not the species itself * not valid * R_0 R_1 s s The above is not valid since “s” is global in scope. Therefore, to avoid this problem, we have to consider the reaction dimension when flattening, so you get: R_0 R_1 s_0 s_1 As you point out, things get even more complicated, if the speciesReference also has a dimension: n = 2 Reaction R[n] - SpeciesReference s[n] <—— Again note s is the speciesReference id, not the species itself * not valid * R_0 R_1 s_0 s_0 s_1 s_1 Again, not valid, so we need to inherit the dimension of the reaction when flattening: R_0 R_1 s_0_0 s_1_0 s_0_1 s_1_1 Does this make sense? Note this is the only object in the Reaction that this “inheritance” of dimension is required. The other example as you point out is for Events. In this case, though, it is not so much inheritance as the ability to index off of the dimension id of either the Event or the EventAssignment. n = 2 Event E[n] assume dim id is d0 - EventAssignment EA[n] assume dim id is d1 <— Note assuming event assignment has id as allowed by L3V2, but actually not important for this example X[d0][d1]:=2 This expands to: Event E_0 - EventAssignment EA_0_0 X_0_0 := 2 - EventAssignment EA_0_1 X_0_1 := 2 Event E_1 - EventAssignment EA_1_0 X_0_1 := 2 - EventAssignment EA_1_0 BTW: as you can see the introduction if ids in L3V2 introduces the same conflict we have with speciesReferences, since I’m assuming these ids are globally scoped. In most cases, we won’t have an id here, but you do need to consider ANY ids on objects in Reactions/Events need to be handled in a similar way to the above assuming we stick with global scope for these ids (which I wish we wouldn’t). Cheers, Chris > On May 25, 2017, at 11:23 AM, Leandro Watanabe <lea...@gm...> wrote: > > Hi Sarah, > > Child objects such as Kinetic Law, Trigger, etc are not allowed to have dimensions (Section 3.3 and rule arrays-20107) . However, you can use the dimension Ids of the parent in the child's math. > > Species Reference and event assignment inherit dimensions from the parent, which adds this problem of implicit dimensions for such cases. We need this because, for example, indexing an element in an array of species reference within an array of reactions would create ambiguity without the implicit dimensions: > > n = 2 > Reaction R[n] > - SpeciesReference s[n] > > * not valid * > R_0 R_0 > s_0 s_0 > s_1 s_1 > > We assume implicit dimensions to facilitate differentiating between the species references: > > R_0 R_1 > s_0_0 s_1_0 > s_0_1 s_1_1 > > I guess we missed this in the spec. > > Leandro > > > On Thu, May 25, 2017 at 9:01 AM, Sarah Keating <ske...@ca... <mailto:ske...@ca...>> wrote: > Hi Guys > > The spec does not state it explicitly (or I have missed it - sorry if > this is the case) but am I correct in assuming that child objects > inherit the dimensionality of the parent. > > So > > a 1 x 10 reaction will have an instance of each of its children within > it when expanded; without the need to say that each > speciesRef/kineticLaw is also a 1 x 10 array. > > Similarly Event and Trigger/etc ... > > The examples used would suggest this is true. > > But both speciesReference and EventAssignment objects are permitted to > have listOfDimensions. So what would that mean ?? Would they have to > have the same dimensions as the parent or is it allowing for these to > have dimensions when the parents do not! > > 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> > > ------------------------------------------------------------------------------ > 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: Leandro W. <lea...@gm...> - 2017-05-25 15:25:59
|
Good catch. I forgot to make the compartment arrayed so I changed it after adding all species and the reaction. This one should fix the problem. I hope there is no other problem. Leandro On Thu, May 25, 2017 at 7:25 AM, Sarah Keating <ske...@ca...> wrote: > Thanks Leandro > > There is now a different issue - your new example leaves out the indices > on the species so when flattened with JSBML all the expanded species end up > in compartment 'Cell' which is not in the flattened model :-) > > Sarah > > > On 24/05/2017 18:52, Leandro Watanabe wrote: > >> Good catch. It should have been compartment indeed. I also thought we >> generated the models in iBioSim after the spec was in a somewhat stable >> state, but maybe some of them were not. >> >> Here is the correct model. I will update the spec to reflect this error. >> >> Thanks, >> Leandro >> >> On Wed, May 24, 2017 at 10:00 AM, Chris Myers <my...@ec... >> <mailto:my...@ec...>> wrote: >> >> Actually, I think it should be compartment. Each reaction should be >> assigned to a compartment in the compartment array. >> >> Hmm, I thought we had created all these examples in iBioSim, but >> maybe these are still the hand edited ones. >> >> Leandro: can you double check? If we haven’t done this, can you go >> through and build each of the examples in iBioSim and provide them >> to Sarah? >> >> Thanks, >> >> Chris >> >> > On May 24, 2017, at 11:40 AM, Sarah Keating <ske...@ca... >> <mailto:ske...@ca...>> wrote: >> > >> > Hi Guys >> > >> > I was looking at the spec examples and flattening them (or >> attempting to). >> > >> > Section 4.3 the array of reactions failed to flatten with JSBML. >> > >> > Am I correct in thinking that the 'referencedAttribute' on the >> index of >> > the reaction should be 'id' and not 'species' ? >> > >> > Note: it also has a repeat id on two of the species but I spotted >> that >> > more quickly ! >> > >> > Thanks >> > >> > 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... >> <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... >> <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: Leandro W. <lea...@gm...> - 2017-05-25 15:23:51
|
Hi Sarah, Child objects such as Kinetic Law, Trigger, etc are not allowed to have dimensions (Section 3.3 and rule arrays-20107) . However, you can use the dimension Ids of the parent in the child's math. Species Reference and event assignment inherit dimensions from the parent, which adds this problem of implicit dimensions for such cases. We need this because, for example, indexing an element in an array of species reference within an array of reactions would create ambiguity without the implicit dimensions: n = 2 Reaction R[n] - SpeciesReference s[n] * not valid * R_0 R_0 s_0 s_0 s_1 s_1 We assume implicit dimensions to facilitate differentiating between the species references: R_0 R_1 s_0_0 s_1_0 s_0_1 s_1_1 I guess we missed this in the spec. Leandro On Thu, May 25, 2017 at 9:01 AM, Sarah Keating <ske...@ca...> wrote: > Hi Guys > > The spec does not state it explicitly (or I have missed it - sorry if > this is the case) but am I correct in assuming that child objects > inherit the dimensionality of the parent. > > So > > a 1 x 10 reaction will have an instance of each of its children within > it when expanded; without the need to say that each > speciesRef/kineticLaw is also a 1 x 10 array. > > Similarly Event and Trigger/etc ... > > The examples used would suggest this is true. > > But both speciesReference and EventAssignment objects are permitted to > have listOfDimensions. So what would that mean ?? Would they have to > have the same dimensions as the parent or is it allowing for these to > have dimensions when the parents do not! > > 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-25 15:02:06
|
Hi Guys The spec does not state it explicitly (or I have missed it - sorry if this is the case) but am I correct in assuming that child objects inherit the dimensionality of the parent. So a 1 x 10 reaction will have an instance of each of its children within it when expanded; without the need to say that each speciesRef/kineticLaw is also a 1 x 10 array. Similarly Event and Trigger/etc ... The examples used would suggest this is true. But both speciesReference and EventAssignment objects are permitted to have listOfDimensions. So what would that mean ?? Would they have to have the same dimensions as the parent or is it allowing for these to have dimensions when the parents do not! Sarah |
From: Sarah K. <ske...@ca...> - 2017-05-25 13:25:45
|
Thanks Leandro There is now a different issue - your new example leaves out the indices on the species so when flattened with JSBML all the expanded species end up in compartment 'Cell' which is not in the flattened model :-) Sarah On 24/05/2017 18:52, Leandro Watanabe wrote: > Good catch. It should have been compartment indeed. I also thought we > generated the models in iBioSim after the spec was in a somewhat stable > state, but maybe some of them were not. > > Here is the correct model. I will update the spec to reflect this error. > > Thanks, > Leandro > > On Wed, May 24, 2017 at 10:00 AM, Chris Myers <my...@ec... > <mailto:my...@ec...>> wrote: > > Actually, I think it should be compartment. Each reaction should be > assigned to a compartment in the compartment array. > > Hmm, I thought we had created all these examples in iBioSim, but > maybe these are still the hand edited ones. > > Leandro: can you double check? If we haven’t done this, can you go > through and build each of the examples in iBioSim and provide them > to Sarah? > > Thanks, > > Chris > > > On May 24, 2017, at 11:40 AM, Sarah Keating <ske...@ca... > <mailto:ske...@ca...>> wrote: > > > > Hi Guys > > > > I was looking at the spec examples and flattening them (or > attempting to). > > > > Section 4.3 the array of reactions failed to flatten with JSBML. > > > > Am I correct in thinking that the 'referencedAttribute' on the > index of > > the reaction should be 'id' and not 'species' ? > > > > Note: it also has a repeat id on two of the species but I spotted > that > > more quickly ! > > > > Thanks > > > > 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... > <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... > <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: Leandro W. <lea...@gm...> - 2017-05-24 17:52:41
|
Good catch. It should have been compartment indeed. I also thought we generated the models in iBioSim after the spec was in a somewhat stable state, but maybe some of them were not. Here is the correct model. I will update the spec to reflect this error. Thanks, Leandro On Wed, May 24, 2017 at 10:00 AM, Chris Myers <my...@ec...> wrote: > Actually, I think it should be compartment. Each reaction should be > assigned to a compartment in the compartment array. > > Hmm, I thought we had created all these examples in iBioSim, but maybe > these are still the hand edited ones. > > Leandro: can you double check? If we haven’t done this, can you go > through and build each of the examples in iBioSim and provide them to Sarah? > > Thanks, > > Chris > > > On May 24, 2017, at 11:40 AM, Sarah Keating <ske...@ca...> > wrote: > > > > Hi Guys > > > > I was looking at the spec examples and flattening them (or attempting > to). > > > > Section 4.3 the array of reactions failed to flatten with JSBML. > > > > Am I correct in thinking that the 'referencedAttribute' on the index of > > the reaction should be 'id' and not 'species' ? > > > > Note: it also has a repeat id on two of the species but I spotted that > > more quickly ! > > > > Thanks > > > > 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 > > > ------------------------------------------------------------ > ------------------ > 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-05-24 16:00:31
|
Actually, I think it should be compartment. Each reaction should be assigned to a compartment in the compartment array. Hmm, I thought we had created all these examples in iBioSim, but maybe these are still the hand edited ones. Leandro: can you double check? If we haven’t done this, can you go through and build each of the examples in iBioSim and provide them to Sarah? Thanks, Chris > On May 24, 2017, at 11:40 AM, Sarah Keating <ske...@ca...> wrote: > > Hi Guys > > I was looking at the spec examples and flattening them (or attempting to). > > Section 4.3 the array of reactions failed to flatten with JSBML. > > Am I correct in thinking that the 'referencedAttribute' on the index of > the reaction should be 'id' and not 'species' ? > > Note: it also has a repeat id on two of the species but I spotted that > more quickly ! > > Thanks > > 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-24 15:40:43
|
Hi Guys I was looking at the spec examples and flattening them (or attempting to). Section 4.3 the array of reactions failed to flatten with JSBML. Am I correct in thinking that the 'referencedAttribute' on the index of the reaction should be 'id' and not 'species' ? Note: it also has a repeat id on two of the species but I spotted that more quickly ! Thanks Sarah |
From: Fengkai Z. <zha...@ni...> - 2017-05-18 16:02:03
|
Great! Thanks for the info! I can see overlapping between the cases able to be modeled with the multi and array approaches. Array looks like more general while multi is specific to the rule-based models by defining the rule-based modelling features, such as "bindingStatus", "patterns", "states (features)", "components (instances)" etc, into its spec, and enforcing them in the validation rules. Fengkai On 05/18/2017 08:33 AM, Chris Myers wrote: > Cool, and with sparse arrays, you could skip representing the 0s in theory, if there are a lot of them. > > Chris > >> On May 17, 2017, at 11:11 PM, Nicolas Le Novere <n.l...@gm...> wrote: >> >> Hello, >> >> Arrays are what we did in StochSim when we were doing rule-based models. >> >> 1) The state of each multi-state molecule was stored in an array of flags, that could take the values 0, 1 or ? >> >> 2) A multi-component molecule could be stored as an array of multi-state molecules >> >> 3) A population of molecules could be stored as an array of multi-component multi-state molecules. >> >> We could then implement complex intra-molecular reactions, e.g. between subunits of repetitive assemblies. We could also implement diffusion, as propagation of flag states through arrays. >> >> Basically big cell automata. >> >> On 17/05/17 23:28, Fengkai Zhang wrote: >>> Multi takes phorsphorylation status of multiple domains as use cases. I >>> would think that array could use them to build cases for >>> multidimensional arrays. >>> >>> Multi applies the "don't care" concept to simplify rules. Also, the >>> "occur" attributes allow to model changes of the phorsphorylation status >>> of multiple copies of domains without referring individual domains. For >>> example, a protein has 2 sites phorsphorylated from 5 phorsphorylation >>> sites and two more sites (any two from the remaining 3 unphorsphorylated >>> sites) are phorsphorylated in a reason. Not sure if array can do that or >>> if it is reasonable to use array for those cases. >>> >>> Fengkai >>> >>> >>> On 05/15/2017 04:47 PM, Leandro Watanabe wrote: >>>> I like Bruce's idea. We talked about the possibility of representing >>>> some rule-based models using arrays. Maybe we could check with the multi >>>> group if this is possible. >>>> >>>> Leandro >>>> >>>> On Mon, May 15, 2017 at 2:25 PM, Bruce Shapiro >>>> <bru...@gm... <mailto:bru...@gm...>> wrote: >>>> >>>> You could use a multidimensional array to model the states of a >>>> reaction that has multiple binding sites, where each dimension >>>> represents the occupancy level (e.g., number of phosphorylations) of >>>> the site, and the number of dimensions is equal to the number of >>>> binding sites. You might similarly build toy models to represent >>>> multi-state reactions in this way. This might not always be the >>>> best way to do it in SBML but it parallels a very effective >>>> mathematical description. I leave it to others to do the >>>> implementations, though. >>>> >>> > |
From: Chris M. <my...@ec...> - 2017-05-18 12:33:34
|
Cool, and with sparse arrays, you could skip representing the 0s in theory, if there are a lot of them. Chris > On May 17, 2017, at 11:11 PM, Nicolas Le Novere <n.l...@gm...> wrote: > > Hello, > > Arrays are what we did in StochSim when we were doing rule-based models. > > 1) The state of each multi-state molecule was stored in an array of flags, that could take the values 0, 1 or ? > > 2) A multi-component molecule could be stored as an array of multi-state molecules > > 3) A population of molecules could be stored as an array of multi-component multi-state molecules. > > We could then implement complex intra-molecular reactions, e.g. between subunits of repetitive assemblies. We could also implement diffusion, as propagation of flag states through arrays. > > Basically big cell automata. > > On 17/05/17 23:28, Fengkai Zhang wrote: >> Multi takes phorsphorylation status of multiple domains as use cases. I >> would think that array could use them to build cases for >> multidimensional arrays. >> >> Multi applies the "don't care" concept to simplify rules. Also, the >> "occur" attributes allow to model changes of the phorsphorylation status >> of multiple copies of domains without referring individual domains. For >> example, a protein has 2 sites phorsphorylated from 5 phorsphorylation >> sites and two more sites (any two from the remaining 3 unphorsphorylated >> sites) are phorsphorylated in a reason. Not sure if array can do that or >> if it is reasonable to use array for those cases. >> >> Fengkai >> >> >> On 05/15/2017 04:47 PM, Leandro Watanabe wrote: >>> I like Bruce's idea. We talked about the possibility of representing >>> some rule-based models using arrays. Maybe we could check with the multi >>> group if this is possible. >>> >>> Leandro >>> >>> On Mon, May 15, 2017 at 2:25 PM, Bruce Shapiro >>> <bru...@gm... <mailto:bru...@gm...>> wrote: >>> >>> You could use a multidimensional array to model the states of a >>> reaction that has multiple binding sites, where each dimension >>> represents the occupancy level (e.g., number of phosphorylations) of >>> the site, and the number of dimensions is equal to the number of >>> binding sites. You might similarly build toy models to represent >>> multi-state reactions in this way. This might not always be the >>> best way to do it in SBML but it parallels a very effective >>> mathematical description. I leave it to others to do the >>> implementations, though. >>> >> >> ==================== >> Fengkai Zhang, MD, MMath >> Staff Scientist >> Laboratory of Systems Biology, DIR, NIAID >> 9000 Rockville Pike >> Building 4, Room 137 >> MSC 0421 >> Bethesda MD 20892 >> Phone: 301.761.5442 >> Fax: 301.480.1660 >> NIAID, National Institutes of Health, DHHS >> >> ****************************************************************** >> The information in this e-mail and any of its attachments is >> confidential and may contain sensitive information. It should not be >> used by anyone who is not the original intended recipient. If you have >> received this e-mail in error please inform the sender and delete it >> from your mailbox or any other storage devices. National Institute of >> Allergy and Infectious Diseases shall not accept liability for any >> statements made that are sender's own and not expressly made on behalf >> of the NIAID by one of its representatives. >> ****************************************************************** >> >> ------------------------------------------------------------------------------ >> 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 >> > > > -- > Nicolas LE NOVERE, Babraham Institute, Babraham Campus Cambridge, CB22 3AT > Tel: +441223496433 Mob:+447833147074 n.l...@gm... > orcid.org//0000-0002-6309-7327 http://lenoverelab.org/perso/lenov/ > Skype:n.lenovere twitter:@lenovere http://nlenov.wordpress.com/ > > > > ------------------------------------------------------------------------------ > 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: Nicolas Le N. <n.l...@gm...> - 2017-05-18 03:11:47
|
Hello, Arrays are what we did in StochSim when we were doing rule-based models. 1) The state of each multi-state molecule was stored in an array of flags, that could take the values 0, 1 or ? 2) A multi-component molecule could be stored as an array of multi-state molecules 3) A population of molecules could be stored as an array of multi-component multi-state molecules. We could then implement complex intra-molecular reactions, e.g. between subunits of repetitive assemblies. We could also implement diffusion, as propagation of flag states through arrays. Basically big cell automata. On 17/05/17 23:28, Fengkai Zhang wrote: > Multi takes phorsphorylation status of multiple domains as use cases. I > would think that array could use them to build cases for > multidimensional arrays. > > Multi applies the "don't care" concept to simplify rules. Also, the > "occur" attributes allow to model changes of the phorsphorylation status > of multiple copies of domains without referring individual domains. For > example, a protein has 2 sites phorsphorylated from 5 phorsphorylation > sites and two more sites (any two from the remaining 3 unphorsphorylated > sites) are phorsphorylated in a reason. Not sure if array can do that or > if it is reasonable to use array for those cases. > > Fengkai > > > On 05/15/2017 04:47 PM, Leandro Watanabe wrote: >> I like Bruce's idea. We talked about the possibility of representing >> some rule-based models using arrays. Maybe we could check with the multi >> group if this is possible. >> >> Leandro >> >> On Mon, May 15, 2017 at 2:25 PM, Bruce Shapiro >> <bru...@gm... <mailto:bru...@gm...>> wrote: >> >> You could use a multidimensional array to model the states of a >> reaction that has multiple binding sites, where each dimension >> represents the occupancy level (e.g., number of phosphorylations) of >> the site, and the number of dimensions is equal to the number of >> binding sites. You might similarly build toy models to represent >> multi-state reactions in this way. This might not always be the >> best way to do it in SBML but it parallels a very effective >> mathematical description. I leave it to others to do the >> implementations, though. >> > > ==================== > Fengkai Zhang, MD, MMath > Staff Scientist > Laboratory of Systems Biology, DIR, NIAID > 9000 Rockville Pike > Building 4, Room 137 > MSC 0421 > Bethesda MD 20892 > Phone: 301.761.5442 > Fax: 301.480.1660 > NIAID, National Institutes of Health, DHHS > > ****************************************************************** > The information in this e-mail and any of its attachments is > confidential and may contain sensitive information. It should not be > used by anyone who is not the original intended recipient. If you have > received this e-mail in error please inform the sender and delete it > from your mailbox or any other storage devices. National Institute of > Allergy and Infectious Diseases shall not accept liability for any > statements made that are sender's own and not expressly made on behalf > of the NIAID by one of its representatives. > ****************************************************************** > > ------------------------------------------------------------------------------ > 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 > -- Nicolas LE NOVERE, Babraham Institute, Babraham Campus Cambridge, CB22 3AT Tel: +441223496433 Mob:+447833147074 n.l...@gm... orcid.org//0000-0002-6309-7327 http://lenoverelab.org/perso/lenov/ Skype:n.lenovere twitter:@lenovere http://nlenov.wordpress.com/ |
From: Chris M. <my...@ec...> - 2017-05-17 23:46:38
|
I think so. We’ve been contemplating using sparse arrays as a means for representing rule-based models. Chris > On May 17, 2017, at 6:28 PM, Fengkai Zhang <zha...@ni...> wrote: > > Multi takes phorsphorylation status of multiple domains as use cases. I > would think that array could use them to build cases for > multidimensional arrays. > > Multi applies the "don't care" concept to simplify rules. Also, the > "occur" attributes allow to model changes of the phorsphorylation status > of multiple copies of domains without referring individual domains. For > example, a protein has 2 sites phorsphorylated from 5 phorsphorylation > sites and two more sites (any two from the remaining 3 unphorsphorylated > sites) are phorsphorylated in a reason. Not sure if array can do that or > if it is reasonable to use array for those cases. > > Fengkai > > > On 05/15/2017 04:47 PM, Leandro Watanabe wrote: >> I like Bruce's idea. We talked about the possibility of representing >> some rule-based models using arrays. Maybe we could check with the multi >> group if this is possible. >> >> Leandro >> >> On Mon, May 15, 2017 at 2:25 PM, Bruce Shapiro >> <bru...@gm... <mailto:bru...@gm...>> wrote: >> >> You could use a multidimensional array to model the states of a >> reaction that has multiple binding sites, where each dimension >> represents the occupancy level (e.g., number of phosphorylations) of >> the site, and the number of dimensions is equal to the number of >> binding sites. You might similarly build toy models to represent >> multi-state reactions in this way. This might not always be the >> best way to do it in SBML but it parallels a very effective >> mathematical description. I leave it to others to do the >> implementations, though. >> > > ==================== > Fengkai Zhang, MD, MMath > Staff Scientist > Laboratory of Systems Biology, DIR, NIAID > 9000 Rockville Pike > Building 4, Room 137 > MSC 0421 > Bethesda MD 20892 > Phone: 301.761.5442 > Fax: 301.480.1660 > NIAID, National Institutes of Health, DHHS > > ****************************************************************** > The information in this e-mail and any of its attachments is > confidential and may contain sensitive information. It should not be > used by anyone who is not the original intended recipient. If you have > received this e-mail in error please inform the sender and delete it > from your mailbox or any other storage devices. National Institute of > Allergy and Infectious Diseases shall not accept liability for any > statements made that are sender's own and not expressly made on behalf > of the NIAID by one of its representatives. > ****************************************************************** > > ------------------------------------------------------------------------------ > 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: Fengkai Z. <zha...@ni...> - 2017-05-17 23:03:28
|
Multi takes phorsphorylation status of multiple domains as use cases. I would think that array could use them to build cases for multidimensional arrays. Multi applies the "don't care" concept to simplify rules. Also, the "occur" attributes allow to model changes of the phorsphorylation status of multiple copies of domains without referring individual domains. For example, a protein has 2 sites phorsphorylated from 5 phorsphorylation sites and two more sites (any two from the remaining 3 unphorsphorylated sites) are phorsphorylated in a reason. Not sure if array can do that or if it is reasonable to use array for those cases. Fengkai On 05/15/2017 04:47 PM, Leandro Watanabe wrote: > I like Bruce's idea. We talked about the possibility of representing > some rule-based models using arrays. Maybe we could check with the multi > group if this is possible. > > Leandro > > On Mon, May 15, 2017 at 2:25 PM, Bruce Shapiro > <bru...@gm... <mailto:bru...@gm...>> wrote: > > You could use a multidimensional array to model the states of a > reaction that has multiple binding sites, where each dimension > represents the occupancy level (e.g., number of phosphorylations) of > the site, and the number of dimensions is equal to the number of > binding sites. You might similarly build toy models to represent > multi-state reactions in this way. This might not always be the > best way to do it in SBML but it parallels a very effective > mathematical description. I leave it to others to do the > implementations, though. > ==================== Fengkai Zhang, MD, MMath Staff Scientist Laboratory of Systems Biology, DIR, NIAID 9000 Rockville Pike Building 4, Room 137 MSC 0421 Bethesda MD 20892 Phone: 301.761.5442 Fax: 301.480.1660 NIAID, National Institutes of Health, DHHS ****************************************************************** The information in this e-mail and any of its attachments is confidential and may contain sensitive information. It should not be used by anyone who is not the original intended recipient. If you have received this e-mail in error please inform the sender and delete it from your mailbox or any other storage devices. National Institute of Allergy and Infectious Diseases shall not accept liability for any statements made that are sender's own and not expressly made on behalf of the NIAID by one of its representatives. ****************************************************************** |
From: Chris M. <my...@ec...> - 2017-05-17 18:41:22
|
Your interpretation matches ours, and it is 0-based. I thought that was in the spec. However, an example like yours would be good too. Look forward to having arrays flattening implemented in libSBML. Chris > On May 17, 2017, at 11:49 AM, Sarah Keating <ske...@ca...> wrote: > > Hi Guys > > Just to be clear and make sure that we are on the same page. I know it's > obvious - but you try switching between multi/arrays and spatial ;-) > > So please correct me if I am wrong but I am assuming the following: > > Take the following array of species > > <listOfSpecies> > <species id="s"> > <arrays:listOfDimensions> > <arrays:dimension arrays:size="n" arrays:arrayDimension="0"/> > <arrays:dimension arrays:size="m" arrays:arrayDimension="1"/> > </arrays:listOfDimensions> > </species> > </listOfSpecies> > <listOfParameters> > <parameter id="n" value="2" constant="true"/> > <parameter id="m" value="3" constant="true"/> > </listOfParameters> > > This represents a 3 x 2 array and you would expect to have elements: > > s(0,0) s(0,1) > s(1,0) s(1,1) > s(2,0) s(2,1) > > OR > > s(1,1) s(1,2) > s(2,1) s(2,2) > s(3,1) s(3,2) > > if you are a MATLAB user ! > > Personally I would put something that makes the interpretation as > obvious as this into the spec. It just makes it non-negotiable :-) > > 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-17 15:49:24
|
Hi Guys Just to be clear and make sure that we are on the same page. I know it's obvious - but you try switching between multi/arrays and spatial ;-) So please correct me if I am wrong but I am assuming the following: Take the following array of species <listOfSpecies> <species id="s"> <arrays:listOfDimensions> <arrays:dimension arrays:size="n" arrays:arrayDimension="0"/> <arrays:dimension arrays:size="m" arrays:arrayDimension="1"/> </arrays:listOfDimensions> </species> </listOfSpecies> <listOfParameters> <parameter id="n" value="2" constant="true"/> <parameter id="m" value="3" constant="true"/> </listOfParameters> This represents a 3 x 2 array and you would expect to have elements: s(0,0) s(0,1) s(1,0) s(1,1) s(2,0) s(2,1) OR s(1,1) s(1,2) s(2,1) s(2,2) s(3,1) s(3,2) if you are a MATLAB user ! Personally I would put something that makes the interpretation as obvious as this into the spec. It just makes it non-negotiable :-) Sarah |
From: Nicolas Le N. <n.l...@gm...> - 2017-05-15 22:40:54
|
On 15/05/17 20:31, Chris Myers wrote: > Good point. A single dimension is often pretty good and indeed, everything can be mapped to a single dimension. However, I could imagine a 3D grid of reactions/species perhaps being a reasonable example. Harder to think of real uses for more than 3, but there is no reason to limit it. I think there are a few real uses of more than 3 dimensions. Some biological "dimensions" might belong to the same physical one. For instance one can model an array of lymph nodes, each containing an array of follicles, each one containing and array of cells. Those cells can be dendritic cells, B lymphocytes etc., each one at different states of differentiation. I don't think we are only thinking of spatial dimensions here. -- Nicolas LE NOVERE, Babraham Institute, Babraham Campus Cambridge, CB22 3AT Tel: +441223496433 Mob:+447833147074 n.l...@gm... orcid.org//0000-0002-6309-7327 http://lenoverelab.org/perso/lenov/ Skype:n.lenovere twitter:@lenovere http://nlenov.wordpress.com/ |
From: Leandro W. <lea...@gm...> - 2017-05-15 20:47:24
|
I like Bruce's idea. We talked about the possibility of representing some rule-based models using arrays. Maybe we could check with the multi group if this is possible. Leandro On Mon, May 15, 2017 at 2:25 PM, Bruce Shapiro <bru...@gm...> wrote: > You could use a multidimensional array to model the states of a reaction > that has multiple binding sites, where each dimension represents the > occupancy level (e.g., number of phosphorylations) of the site, and the > number of dimensions is equal to the number of binding sites. You might > similarly build toy models to represent multi-state reactions in this way. > This might not always be the best way to do it in SBML but it parallels a > very effective mathematical description. I leave it to others to do the > implementations, though. > > On Mon, May 15, 2017 at 12:31 PM, Chris Myers <my...@ec...> wrote: > >> Hi Sarah, >> >> Good point. A single dimension is often pretty good and indeed, >> everything can be mapped to a single dimension. However, I could imagine a >> 3D grid of reactions/species perhaps being a reasonable example. Harder to >> think of real uses for more than 3, but there is no reason to limit it. >> >> Looking forward to arrays flattening in libSBML. When you get to the >> point of integrating that with comp flattening, we should chat. It is >> important to interleave the flattening steps as you go down in the >> hierarchy. >> >> Cheers, >> >> Chris >> >> On May 15, 2017, at 12:11 PM, Leandro Watanabe <lea...@gm...> >> wrote: >> >> Hi Sarah, >> >> That would be great :-) >> >> There is no limitation on the number of dimensions for arrays. I think it >> was a limitation in a previous version that never concretized. >> >> I think we can come up with more examples with multiple dimensions. Not >> sure what would be interesting to put in the spec yet. >> >> Thanks, >> Leandro >> >> On Mon, May 15, 2017 at 9:42 AM, Sarah Keating <ske...@ca...> >> wrote: >> >>> Hi Guys >>> >>> I was looking into implementing an arrays flattener in libSBML and >>> realised that the examples in the spec are almost all single dimension; >>> and the only snippet that uses two dimensions uses a square matrix :-) >>> >>> It would be nice to have some more elaborate examples. >>> >>> Also, is it true that for the moment arrays limited itself to 2 >>> dimensions; that is in the back of my head somewhere but I couldn't find >>> it explicitly in the spec. >>> >>> 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... >>> 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://slashdot.org>! >> http://sdm.link/slashdot_______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> 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 >> >> > > > -- > Bruce E. Shapiro, Ph.D. > Department of Mathematics > California State University, Northridge > 18111 Nordhoff Street > Northridge, CA 91330-8313 > > ------------------------------------------------------------ > ------------------ > 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: Bruce S. <bru...@gm...> - 2017-05-15 20:25:59
|
You could use a multidimensional array to model the states of a reaction that has multiple binding sites, where each dimension represents the occupancy level (e.g., number of phosphorylations) of the site, and the number of dimensions is equal to the number of binding sites. You might similarly build toy models to represent multi-state reactions in this way. This might not always be the best way to do it in SBML but it parallels a very effective mathematical description. I leave it to others to do the implementations, though. On Mon, May 15, 2017 at 12:31 PM, Chris Myers <my...@ec...> wrote: > Hi Sarah, > > Good point. A single dimension is often pretty good and indeed, > everything can be mapped to a single dimension. However, I could imagine a > 3D grid of reactions/species perhaps being a reasonable example. Harder to > think of real uses for more than 3, but there is no reason to limit it. > > Looking forward to arrays flattening in libSBML. When you get to the > point of integrating that with comp flattening, we should chat. It is > important to interleave the flattening steps as you go down in the > hierarchy. > > Cheers, > > Chris > > On May 15, 2017, at 12:11 PM, Leandro Watanabe <lea...@gm...> > wrote: > > Hi Sarah, > > That would be great :-) > > There is no limitation on the number of dimensions for arrays. I think it > was a limitation in a previous version that never concretized. > > I think we can come up with more examples with multiple dimensions. Not > sure what would be interesting to put in the spec yet. > > Thanks, > Leandro > > On Mon, May 15, 2017 at 9:42 AM, Sarah Keating <ske...@ca...> > wrote: > >> Hi Guys >> >> I was looking into implementing an arrays flattener in libSBML and >> realised that the examples in the spec are almost all single dimension; >> and the only snippet that uses two dimensions uses a square matrix :-) >> >> It would be nice to have some more elaborate examples. >> >> Also, is it true that for the moment arrays limited itself to 2 >> dimensions; that is in the back of my head somewhere but I couldn't find >> it explicitly in the spec. >> >> 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... >> 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://slashdot.org>! > http://sdm.link/slashdot_______________________________________________ > sbml-arrays mailing list > sbm...@li... > 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 > > -- Bruce E. Shapiro, Ph.D. Department of Mathematics California State University, Northridge 18111 Nordhoff Street Northridge, CA 91330-8313 |
From: Chris M. <my...@ec...> - 2017-05-15 19:32:07
|
Hi Sarah, Good point. A single dimension is often pretty good and indeed, everything can be mapped to a single dimension. However, I could imagine a 3D grid of reactions/species perhaps being a reasonable example. Harder to think of real uses for more than 3, but there is no reason to limit it. Looking forward to arrays flattening in libSBML. When you get to the point of integrating that with comp flattening, we should chat. It is important to interleave the flattening steps as you go down in the hierarchy. Cheers, Chris > On May 15, 2017, at 12:11 PM, Leandro Watanabe <lea...@gm...> wrote: > > Hi Sarah, > > That would be great :-) > > There is no limitation on the number of dimensions for arrays. I think it was a limitation in a previous version that never concretized. > > I think we can come up with more examples with multiple dimensions. Not sure what would be interesting to put in the spec yet. > > Thanks, > Leandro > > On Mon, May 15, 2017 at 9:42 AM, Sarah Keating <ske...@ca... <mailto:ske...@ca...>> wrote: > Hi Guys > > I was looking into implementing an arrays flattener in libSBML and > realised that the examples in the spec are almost all single dimension; > and the only snippet that uses two dimensions uses a square matrix :-) > > It would be nice to have some more elaborate examples. > > Also, is it true that for the moment arrays limited itself to 2 > dimensions; that is in the back of my head somewhere but I couldn't find > it explicitly in the spec. > > 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> > > ------------------------------------------------------------------------------ > 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: Leandro W. <lea...@gm...> - 2017-05-15 16:11:14
|
Hi Sarah, That would be great :-) There is no limitation on the number of dimensions for arrays. I think it was a limitation in a previous version that never concretized. I think we can come up with more examples with multiple dimensions. Not sure what would be interesting to put in the spec yet. Thanks, Leandro On Mon, May 15, 2017 at 9:42 AM, Sarah Keating <ske...@ca...> wrote: > Hi Guys > > I was looking into implementing an arrays flattener in libSBML and > realised that the examples in the spec are almost all single dimension; > and the only snippet that uses two dimensions uses a square matrix :-) > > It would be nice to have some more elaborate examples. > > Also, is it true that for the moment arrays limited itself to 2 > dimensions; that is in the back of my head somewhere but I couldn't find > it explicitly in the spec. > > 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-15 15:42:38
|
Hi Guys I was looking into implementing an arrays flattener in libSBML and realised that the examples in the spec are almost all single dimension; and the only snippet that uses two dimensions uses a square matrix :-) It would be nice to have some more elaborate examples. Also, is it true that for the moment arrays limited itself to 2 dimensions; that is in the back of my head somewhere but I couldn't find it explicitly in the spec. Sarah |
From: Chris J. M. <my...@ec...> - 2015-09-24 20:03:51
|
I agree to not complicate things. Libsbml support is pretty easy since only affects validation and it does not validate arrays as far as I'm aware. Chris Sent from my iPhone > On Sep 24, 2015, at 1:00 PM, Lucian Smith <luc...@gm...> wrote: > > I hesitate only because we couldn't get an implementation in place for libsbml in time for COMBINE, and people aren't exactly chomping at the bit to have those capabilities at the moment anyway. Maybe post-COMBINE, if people there still seem to want it? > > -Lucian > >> On Thu, Sep 24, 2015 at 11:55 AM, Chris J. Myers <my...@ec...> wrote: >> Thanks. Are you going to add the strict option? >> >> Chris >> >> Sent from my iPhone >> >>> On Sep 24, 2015, at 12:52 PM, Lucian Smith <luc...@gm...> wrote: >>> >>> I was looking through them myself, and basically came to the same conclusions! For now, I went with 'non-negative', and adjusted some wording in the other places. >>> >>> The only thing I remember you wanting to revert at one point was the id's on the examples, but I think we eventually agreed that removing them was sufficiently helpful that it was OK that iBioSim didn't produce exactly that. >>> >>> At any rate, I've updated and checked in the new version. >>> >>> -Lucian >>> >>>> On Thu, Sep 24, 2015 at 11:18 AM, Chris J. Myers <my...@ec...> wrote: >>>> Here are the comments I found: >>>> >>>> Lucian: Check to see if ’non-zero’ is a requirement. It also might still be worth having a discussion about the ’defined initial value’. >>>> >>>> Text says above “positive non-zero integer”, but this is redundant, since positive does mean non-zero. We have gone back and forth about allowing zero or not. Personally, I think 0 is strange since it basically means it does not exist, but it is a quick way to “delete” something I guess. Anyway, I think the text should either read, “positive integer” or “non-negative integer” depending on our decision about 0. I can go either way on this. >>>> >>>> Leandro: how is JSBML currently implemented? >>>> >>>> As for “defined initial value”, you are correct that we agreed to add a flag that effectively disable the validation rules that required static arrays. This would mean crazy things could happen like dynamic array out-of-bounds problems, but we decided at Harmony to give people the option to do this, if they like. If you have time to add to the specification before COMBINE, that would be great. Hopefully we can convince you to implement in Antimony and Ilya in BioUML, and we can finally ratify this thing :-). >>>> >>>> Lucian: I removed the IDs of X and Y’s Dimension becuase they made this example more confusing than it needed to be. >>>> >>>> This is okay. My only reservation is this means the XML has been edited now after what came out of iBioSim. It introduces a slight risk of invalid SBML. >>>> Lucian: This bit will have to change after we finally get the ’MathML packages’ up and running, but we might as well leave it for now. >>>> >>>> Agreed. >>>> >>>> Lucian: I don’t know what you mean here by ’invalid to have a value of type vector’. In fact, it seems to me that things >>>> >>>> 3 could be a ton simpler if you allowed simple vector assignment, a la: 4 >>>> >>>> Lucian: Is there a reason you don’t want this? This (or something similar) will also be necessary in the case of distrib, >>>> >>>> 26 where it needs vector input and output. 27 >>>> >>>> >>>> I agree that this would be simpler XML, but it makes validation and flattening harder. Since it is software and not humans that generate the XML, I do not think we should add this type of assignment for now. This, in my opinion, violates our design decision of no implicit arrays. >>>> >>>> Finally, I also looked through all your text modifications and they look good to me. Do you think any new validation rules are implied by these changes? >>>> >>>> I could not find the change that I remember thinking you made was wrong. Maybe I’m misremembering. Leandro: do you have any recollection of this? >>>> >>>> Cheers, >>>> >>>> Chris >>>> >>>>> On Sep 24, 2015, at 11:59 AM, Lucian Smith <luc...@gm...> wrote: >>>>> >>>>> Oh, right--we had discussed making a new 'strict' flag or something that we would use for things like 'defined/fixed boundaries', etc. Should I write that into this proposal? >>>>> >>>>> -Lucian >>>>> >>>>>> On Thu, Sep 24, 2015 at 10:47 AM, Chris J. Myers <my...@ec...> wrote: >>>>>> This version still has some notes in there that you put in. I think we discussed them all in Germany. Can you remove or update based on this? Also, I seem to remember you made some changes that we said needed to be unwound, but I cannot remember what these were. Do you remember? >>>>>> >>>>>> Chris >>>>>> >>>>>> >>>>>>> On Sep 24, 2015, at 11:45 AM, Lucian Smith <luc...@gm...> wrote: >>>>>>> >>>>>>> I went ahead and updated the version in SVN to be version 0.3 alpha, compiled it, and updated the arrays page to point to the new version. Let me know if anything else needs to be updated. >>>>>>> >>>>>>> -Lucian >>>>>>> >>>>>>>> On Thu, Sep 24, 2015 at 10:22 AM, Ilya Kiselev <ax...@de...> wrote: >>>>>>>> Hi. >>>>>>>> >>>>>>>> Well this version certainly looks more elaborate. I will read it and get back to you. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> Best regards, Ilya >>>>>>>> >>>>>>>> 2015-09-24 22:55 GMT+06:00 Chris J. Myers <my...@ec...>: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> The latest version is attached. We really need to update the one online which is very old. I see your confusion now. >>>>>>>>> >>>>>>>>> Indices are actually on attributes of SBML elements. For example, the compartment attribute of a species can have an index. >>>>>>>>> >>>>>>>>> Leandro: maybe you can send your COMBINE 2014 slides as well, which I think might be easier to digest. >>>>>>>>> >>>>>>>>> Chris >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Sep 24, 2015, at 10:01 AM, Ilya Kiselev <ax...@de...> wrote: >>>>>>>>>> >>>>>>>>>> Thanks for your answers and explanations! >>>>>>>>>> >>>>>>>>>> But it made me wonder if specification I have read is actually up to date because I have no Idea how you can set compartment of arbitrarty index to species like that (unless it is done implicitly by setting S[n] in C[m], where n = 2m, but you said nothing is done implicitly): >>>>>>>>>> >>>>>>>>>> >Another example with n != m, consider: >>>>>>>>>> >parameter n=8 >>>>>>>>>> >parameter m=4 >>>>>>>>>> >compartment C[m] >>>>>>>>>> >species S[n] with compartment C[floor(d0/2)] where d0 is the dimension id for dimension 0 of S >>>>>>>>>> >>>>>>>>>> Species can not have Index and even if ithey had - Index can not be applyed to attributes.... >>>>>>>>>> >>>>>>>>>> I took specification from here http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/arrays. I have also attached it to this email. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> If you read the parts of the specification about flattening and the validation rules, it should help. >>>>>>>>>> >>>>>>>>>> Specification which I have read does not contain such parts. >>>>>>>>>> >>>>>>>>>>>> 5.One thing that bothers me a bit is that multiple rules for the same variable are allowed (for different components of the vector but still). Hence if stripped from the extension, this file would not be valid SBML document. >>>>>>>>>>> >>>>>>>>>>> That is not correct. We do not allow multiple rules for the same variable. It still must be valid when stripped. >>>>>>>>>> >>>>>>>>>> Specification that I have read has examples for that. Its in the paragraph 4.2., Array of Rate Rules >>>>>>>>>> >>>>>>>>>> <listOfRules> >>>>>>>>>> <!-- Create rate rules dx(i)/dt = y for i = 1,2,3,4,5 --> >>>>>>>>>> <rateRule variable="x"> >>>>>>>>>> <arrays:orderedListOfDimensions> >>>>>>>>>> <arrays:dimension id="i" size="m"/> >>>>>>>>>> </arrays:orderedListOfDimensions> >>>>>>>>>> <arrays:orderedListOfIndices> >>>>>>>>>> ... >>>>>>>>>> </rateRule> >>>>>>>>>> <!-- Create rate rules dx(i)/dt = 2*y for i = 6,7,8 --> >>>>>>>>>> <rateRule variable="x"> >>>>>>>>>> <arrays:orderedListOfDimensions> >>>>>>>>>> <arrays:dimension id="i" size="o"/> >>>>>>>>>> </arrays:orderedListOfDimensions> >>>>>>>>>> <arrays:orderedListOfIndices> >>>>>>>>>> ... >>>>>>>>>> </rateRule> >>>>>>>>>> </listOfRules> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> <arrays proposal.pdf> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------------ >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> sbml-arrays mailing list >>>>>>>> sbm...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> _______________________________________________ >>>>>>> sbml-arrays mailing list >>>>>>> sbm...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> >>>>>> _______________________________________________ >>>>>> sbml-arrays mailing list >>>>>> sbm...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> _______________________________________________ >>>>> sbml-arrays mailing list >>>>> sbm...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> sbml-arrays mailing list >>>> sbm...@li... >>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> sbml-arrays mailing list >>> sbm...@li... >>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays > > ------------------------------------------------------------------------------ > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays |
From: Lucian S. <luc...@gm...> - 2015-09-24 19:00:09
|
I hesitate only because we couldn't get an implementation in place for libsbml in time for COMBINE, and people aren't exactly chomping at the bit to have those capabilities at the moment anyway. Maybe post-COMBINE, if people there still seem to want it? -Lucian On Thu, Sep 24, 2015 at 11:55 AM, Chris J. Myers <my...@ec...> wrote: > Thanks. Are you going to add the strict option? > > Chris > > Sent from my iPhone > > On Sep 24, 2015, at 12:52 PM, Lucian Smith <luc...@gm...> > wrote: > > I was looking through them myself, and basically came to the same > conclusions! For now, I went with 'non-negative', and adjusted some > wording in the other places. > > The only thing I remember you wanting to revert at one point was the id's > on the examples, but I think we eventually agreed that removing them was > sufficiently helpful that it was OK that iBioSim didn't produce exactly > that. > > At any rate, I've updated and checked in the new version. > > -Lucian > > On Thu, Sep 24, 2015 at 11:18 AM, Chris J. Myers <my...@ec...> > wrote: > >> Here are the comments I found: >> >> Lucian: Check to see if ’non-zero’ is a requirement. It also might still >> be worth having a discussion about the ’defined initial value’. >> >> Text says above “positive non-zero integer”, but this is redundant, since >> positive does mean non-zero. We have gone back and forth about allowing >> zero or not. Personally, I think 0 is strange since it basically means it >> does not exist, but it is a quick way to “delete” something I guess. >> Anyway, I think the text should either read, “positive integer” or >> “non-negative integer” depending on our decision about 0. I can go either >> way on this. >> >> Leandro: how is JSBML currently implemented? >> >> As for “defined initial value”, you are correct that we agreed to add a >> flag that effectively disable the validation rules that required static >> arrays. This would mean crazy things could happen like dynamic array >> out-of-bounds problems, but we decided at Harmony to give people the option >> to do this, if they like. If you have time to add to the specification >> before COMBINE, that would be great. Hopefully we can convince you to >> implement in Antimony and Ilya in BioUML, and we can finally ratify this >> thing :-). >> >> Lucian: I removed the IDs of X and Y’s Dimension becuase they made this >> example more confusing than it needed to be. >> >> This is okay. My only reservation is this means the XML has been edited >> now after what came out of iBioSim. It introduces a slight risk of invalid >> SBML. >> >> Lucian: This bit will have to change after we finally get the ’MathML >> packages’ up and running, but we might as well leave it for now. >> Agreed. >> >> Lucian: I don’t know what you mean here by ’invalid to have a value of >> type vector’. In fact, it seems to me that things >> >> 3 could be a ton simpler if you allowed simple vector assignment, a la: 4 >> >> >> Lucian: Is there a reason you don’t want this? This (or something >> similar) will also be necessary in the case of distrib, >> >> 26 where it needs vector input and output. 27 >> >> I agree that this would be simpler XML, but it makes validation and >> flattening harder. Since it is software and not humans that generate the >> XML, I do not think we should add this type of assignment for now. This, >> in my opinion, violates our design decision of no implicit arrays. >> >> Finally, I also looked through all your text modifications and they look >> good to me. Do you think any new validation rules are implied by these >> changes? >> >> I could not find the change that I remember thinking you made was wrong. >> Maybe I’m misremembering. Leandro: do you have any recollection of this? >> >> Cheers, >> >> Chris >> >> On Sep 24, 2015, at 11:59 AM, Lucian Smith <luc...@gm...> >> wrote: >> >> Oh, right--we had discussed making a new 'strict' flag or something that >> we would use for things like 'defined/fixed boundaries', etc. Should I >> write that into this proposal? >> >> -Lucian >> >> On Thu, Sep 24, 2015 at 10:47 AM, Chris J. Myers <my...@ec...> >> wrote: >> >>> This version still has some notes in there that you put in. I think we >>> discussed them all in Germany. Can you remove or update based on this? >>> Also, I seem to remember you made some changes that we said needed to be >>> unwound, but I cannot remember what these were. Do you remember? >>> >>> Chris >>> >>> >>> On Sep 24, 2015, at 11:45 AM, Lucian Smith <luc...@gm...> >>> wrote: >>> >>> I went ahead and updated the version in SVN to be version 0.3 alpha, >>> compiled it, and updated the arrays page to point to the new version. Let >>> me know if anything else needs to be updated. >>> >>> -Lucian >>> >>> On Thu, Sep 24, 2015 at 10:22 AM, Ilya Kiselev < >>> ax...@de...> wrote: >>> >>>> Hi. >>>> >>>> Well this version certainly looks more elaborate. I will read it and >>>> get back to you. >>>> >>>> Thanks! >>>> >>>> Best regards, Ilya >>>> >>>> 2015-09-24 22:55 GMT+06:00 Chris J. Myers <my...@ec...>: >>>> >>>>> Hi, >>>>> >>>>> The latest version is attached. We really need to update the one >>>>> online which is very old. I see your confusion now. >>>>> >>>>> Indices are actually on attributes of SBML elements. For example, the >>>>> compartment attribute of a species can have an index. >>>>> >>>>> Leandro: maybe you can send your COMBINE 2014 slides as well, which I >>>>> think might be easier to digest. >>>>> >>>>> Chris >>>>> >>>>> >>>>> >>>>> On Sep 24, 2015, at 10:01 AM, Ilya Kiselev < >>>>> ax...@de...> wrote: >>>>> >>>>> Thanks for your answers and explanations! >>>>> >>>>> But it made me wonder if specification I have read is actually up to >>>>> date because I have no Idea how you can set compartment of arbitrarty index >>>>> to species like that (unless it is done implicitly by setting S[n] in C[m], >>>>> where n = 2m, but you said nothing is done implicitly): >>>>> >>>>> >Another example with n != m, consider: >>>>> >parameter n=8 >>>>> >parameter m=4 >>>>> >compartment C[m] >>>>> >species S[n] with compartment C[floor(d0/2)] where d0 is the >>>>> dimension id for dimension 0 of S >>>>> >>>>> Species can not have Index and even if ithey had - Index can not be >>>>> applyed to attributes.... >>>>> >>>>> I took specification from here >>>>> http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/arrays. >>>>> I have also attached it to this email. >>>>> >>>>>> >>>>>> If you read the parts of the specification about flattening and the >>>>>> validation rules, it should help. >>>>>> >>>>> >>>>> Specification which I have read does not contain such parts. >>>>> >>>>> >>>>>> 5.One thing that bothers me a bit is that multiple rules for the >>>>>> same variable are allowed (for different components of the vector but >>>>>> still). Hence if stripped from the extension, this file would not be valid >>>>>> SBML document. >>>>>> >>>>>> That is not correct. We do not allow multiple rules for the same >>>>>> variable. It still must be valid when stripped. >>>>>> >>>>> >>>>> Specification that I have read has examples for that. Its in the >>>>> paragraph 4.2., Array of Rate Rules >>>>> >>>>> <listOfRules> >>>>> <!-- Create rate rules dx(i)/dt = y for i = 1,2,3,4,5 --> >>>>> <rateRule variable="x"> >>>>> <arrays:orderedListOfDimensions> >>>>> <arrays:dimension id="i" size="m"/> >>>>> </arrays:orderedListOfDimensions> >>>>> <arrays:orderedListOfIndices> >>>>> ... >>>>> </rateRule> >>>>> <!-- Create rate rules dx(i)/dt = 2*y for i = 6,7,8 --> >>>>> <rateRule variable="x"> >>>>> <arrays:orderedListOfDimensions> >>>>> <arrays:dimension id="i" size="o"/> >>>>> </arrays:orderedListOfDimensions> >>>>> <arrays:orderedListOfIndices> >>>>> ... >>>>> </rateRule> >>>>> </listOfRules> >>>>> >>>>> -- >>>>> >>>>> <arrays proposal.pdf> >>>>> >>>>> >>>>> >>>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> sbml-arrays mailing list >>>> sbm...@li... >>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>> >>>> >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> sbml-arrays mailing list >>> sbm...@li... >>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> sbml-arrays mailing list >>> sbm...@li... >>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>> >>> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> >> > > ------------------------------------------------------------------------------ > > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays > > |
From: Chris J. M. <my...@ec...> - 2015-09-24 18:56:00
|
Thanks. Are you going to add the strict option? Chris Sent from my iPhone > On Sep 24, 2015, at 12:52 PM, Lucian Smith <luc...@gm...> wrote: > > I was looking through them myself, and basically came to the same conclusions! For now, I went with 'non-negative', and adjusted some wording in the other places. > > The only thing I remember you wanting to revert at one point was the id's on the examples, but I think we eventually agreed that removing them was sufficiently helpful that it was OK that iBioSim didn't produce exactly that. > > At any rate, I've updated and checked in the new version. > > -Lucian > >> On Thu, Sep 24, 2015 at 11:18 AM, Chris J. Myers <my...@ec...> wrote: >> Here are the comments I found: >> >> Lucian: Check to see if ’non-zero’ is a requirement. It also might still be worth having a discussion about the ’defined initial value’. >> >> Text says above “positive non-zero integer”, but this is redundant, since positive does mean non-zero. We have gone back and forth about allowing zero or not. Personally, I think 0 is strange since it basically means it does not exist, but it is a quick way to “delete” something I guess. Anyway, I think the text should either read, “positive integer” or “non-negative integer” depending on our decision about 0. I can go either way on this. >> >> Leandro: how is JSBML currently implemented? >> >> As for “defined initial value”, you are correct that we agreed to add a flag that effectively disable the validation rules that required static arrays. This would mean crazy things could happen like dynamic array out-of-bounds problems, but we decided at Harmony to give people the option to do this, if they like. If you have time to add to the specification before COMBINE, that would be great. Hopefully we can convince you to implement in Antimony and Ilya in BioUML, and we can finally ratify this thing :-). >> >> Lucian: I removed the IDs of X and Y’s Dimension becuase they made this example more confusing than it needed to be. >> >> This is okay. My only reservation is this means the XML has been edited now after what came out of iBioSim. It introduces a slight risk of invalid SBML. >> Lucian: This bit will have to change after we finally get the ’MathML packages’ up and running, but we might as well leave it for now. >> >> Agreed. >> >> Lucian: I don’t know what you mean here by ’invalid to have a value of type vector’. In fact, it seems to me that things >> >> 3 could be a ton simpler if you allowed simple vector assignment, a la: 4 >> >> Lucian: Is there a reason you don’t want this? This (or something similar) will also be necessary in the case of distrib, >> >> 26 where it needs vector input and output. 27 >> >> >> I agree that this would be simpler XML, but it makes validation and flattening harder. Since it is software and not humans that generate the XML, I do not think we should add this type of assignment for now. This, in my opinion, violates our design decision of no implicit arrays. >> >> Finally, I also looked through all your text modifications and they look good to me. Do you think any new validation rules are implied by these changes? >> >> I could not find the change that I remember thinking you made was wrong. Maybe I’m misremembering. Leandro: do you have any recollection of this? >> >> Cheers, >> >> Chris >> >>> On Sep 24, 2015, at 11:59 AM, Lucian Smith <luc...@gm...> wrote: >>> >>> Oh, right--we had discussed making a new 'strict' flag or something that we would use for things like 'defined/fixed boundaries', etc. Should I write that into this proposal? >>> >>> -Lucian >>> >>>> On Thu, Sep 24, 2015 at 10:47 AM, Chris J. Myers <my...@ec...> wrote: >>>> This version still has some notes in there that you put in. I think we discussed them all in Germany. Can you remove or update based on this? Also, I seem to remember you made some changes that we said needed to be unwound, but I cannot remember what these were. Do you remember? >>>> >>>> Chris >>>> >>>> >>>>> On Sep 24, 2015, at 11:45 AM, Lucian Smith <luc...@gm...> wrote: >>>>> >>>>> I went ahead and updated the version in SVN to be version 0.3 alpha, compiled it, and updated the arrays page to point to the new version. Let me know if anything else needs to be updated. >>>>> >>>>> -Lucian >>>>> >>>>>> On Thu, Sep 24, 2015 at 10:22 AM, Ilya Kiselev <ax...@de...> wrote: >>>>>> Hi. >>>>>> >>>>>> Well this version certainly looks more elaborate. I will read it and get back to you. >>>>>> >>>>>> Thanks! >>>>>> >>>>>> Best regards, Ilya >>>>>> >>>>>> 2015-09-24 22:55 GMT+06:00 Chris J. Myers <my...@ec...>: >>>>>>> Hi, >>>>>>> >>>>>>> The latest version is attached. We really need to update the one online which is very old. I see your confusion now. >>>>>>> >>>>>>> Indices are actually on attributes of SBML elements. For example, the compartment attribute of a species can have an index. >>>>>>> >>>>>>> Leandro: maybe you can send your COMBINE 2014 slides as well, which I think might be easier to digest. >>>>>>> >>>>>>> Chris >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Sep 24, 2015, at 10:01 AM, Ilya Kiselev <ax...@de...> wrote: >>>>>>>> >>>>>>>> Thanks for your answers and explanations! >>>>>>>> >>>>>>>> But it made me wonder if specification I have read is actually up to date because I have no Idea how you can set compartment of arbitrarty index to species like that (unless it is done implicitly by setting S[n] in C[m], where n = 2m, but you said nothing is done implicitly): >>>>>>>> >>>>>>>> >Another example with n != m, consider: >>>>>>>> >parameter n=8 >>>>>>>> >parameter m=4 >>>>>>>> >compartment C[m] >>>>>>>> >species S[n] with compartment C[floor(d0/2)] where d0 is the dimension id for dimension 0 of S >>>>>>>> >>>>>>>> Species can not have Index and even if ithey had - Index can not be applyed to attributes.... >>>>>>>> >>>>>>>> I took specification from here http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/arrays. I have also attached it to this email. >>>>>>>> >>>>>>>>> >>>>>>>>> If you read the parts of the specification about flattening and the validation rules, it should help. >>>>>>>> >>>>>>>> Specification which I have read does not contain such parts. >>>>>>>> >>>>>>>>>> 5.One thing that bothers me a bit is that multiple rules for the same variable are allowed (for different components of the vector but still). Hence if stripped from the extension, this file would not be valid SBML document. >>>>>>>>> >>>>>>>>> That is not correct. We do not allow multiple rules for the same variable. It still must be valid when stripped. >>>>>>>> >>>>>>>> Specification that I have read has examples for that. Its in the paragraph 4.2., Array of Rate Rules >>>>>>>> >>>>>>>> <listOfRules> >>>>>>>> <!-- Create rate rules dx(i)/dt = y for i = 1,2,3,4,5 --> >>>>>>>> <rateRule variable="x"> >>>>>>>> <arrays:orderedListOfDimensions> >>>>>>>> <arrays:dimension id="i" size="m"/> >>>>>>>> </arrays:orderedListOfDimensions> >>>>>>>> <arrays:orderedListOfIndices> >>>>>>>> ... >>>>>>>> </rateRule> >>>>>>>> <!-- Create rate rules dx(i)/dt = 2*y for i = 6,7,8 --> >>>>>>>> <rateRule variable="x"> >>>>>>>> <arrays:orderedListOfDimensions> >>>>>>>> <arrays:dimension id="i" size="o"/> >>>>>>>> </arrays:orderedListOfDimensions> >>>>>>>> <arrays:orderedListOfIndices> >>>>>>>> ... >>>>>>>> </rateRule> >>>>>>>> </listOfRules> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> <arrays proposal.pdf> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> >>>>>> _______________________________________________ >>>>>> sbml-arrays mailing list >>>>>> sbm...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> _______________________________________________ >>>>> sbml-arrays mailing list >>>>> sbm...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> sbml-arrays mailing list >>>> sbm...@li... >>>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> sbml-arrays mailing list >>> sbm...@li... >>> https://lists.sourceforge.net/lists/listinfo/sbml-arrays >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> sbml-arrays mailing list >> sbm...@li... >> https://lists.sourceforge.net/lists/listinfo/sbml-arrays > > ------------------------------------------------------------------------------ > _______________________________________________ > sbml-arrays mailing list > sbm...@li... > https://lists.sourceforge.net/lists/listinfo/sbml-arrays |