Comments (3)
Due to the steady state assumption fluxes and pool sizes are constant over time, hence a flux/poolsize (ratio) measurement is valid at any time point.
(side note: if FluxML is ever extended to the metabolically instationary case fluxes and pool sizes will become time dependent)
Returning -1 would imply the measurement is valid only for t = infinity, i.e. the isotopically stationary case.
(side note2: I actually do not like that -1 represents infinity, because there is std::numeric_limits::infinity
which states that in a much more understandable way)
I would say that these measurements do not need the getTimeStampSet
method at all, because it does not apply. It is inherited from MGroup
and was actually there long before timestamps where supported at all.
So one way to solve it would be to move all timestamp related members and methods to the MetaboliteMGroup
(with unknown side effects)
If we leave the method, I for one, am not that unhappy with it returning an empty set, because it kind of represents that this method does not really apply.
Could you elaborate, why exactly you would like to iterate over the timestamp set to get all measurements?
Alternatively, we could set a special value to represent that. Perhaps NaN
, because that does not compare to anything? Or we could have a class on its own to represent timestamps, that ensures that values are always >=0 and has a way to represent infinity and a 'does not apply'.
In both cases there are some constraints to the set of timestamps. While infinity could be combined with any actual timestamp, a set that contains the 'does not apply' can not contain anything else.
Thoughts? Oppinions?
from fluxml.
Ok, I understand why -1 would be inconsistent. I like your idea of using NaN
as a "pseudo timestamp" for measurements of time-independent unknowns.
i must admit that the iteration example was not very though out. I had a little idea that I now see would have never worked out. When it comes to the availability of the getTimeStampSet
method I think it should be only available when it can be applied. However, due to backward compatibility and the work of refactoring I think it is better to keep it and just add NaN
(which would be an equivalent of "does not apply").
from fluxml.
I'll have a look. At first glance this seems easy to do.
from fluxml.
Related Issues (19)
- Why not an SBML package? HOT 1
- `configuration` attribute `method` goes nowhere
- python skripts are python2
- flux.py can not parse MIMS measurements
- Input pools can not be named like a flux HOT 1
- re2c >= 0.15 is required as of now
- python installation is only for debian
- not helpful error message / needless strict element order
- Multi-Isotope string is not parsed correctly
- Lower bound of pools sizes is arbitrary
- non_debian branch is stale
- missing Notation.inc file ? HOT 2
- configure does not halt, if re2c is not present HOT 1
- No rule to make target 'symbolicmath/ExprParser.cc'
- Segmentation Fault accures when FluxML file does not exist HOT 2
- Errors/Warnings go nowhere, when using the API
- There is a multitude of compiler warnings HOT 1
- Indentation is inconsistent and messy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluxml.