-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spatial: Address SBML Editor comments #381
Comments
#381 * Re-order sections * Cite 2020 SBML paper * a open -> an open
Note: barring any contrary feedback from the group, my plan is to address all of these points in the next draft. |
One objection from me:
I don't think we should make this change for a few reasons:
|
@matthiaskoenig : You wrote:
This is the same language that's used for all Spatial elements with mathematical meaning. I guess the issue was the it seemed like the SpatialSymbolReference was being bound to an attribute? What about this: "The mathematical value of a CompartmentMapping is its unitSize attribute, and can be bound to a Parameter by using a SpatialSymbolReference to the CompartmentMapping id." This is the general 'spatial ids with mathematical meaning can be connected to core math/elements through the SpatialSymbolReference construct'. Is this reasonable, or is there a better way to phrase it? |
@fbergmann : I think this is correct, but can you confirm? This is the 'isSpatial' attribute of a (core) Species. "The isSpatial attribute is of data type boolean. If it is set to true, the Species is spatially distributed in a possibly nonhomogeneous manner within the Domains of the DomainType of the Compartment in which the Species resides." |
@matthiaskoenig : You wrote:
Dropping allowing semicolons entirely is not really reasonable at this point, and I can confirm that they are invaluable when visually inspecting these lists. They just act like whitespace; there's no real way that they can cause errors. I reduced the suggestion intensity, though, replacing the above with the statement: "A semicolon may be used in uncompressed data to visually distinguish grouped values." Will that work? |
@jcschaff @fbergmann and anyone else who would know: Diffusion coefficients are defined in terms of 3D geometries, with the following types:
For 2D geometries, 'tensor' and 'isotropic' would presumably be the same. Do we want to require isotropic to be used instead of tensor? Or allow both? For 1D geometries, presumably 'tensor' is illegal, and isotropic and anisotropic are identical. Do we require one over the other? Or allow both? |
it was needed as long as we had compression in. If we still have compression in, i think we need it. |
yes, that works for me |
@fbergmann But the array length changes with whether or not compression is on. Right? Or is Matthias's suggestion what was supposed to happen in the first place, and the arrayLength should be the same whether or not compression is on? |
@matthiaskoenig : You wrote:
This is beyond my knowledge, so I can't write a fix, but if you want to submit a fix, I'm happy to put it in. However, I don't know what's confusing about 'return the nearest value'. Surely that's about as straightforward as you can get, barring points that are precisely equidistant between lattice points, and resolving that can be arbitrary? Or is that what the 'norm' covers? |
ok, well in my implementations i used the length to pre-allocate the arrays and fill them after, which was more efficient. After reading, if the array was compressed, i'd uncompress it. So yes, changing it now would break things. |
@fbergmann Got it! @matthiaskoenig, does that make sense? |
As per #381: lead with what this *is* instead of what it isn't, and then also mention the UnitSId namespace.
@fbergmann @jcschaff @matthiaskoenig: My inclination with Matthias's NaN question is to ignore it, since we ignore NaNs everywhere else in all other SBML specifications. It's a possible double value, it will mess with your math, if you don't want it to mess with your math, then don't use them. Is there anything about Spatial in particular that would be worth calling out in the spec? Do either of your tools deal with NaNs in a special way? |
I agree with lucian here, computations with NaNs will not yield useful results in spatial simulations. But that is no different from analysis of other parts of SBML. |
@fbergmann @jcschaff @matthiaskoenig: I've done something for everything I know about, leaving only the following issues: @matthiaskoenig: Do you have any issues with the changes as discussed above? (including 'nothing in the spec about NaNs, since none of the other specs talk about NaNs either') @matthiaskoenig: I need to know what you would like for the 'norm' stuff, about nearest neighbors. New wording? More questions? @fbergmann @jcschaff: I still need something about anisotropic/tensor/isotropic for 2D/1D geometries. Thanks, everyone! |
@luciansmith Thanks for addressing the issues.
I think the norm issue just requires a half sentence. "The nearest neighbor are calculated using L2 norm". This is what most people are doing and is a reasonable default. It should just be stated explicitly somewhere. The reason why this is important is that if you use a different norm you will possibly find different nearest neighbors and your interpolation will look different. As a consequence the results are not reproducible anymore. |
Per #381: Say that we calculate the nearest neighbor using the L2 norm: "A value of “nearestNeighbor” means that the nearest lattice point value is to be returned, calculated using the L2 norm (or Euclidean distance)."
OK, norm bit added with: "A value of “nearestNeighbor” means that the nearest lattice point value is to be returned, calculated using the L2 norm (or Euclidean distance)." This only leaves the 'what does isotropic mean in 2D' issue. I'm certainly happy to make up something, but I feel like we should hear from someone who's actually done some modeling with this ;-) I'll email the list! |
OK! A bit of new text for the isotropic/etc. thing: For a two-dimensional \Geometry, the following are allowed:
\begin{itemize}
\item A single isotropic diffusion coefficient.
\item A single anisotropic diffusion coefficient, defined for the two axes (equivalent to a single isotropic diffusion coefficient).
\item Up to two tensor diffusion coefficients, one per axis.
\end{itemize}
For a one-dimensional \Geometry, the following are allowed:
\begin{itemize}
\item A single isotropic diffusion coefficient.
\item A single tensor diffusion coefficient, defined for the single axis (equivalent to a single isotropic diffusion coefficient).
\end{itemize}
Anisotropic diffusion coefficients may not be defined for one-dimensional geometries, as they apply in two dimensions. |
With that, that's all issues addressed. Thanks, @matthiaskoenig ! I'll give this a week or so to gather any other comments, then re-submit to the SBML Editors. |
I think you have tensor an anisotropic mixed up .. on 2d you have have 2 anisotropic ones, and 1 tensor ... and on 1d you can have 1 anisotropic one but no tensor. I also tried to write this up here https://sourceforge.net/p/sbml/mailman/message/37691260/ |
Great. The validation rule
identifier of an existing Species object defined in the enclosing Model object.
Same for rule
and rules spatial-23504. Same in In rule |
Oh, looks like I got it wrong for the 3D explanation here, too. Will fix! And you're right about the validation rules, too--the text in 3.10.1 says 'species or parameter' so the rules should, too. |
Fixed in the spec with 8b316fd and in libsbml with sbmlteam/libsbml#267 |
The text was updated successfully, but these errors were encountered: