From 6c71fb0531f728951b27ac0e8423db7df6efec64 Mon Sep 17 00:00:00 2001 From: Sarah Date: Mon, 13 Mar 2023 14:48:55 +0000 Subject: [PATCH 01/31] Adding docs from specification --- .../packages/spatial/sbml/AdjacentDomains.h | 6 ++- .../spatial/sbml/AdvectionCoefficient.h | 17 +++++++- .../packages/spatial/sbml/AnalyticGeometry.h | 7 +++- .../packages/spatial/sbml/AnalyticVolume.h | 8 +++- src/sbml/packages/spatial/sbml/Boundary.h | 10 ++++- .../packages/spatial/sbml/BoundaryCondition.h | 41 ++++++++++++++++++- 6 files changed, 83 insertions(+), 6 deletions(-) diff --git a/src/sbml/packages/spatial/sbml/AdjacentDomains.h b/src/sbml/packages/spatial/sbml/AdjacentDomains.h index cdb3990441..d3f6e8c6f8 100644 --- a/src/sbml/packages/spatial/sbml/AdjacentDomains.h +++ b/src/sbml/packages/spatial/sbml/AdjacentDomains.h @@ -40,7 +40,11 @@ * ------------------------------------------------------------------------ --> * * @class AdjacentDomains - * @sbmlbrief{spatial} TODO:Definition of the AdjacentDomains class. + * @sbmlbrief{spatial} AdjacentDomains (or domain adjacencies) captures the + * topological relationships within the Geometry. Consider that the Domains + * are nodes in a graph. The AdjacentDomains objects are the edges that specify + * the spatial connectivity of these nodes. Armed with the topology and the + * domain sizes, one can readily perform a compartmental approximation. */ diff --git a/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h b/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h index e2e569eb3f..98ba58f730 100644 --- a/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h +++ b/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h @@ -40,7 +40,22 @@ * ------------------------------------------------------------------------ --> * * @class AdvectionCoefficient - * @sbmlbrief{spatial} TODO:Definition of the AdvectionCoefficient class. + * @sbmlbrief{spatial} The AdvectionCoefficient is the extension to Parameter + * in SBML core that is used to represent transport velocity of a species, + * if it exists. The transport velocity for the species is defined in a manner + * similar to the diffusion constant with a unit of length/time (regardless of + * the units of the corresponding Species'compartment attribute). A Parameter + * is created in SBML code for the velocity with an AdvectionCoefficient child + * to identify the Species whose velocity is represented by the Parameter; its + * initial value is set either through the value attribute or an InitialAssignment. + * If the advection coefficient changes in time or space, this can be modeled + * with a Rule or Event. + * + * If defined, the units of the parent Parameter should be in length/time; + * if not defined, it inherits from the model-wide units of length divided + * by the model-wide units of time. + * + * It is possible to define both diffusion and advection for the same Species. */ /** diff --git a/src/sbml/packages/spatial/sbml/AnalyticGeometry.h b/src/sbml/packages/spatial/sbml/AnalyticGeometry.h index fa8c8c8c0b..9b8da42888 100644 --- a/src/sbml/packages/spatial/sbml/AnalyticGeometry.h +++ b/src/sbml/packages/spatial/sbml/AnalyticGeometry.h @@ -40,7 +40,12 @@ * ------------------------------------------------------------------------ --> * * @class AnalyticGeometry - * @sbmlbrief{spatial} TODO:Definition of the AnalyticGeometry class. + * @sbmlbrief{spatial} The AnalyticGeometry is a class of GeometryDefinition + * where the geometry of each domain is defined by an analytic expression. + * An AnalyticGeometry is defined as a collection of AnalyticVolumes, one + * AnalyticVolume for each volumetric domain in the geometry. In this + * representation, the surfaces are treated as the boundaries between dissimilar + * AnalyticVolumes. The AnalyticGeometry object contains a ListOfAnalyticVolumes. */ diff --git a/src/sbml/packages/spatial/sbml/AnalyticVolume.h b/src/sbml/packages/spatial/sbml/AnalyticVolume.h index 06be9ccdee..8a06685647 100644 --- a/src/sbml/packages/spatial/sbml/AnalyticVolume.h +++ b/src/sbml/packages/spatial/sbml/AnalyticVolume.h @@ -40,7 +40,13 @@ * ------------------------------------------------------------------------ --> * * @class AnalyticVolume - * @sbmlbrief{spatial} TODO:Definition of the AnalyticVolume class. + * @sbmlbrief{spatial} The AnalyticVolume is used to specify the analytic + * expression of a domain. The analytic expression for the AnalyticVolume + * is defined in the Math element. Despite the word 'volume' in the name, + * an AnalyticVolume may be defined for geometries of any dimension. + * The only difference is that the Math of an AnalyticVolume for a + * 3-dimensional geometry will contain references to the three CoordinateComponent + * axes (i.e. x,y, and z), but will contain fewer for lower-dimensional geometries. */ /** diff --git a/src/sbml/packages/spatial/sbml/Boundary.h b/src/sbml/packages/spatial/sbml/Boundary.h index 877e390117..cbd9e2735c 100644 --- a/src/sbml/packages/spatial/sbml/Boundary.h +++ b/src/sbml/packages/spatial/sbml/Boundary.h @@ -40,7 +40,15 @@ * ------------------------------------------------------------------------ --> * * @class Boundary - * @sbmlbrief{spatial} TODO:Definition of the Boundary class. + * @sbmlbrief{spatial} The minimum and the maximum for a CoordinateComponent + * represent the bounds in each coordinate. For example, for three dimensional + * Cartesian coordinate system with x, y, and z coordinates, the minimum and maximum + * limits for each coordinates define planes orthogonal to each coordinate axis + * and passing through the minimum or maximum. If max-min is the same for each x,y,z + * then the bounds on the geometry is a cube. The Boundary class interacts with the + * BoundaryCondition class, allowing modelers to define how model elements behave + * at the boundary of the model. For species defined within volumes adjacent to these + * surfaces, BoundaryCondition elements must be introduced. */ diff --git a/src/sbml/packages/spatial/sbml/BoundaryCondition.h b/src/sbml/packages/spatial/sbml/BoundaryCondition.h index 1c2fe022ac..fd1536698c 100644 --- a/src/sbml/packages/spatial/sbml/BoundaryCondition.h +++ b/src/sbml/packages/spatial/sbml/BoundaryCondition.h @@ -40,7 +40,46 @@ * ------------------------------------------------------------------------ --> * * @class BoundaryCondition - * @sbmlbrief{spatial} TODO:Definition of the BoundaryCondition class. + * @sbmlbrief{spatial} A \Species in a spatial model that has a diffusion rate + * or an advection velocity needs to have specified boundary conditions. A boundary + * condition is either the concentration of the species or the flux density of the + * species at a boundary. The boundary refers to either an internal membrane boundary + * or a face of the box defined by the minimum and maximum coordinates of the geometry + * (the geometries bounding box). + * + * When creating a spatial SBML model, species boundary conditions are created as + * parameters, one for each boundary condition, by adding a child BoundaryCondition + * that points to the corresponding Species and boundary, depending on the coordinate system. + * + * For Cartesian Geometries, there are two boundaries for every axis being modeled. + * For example, in a 2D cartesian geometry for the external boundaries, there could be + * up to four parameters or parameter sets created for each spatial Species whose + * Compartments abut the minimum and maximums of the X and Y axes). + * + * For internal boundaries, one may either define a BoundaryCondition for a Species + * at that boundary, or one may define one or more transport reactions that describe + * how the physical entities that Species represent are moved (or converted) from one + * side of the boundary to the other. One may not define both a BoundaryCondition and + * a Reaction that describes the same phenomenon, as this would result in the equivalent + * of an overdetermined system, not dissimilar from the reason that the change in a + * Species may not be defined by both a Reaction and a RateRule. + * + * If neither a BoundaryCondition nor a Reaction is defined for a particular + * Species/boundary pair, the flux of that Species at that boundary is zero. + * + * The boundaryCondition attribute on an SBML core Species defines whether it is + * (false) or is not (true) changed by any Reaction it may appear in as a product or reactant. + * In a spatial context, setting this attribute to true additionally means that is + * will not be changed by advection, diffusion, or (confusingly) any BoundaryCondition. + * This is because the 'boundary' of a BoundaryCondition refers to a physical boundary, + * while the 'boundary' of the boundaryCondition attribute refers to the conceptual boundary + * of the reaction network. As in SBML Core, a Species with a boundaryCondition of true + * may only be changed by a Rule (AssignmentRule, RateRule, or AlgebraicRule). + * + * The Parameter's value is set either through the token value attribute or an InitialAssignment. + * If the boundary condition changes in time, it can be set with a Rule or Event. + * If set, the \Parameter unit must be equal to the appropriate unit for its type. + * Only one BoundaryCondition may be defined per Species per boundary (regardless of type). */ /** From ff7cc9a00e99baf42a8b177460b3fdbe4344106a Mon Sep 17 00:00:00 2001 From: Sarah Date: Mon, 13 Mar 2023 15:50:25 +0000 Subject: [PATCH 02/31] Adding docs from specification --- .../spatial/sbml/CSGHomogeneousTransformation.h | 6 ++++-- src/sbml/packages/spatial/sbml/CSGNode.h | 7 ++++++- src/sbml/packages/spatial/sbml/CSGObject.h | 10 +++++++++- src/sbml/packages/spatial/sbml/CSGPrimitive.h | 6 +++++- src/sbml/packages/spatial/sbml/CSGRotation.h | 4 +++- src/sbml/packages/spatial/sbml/CSGScale.h | 9 ++++++++- src/sbml/packages/spatial/sbml/CSGSetOperator.h | 7 ++++++- src/sbml/packages/spatial/sbml/CSGTransformation.h | 14 +++++++++++++- src/sbml/packages/spatial/sbml/CSGTranslation.h | 5 ++++- src/sbml/packages/spatial/sbml/CSGeometry.h | 7 ++++++- .../packages/spatial/sbml/CompartmentMapping.h | 13 ++++++++++++- .../packages/spatial/sbml/CoordinateComponent.h | 5 ++++- 12 files changed, 80 insertions(+), 13 deletions(-) diff --git a/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h b/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h index 3e1a587116..5995ef0a8a 100644 --- a/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h +++ b/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h @@ -40,8 +40,10 @@ * ------------------------------------------------------------------------ --> * * @class CSGHomogeneousTransformation - * @sbmlbrief{spatial} TODO:Definition of the CSGHomogeneousTransformation - * class. + * @sbmlbrief{spatial} The CSGHomogeneousTransformation element represents a + * homogeneous transformation on a CSGNode: a transformation or set operation + * on one or more CSGPrimitives. This element contains one required + * TransformationComponent element child named forwardTransformation */ diff --git a/src/sbml/packages/spatial/sbml/CSGNode.h b/src/sbml/packages/spatial/sbml/CSGNode.h index dfa8694911..2a5c07cca7 100644 --- a/src/sbml/packages/spatial/sbml/CSGNode.h +++ b/src/sbml/packages/spatial/sbml/CSGNode.h @@ -40,7 +40,12 @@ * ------------------------------------------------------------------------ --> * * @class CSGNode - * @sbmlbrief{spatial} TODO:Definition of the CSGNode class. + * @sbmlbrief{spatial} The operators and operands used to construct a constructed + * solid geometry are generalized as a CSGNode. The classes that inherit from + * CSGNode can be one of the following: CSGSetOperator, CSGTransformation + * (operators; itself another abstract base class), or CSGPrimitive (operands). + * The CSGNode has one attribute: id. The CSGObject contains a CSGNode object which + * is the root of the CSGObject scene graph (representing one constructed solid geometry domain). */ diff --git a/src/sbml/packages/spatial/sbml/CSGObject.h b/src/sbml/packages/spatial/sbml/CSGObject.h index 4e0f112d26..8f5674354b 100644 --- a/src/sbml/packages/spatial/sbml/CSGObject.h +++ b/src/sbml/packages/spatial/sbml/CSGObject.h @@ -40,7 +40,15 @@ * ------------------------------------------------------------------------ --> * * @class CSGObject - * @sbmlbrief{spatial} TODO:Definition of the CSGObject class. + * @sbmlbrief{spatial} Each CSGObject is a scene graph representing a particular + * geometric object using constructed solid geometry. A node in a tree (scene graph) + * is made up of CSGPrimitives, CSGSetOperators, and CSGTransformations. + * Note that the CSGPrimitives are always leaves in this tree. The CSGObject is + * analogous to an AnalyticVolume element in the sense that it is a constructed + * geometry (from primitives) used to specify a volumetric (3-dimensional) domain. + * The CSGObject element has three attributes : id, domainType and ordinal. + * The definition of the CSGObject is completed by defining a CSGNode which is + * the root of the CSGObject scene graph. */ diff --git a/src/sbml/packages/spatial/sbml/CSGPrimitive.h b/src/sbml/packages/spatial/sbml/CSGPrimitive.h index 71cb64c759..548ccea9f5 100644 --- a/src/sbml/packages/spatial/sbml/CSGPrimitive.h +++ b/src/sbml/packages/spatial/sbml/CSGPrimitive.h @@ -40,7 +40,11 @@ * ------------------------------------------------------------------------ --> * * @class CSGPrimitive - * @sbmlbrief{spatial} TODO:Definition of the CSGPrimitive class. + * @sbmlbrief{spatial} CSGPrimitive element represents the primitive geometric + * shapes that can be represented by the CSGeometry. These shapes are defined + * in primitive-definitions with a predefined orientation and fitting within the + * unit cube (+/- 1 in x, y, and z) or unit square (+/- 1 in x and y). This element + * has one required attribute : primitiveType of type primtype PrimitiveKind. */ /** diff --git a/src/sbml/packages/spatial/sbml/CSGRotation.h b/src/sbml/packages/spatial/sbml/CSGRotation.h index c7d58e311c..0c07e918f2 100644 --- a/src/sbml/packages/spatial/sbml/CSGRotation.h +++ b/src/sbml/packages/spatial/sbml/CSGRotation.h @@ -40,7 +40,9 @@ * ------------------------------------------------------------------------ --> * * @class CSGRotation - * @sbmlbrief{spatial} TODO:Definition of the CSGRotation class. + * @sbmlbrief{spatial} The CSGRotation element represents a rotation transformation + * on a CSGNode (a transformation or set operation on one or a set of CSGPrimitives) + * or a CSGPrimitive about the axes defined in the Geometry. */ diff --git a/src/sbml/packages/spatial/sbml/CSGScale.h b/src/sbml/packages/spatial/sbml/CSGScale.h index 7cf77eff21..e9c9aaf5c3 100644 --- a/src/sbml/packages/spatial/sbml/CSGScale.h +++ b/src/sbml/packages/spatial/sbml/CSGScale.h @@ -40,7 +40,14 @@ * ------------------------------------------------------------------------ --> * * @class CSGScale - * @sbmlbrief{spatial} TODO:Definition of the CSGScale class. + * @sbmlbrief{spatial} The CSGScale element represents a scale transformation on a + * CSGNode (a transformation or set operation on one or a set of CSGPrimitives) or a + * CSGPrimitive along the axes defined in the Geometry. All scaling occurs collectively + * for the component primitive shapes, and the expansion occurs from the geometrical + * center of the object, i.e. the center of the smallest bounding box that would contain + * the current volume of the object. This means, for example, that if the child of the + * CSGScale object is a hemisphere, defined as the intersection of a sphere and a cube, + * the bounding box would be half the size of a box that would have included the original entire sphere. */ diff --git a/src/sbml/packages/spatial/sbml/CSGSetOperator.h b/src/sbml/packages/spatial/sbml/CSGSetOperator.h index 6dd9406590..b7ad1f9860 100644 --- a/src/sbml/packages/spatial/sbml/CSGSetOperator.h +++ b/src/sbml/packages/spatial/sbml/CSGSetOperator.h @@ -40,7 +40,12 @@ * ------------------------------------------------------------------------ --> * * @class CSGSetOperator - * @sbmlbrief{spatial} TODO:Definition of the CSGSetOperator class. + * @sbmlbrief{spatial} The CSGSetOperator element represents the set operations + * (union, intersection, difference) that can be performed on a set of primitive + * geometric shapes (CSGPrimitives) or on a set of CSGNodes (a transformation or + * set operation on one or a set of CSGPrimitives). This element has one attribute + * of type primtype string. It also contains a required child ListOfCSGNodes that + * represents the set of nodes on which the set operation is performed. */ /** diff --git a/src/sbml/packages/spatial/sbml/CSGTransformation.h b/src/sbml/packages/spatial/sbml/CSGTransformation.h index 49333dfdc8..739c1b60df 100644 --- a/src/sbml/packages/spatial/sbml/CSGTransformation.h +++ b/src/sbml/packages/spatial/sbml/CSGTransformation.h @@ -40,7 +40,19 @@ * ------------------------------------------------------------------------ --> * * @class CSGTransformation - * @sbmlbrief{spatial} TODO:Definition of the CSGTransformation class. + * @sbmlbrief{spatial} The CSGTransformation represents a generalization for the + * type of transformation that can be performed on a primitive geometric shape + * (CSGPrimitive) or on a CSGNode (a transformation or set operation on one or a + * set of CSGPrimitives). The types of possible transformations are 'rotation', + * 'translation', 'scaling', and 'homogeneous transformation', defined below. The + * CSGTransformation element contains a CSGNode element upon which the transformation is performed. + * + * Each transformation is performed directly on its child CSGNode, with any + * transformation or set operation from that node already performed. This essentially + * defines a 'bottom-up' approach, where the tips of the XML tree children of a + * CSGObject are all CSGPrimitive objects, that are progressively transformed or + * combined with other CSGPrimitive objects by each successive node moving rootward + * through the XML. */ diff --git a/src/sbml/packages/spatial/sbml/CSGTranslation.h b/src/sbml/packages/spatial/sbml/CSGTranslation.h index 3cac22cabb..113e6fd25b 100644 --- a/src/sbml/packages/spatial/sbml/CSGTranslation.h +++ b/src/sbml/packages/spatial/sbml/CSGTranslation.h @@ -40,7 +40,10 @@ * ------------------------------------------------------------------------ --> * * @class CSGTranslation - * @sbmlbrief{spatial} TODO:Definition of the CSGTranslation class. + * @sbmlbrief{spatial} The CSGTranslation element represents a translation + * transformation on a CSGNode (a transformation or set operation on one or + * a set of CSGPrimitives) or a CSGPrimitive along the axes defined in the + * Geometry. */ diff --git a/src/sbml/packages/spatial/sbml/CSGeometry.h b/src/sbml/packages/spatial/sbml/CSGeometry.h index 0232025836..9e14da7d52 100644 --- a/src/sbml/packages/spatial/sbml/CSGeometry.h +++ b/src/sbml/packages/spatial/sbml/CSGeometry.h @@ -40,7 +40,12 @@ * ------------------------------------------------------------------------ --> * * @class CSGeometry - * @sbmlbrief{spatial} TODO:Definition of the CSGeometry class. + * @sbmlbrief{spatial} CSGeometry (Constructed Solid Geometry) is a type of + * GeometryDefinition that defines a combined, solid, volumetric object from a number + * of primitive solid volumes by the application of set operations such as union, + * intersection and difference and affine transformations such as rotation, scaling, + * translation, etc. The CSGeometry element is defined by a listOfCSGObjects element + * that contains a collection of CSGObjects. */ diff --git a/src/sbml/packages/spatial/sbml/CompartmentMapping.h b/src/sbml/packages/spatial/sbml/CompartmentMapping.h index ebb2f36dc5..1da232894f 100644 --- a/src/sbml/packages/spatial/sbml/CompartmentMapping.h +++ b/src/sbml/packages/spatial/sbml/CompartmentMapping.h @@ -40,7 +40,18 @@ * ------------------------------------------------------------------------ --> * * @class CompartmentMapping - * @sbmlbrief{spatial} TODO:Definition of the CompartmentMapping class. + * @sbmlbrief{spatial} Each Compartment in a model that defines a spatial geometry + * may contain an optional CompartmentMapping. A CompartmentMapping is defined as + * part of the model rather than part of the geometry so that the geometry is modular + * and may be readily shared between models and reused. A CompartmentMapping maps a + * Compartment defined in the model to a DomainType defined in the geometry such that + * each corresponding DomainType is assigned the same biological and mathematical + * function described by the set of Compartments that are mapped to that DomainType. + * + * This mapping need not be one-to-one. In fact, it is common to map er-lumen, + * er-membrane, and cytosol to the same cell interior volume or 3D DomainType. + * The unitSize attribute specifies the relative quantity of each Compartment that is + * mapped to the DomainType. */ diff --git a/src/sbml/packages/spatial/sbml/CoordinateComponent.h b/src/sbml/packages/spatial/sbml/CoordinateComponent.h index 2f3403e7b0..f389eef7bb 100644 --- a/src/sbml/packages/spatial/sbml/CoordinateComponent.h +++ b/src/sbml/packages/spatial/sbml/CoordinateComponent.h @@ -40,7 +40,10 @@ * ------------------------------------------------------------------------ --> * * @class CoordinateComponent - * @sbmlbrief{spatial} TODO:Definition of the CoordinateComponent class. + * @sbmlbrief{spatial} A CoordinateComponent object explicitly defines a coordinate + * component of the coordinate axes and gives them names, units, and formally associates + * them with a coordinate system. The CoordinateComponent also defines the minimum + * and maximum values of the coordinate axis it represents. */ /** From bf4967f0765a44a65240525d189a3b8be694c821 Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 15 Mar 2023 15:55:16 +0000 Subject: [PATCH 03/31] more docs --- src/sbml/packages/spatial/sbml/DiffusionCoefficient.h | 11 ++++++++++- src/sbml/packages/spatial/sbml/Domain.h | 7 ++++++- src/sbml/packages/spatial/sbml/DomainType.h | 10 +++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h index 812319199d..2a17ee6780 100644 --- a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h +++ b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h @@ -40,7 +40,16 @@ * ------------------------------------------------------------------------ --> * * @class DiffusionCoefficient - * @sbmlbrief{spatial} TODO:Definition of the DiffusionCoefficient class. + * @sbmlbrief{spatial} When a species in a spatial model has a diffusion rate + * constant, a Parameter for this diffusion constant is created in the SBML model + * with a DiffusionCoefficient child, which is used to identify the Species whose + * diffusion rate the Parameter represents. The diffusion coefficient can then be + * set like any other variable: its initial ue can be set using the Parameter's + * tokenue attribute or through an InitialAssignment, and if the diffusion + * coefficient changes in time, this can be defined with a Rule or Event. If set, + * the units of this Parameter should be length^2/time. If left unset, the + * DiffusionCoefficient will inherit the model units of length^2/time (typically + * cm^2s^-1 or um^2s^-1). */ /** diff --git a/src/sbml/packages/spatial/sbml/Domain.h b/src/sbml/packages/spatial/sbml/Domain.h index c54fb89179..cbf7e5a55c 100644 --- a/src/sbml/packages/spatial/sbml/Domain.h +++ b/src/sbml/packages/spatial/sbml/Domain.h @@ -40,7 +40,12 @@ * ------------------------------------------------------------------------ --> * * @class Domain - * @sbmlbrief{spatial} TODO:Definition of the Domain class. + * @sbmlbrief{spatial} Domains represent contiguous regions identified by the + * same DomainType. One, two, and three dimensional domains are contiguous linear + * regions, surface regions, and volume regions (respectively), bounded by the + * limits of the coordinate system (e.g. min/max of x,y,z) and adjacent domains + * corresponding to different domain types. changedZero-dimensional domains are + * also allowed as boundaries of one-dimensional geometry domains. */ diff --git a/src/sbml/packages/spatial/sbml/DomainType.h b/src/sbml/packages/spatial/sbml/DomainType.h index 90706de36a..af82ad2295 100644 --- a/src/sbml/packages/spatial/sbml/DomainType.h +++ b/src/sbml/packages/spatial/sbml/DomainType.h @@ -40,7 +40,15 @@ * ------------------------------------------------------------------------ --> * * @class DomainType - * @sbmlbrief{spatial} TODO:Definition of the DomainType class. + * @sbmlbrief{spatial} A DomainType is a class of domains that are identified as + * being anatomically and physiologically similar. For example, a DomainType + * "cytosol" may be defined in a Geometry as identifying the structure and + * function of the cell interior. If there is one cell, then there is one domain, + * if there are multiple cells, then there are multiple disjoint domains + * ("cytosol1","cytosol2", etc.) identified with the DomainType "cytosol". + * CompartmentMappings, defined as an extension to an SBML core Compartment, map + * compartments to domain types such that each corresponding domain is assigned + * the same biological and mathematical function. */ From 9bc60861e3bc8210ed071f226aa90bd00e9e5a4f Mon Sep 17 00:00:00 2001 From: Sarah Date: Thu, 16 Mar 2023 12:18:31 +0000 Subject: [PATCH 04/31] docs --- .../packages/spatial/sbml/DiffusionCoefficient.h | 2 ++ src/sbml/packages/spatial/sbml/DomainType.h | 11 ++++++++++- src/sbml/packages/spatial/sbml/Geometry.h | 3 ++- src/sbml/packages/spatial/sbml/GeometryDefinition.h | 12 +++++++++++- src/sbml/packages/spatial/sbml/InteriorPoint.h | 13 ++++++++++++- 5 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h index 2a17ee6780..06a6346e56 100644 --- a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h +++ b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h @@ -50,6 +50,8 @@ * the units of this Parameter should be length^2/time. If left unset, the * DiffusionCoefficient will inherit the model units of length^2/time (typically * cm^2s^-1 or um^2s^-1). + * + * It is possible to define both diffusion and advection for the same Species. */ /** diff --git a/src/sbml/packages/spatial/sbml/DomainType.h b/src/sbml/packages/spatial/sbml/DomainType.h index af82ad2295..60d8bb5e65 100644 --- a/src/sbml/packages/spatial/sbml/DomainType.h +++ b/src/sbml/packages/spatial/sbml/DomainType.h @@ -48,7 +48,16 @@ * ("cytosol1","cytosol2", etc.) identified with the DomainType "cytosol". * CompartmentMappings, defined as an extension to an SBML core Compartment, map * compartments to domain types such that each corresponding domain is assigned - * the same biological and mathematical function. + * the same biological and mathematical function. figDomainType-uml shows the + * DomainType object. + * + * Each SBML Compartment maps to a single DomainType, meaning that the initial + * condition of each Species in each Compartment changedwill be defined + * consistently across Domains that map to a given DomainType. If those Species + * are spatially distributed, they will subsequently evolve independently from + * each other. However, if modeling two Domains that are similar but whose + * Species changedhave initial conditions that must be defined in different ways, + * those Domains should be modeled as separate DomainTypes. */ diff --git a/src/sbml/packages/spatial/sbml/Geometry.h b/src/sbml/packages/spatial/sbml/Geometry.h index da3f856a16..3dcbb5fcd3 100644 --- a/src/sbml/packages/spatial/sbml/Geometry.h +++ b/src/sbml/packages/spatial/sbml/Geometry.h @@ -40,7 +40,8 @@ * ------------------------------------------------------------------------ --> * * @class Geometry - * @sbmlbrief{spatial} TODO:Definition of the Geometry class. + * @sbmlbrief{spatial} A single geometry must be defined within the model if + * the spatial extension is to be used. */ /** diff --git a/src/sbml/packages/spatial/sbml/GeometryDefinition.h b/src/sbml/packages/spatial/sbml/GeometryDefinition.h index 2b75b11104..ed0eab58d1 100644 --- a/src/sbml/packages/spatial/sbml/GeometryDefinition.h +++ b/src/sbml/packages/spatial/sbml/GeometryDefinition.h @@ -40,7 +40,17 @@ * ------------------------------------------------------------------------ --> * * @class GeometryDefinition - * @sbmlbrief{spatial} TODO:Definition of the GeometryDefinition class. + * @sbmlbrief{spatial} A Geometry can specify a list of GeometryDefinitions. The + * GeometryDefinition is an abstract class that is the general term for the + * container which defines the concrete geometric constructs represented by the + * Geometry. Four types of GeometryDefinitions have been identified - + * AnalyticGeometry, SampledFieldGeometry, ParametricGeometry, CSGeometry + * (Constructed Solid Geometry). In addition, a MixedGeometry may combine + * elements of any of the other four basic types. These geometries are elaborated + * in the following sections. The definition of the GeometryDefinition element is + * displayed in figGeometryDefinition-uml. The spatial dimension of the + * GeometryDefinition must match the tokenspatialDimensions of the DomainType + * defined for the associated Domain. */ diff --git a/src/sbml/packages/spatial/sbml/InteriorPoint.h b/src/sbml/packages/spatial/sbml/InteriorPoint.h index 0c4c7ba6d6..a78aeeaac3 100644 --- a/src/sbml/packages/spatial/sbml/InteriorPoint.h +++ b/src/sbml/packages/spatial/sbml/InteriorPoint.h @@ -40,7 +40,18 @@ * ------------------------------------------------------------------------ --> * * @class InteriorPoint - * @sbmlbrief{spatial} TODO:Definition of the InteriorPoint class. + * @sbmlbrief{spatial} Each Domain can contain a ListOfInteriorPoints. The list + * of spatial points for a domain is interior to that domain. This list is + * optional for a Domain if it is the only Domain defined for its DomainType, but + * is required otherwise. + * + * For those geometric descriptions that can describe multiple disjoint domains + * belonging to the same tokendomainType, these interior points allow unambiguous + * identification of each domain. Formally, a single point would suffice, but in + * practice some tools (e.g. Smoldyn) require multiple points to handle + * non-convex volumes bounded by explicit surfaces. For discontinuous surfaces + * with the same domainType, the interior point identifies which domain is + * associated with which surface patch defined in the geometry definition. */ From e26bd3a6f26a081aee699da82239abe896e0fe8a Mon Sep 17 00:00:00 2001 From: Sarah Date: Thu, 16 Mar 2023 12:29:49 +0000 Subject: [PATCH 05/31] docs --- src/sbml/packages/spatial/sbml/MixedGeometry.h | 18 +++++++++++++++++- .../packages/spatial/sbml/OrdinalMapping.h | 5 ++++- .../packages/spatial/sbml/ParametricGeometry.h | 9 ++++++++- .../packages/spatial/sbml/ParametricObject.h | 5 ++++- src/sbml/packages/spatial/sbml/SampledField.h | 10 +++++++++- .../spatial/sbml/SampledFieldGeometry.h | 9 ++++++++- src/sbml/packages/spatial/sbml/SampledVolume.h | 12 +++++++++++- 7 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/sbml/packages/spatial/sbml/MixedGeometry.h b/src/sbml/packages/spatial/sbml/MixedGeometry.h index 5ff0d74c5a..2b19373c31 100644 --- a/src/sbml/packages/spatial/sbml/MixedGeometry.h +++ b/src/sbml/packages/spatial/sbml/MixedGeometry.h @@ -40,7 +40,23 @@ * ------------------------------------------------------------------------ --> * * @class MixedGeometry - * @sbmlbrief{spatial} TODO:Definition of the MixedGeometry class. + * @sbmlbrief{spatial} A MixedGeometry defines a Geometry constructed from a + * collection of various GeometryDefinition objects that together define the + * complete geometry for the Model. It has a child ListOfGeometryDefinitions + * object that behaves exactly the same as the ListOfGeometryDefinitions child of + * the Geometry, but instead of that collection of geometry definitions defining + * alternate geometries, or alternate ways to define one geometry, the collection + * of geometry definitions in a MixedGeometry together define a single space. For + * example, a MixedGeometry may contain a ParametricGeometry that defines the + * contours of a cell membrane, plus a CSGeometry that defines a sphere that + * models the nucleus of that cell. The definition of a MixedGeometry is shown in + * figmixedgeometry-uml. Its OrdinalMapping children define how those geometries + * overlap one another. + * + * Note that every child GeometryDefinition of a MixedGeometry must have an + * isActive ue of false. 'Active' geometries are a concept that applies only to + * the Model and its direct children, not to component geometries of a + * MixedGeometry. */ diff --git a/src/sbml/packages/spatial/sbml/OrdinalMapping.h b/src/sbml/packages/spatial/sbml/OrdinalMapping.h index 1b233d8400..2d9f2043c9 100644 --- a/src/sbml/packages/spatial/sbml/OrdinalMapping.h +++ b/src/sbml/packages/spatial/sbml/OrdinalMapping.h @@ -40,7 +40,10 @@ * ------------------------------------------------------------------------ --> * * @class OrdinalMapping - * @sbmlbrief{spatial} TODO:Definition of the OrdinalMapping class. + * @sbmlbrief{spatial} A OrdinalMapping defines an ordinal level for the various + * geometries that comprised this MixedGeometry. In this way, the overlap between + * them can be resolved cleanly. There must be exactly one OrdinalMapping for + * each child GeometryDefinition of a MixedGeometry. */ diff --git a/src/sbml/packages/spatial/sbml/ParametricGeometry.h b/src/sbml/packages/spatial/sbml/ParametricGeometry.h index 0821be5cd8..34b6ff8e3a 100644 --- a/src/sbml/packages/spatial/sbml/ParametricGeometry.h +++ b/src/sbml/packages/spatial/sbml/ParametricGeometry.h @@ -40,7 +40,14 @@ * ------------------------------------------------------------------------ --> * * @class ParametricGeometry - * @sbmlbrief{spatial} TODO:Definition of the ParametricGeometry class. + * @sbmlbrief{spatial} ParametricGeometry is a type of GeometryDefinition that + * parametrically defines geometric strucutures/domains. The ParametricGeometry + * element is defined with a SpatialPoints object and a listOfParametricObjects + * that is a collection of ParametricObjects. Each point in the SpatialPoints + * list is given an index, and those indices are used in the creation of each + * ParametricObject. There may be points whose indices are never used; this does + * not affect the ParametricGeometry. figParametricGeometry-uml shows the + * definition of the ParametricGeometry object. */ diff --git a/src/sbml/packages/spatial/sbml/ParametricObject.h b/src/sbml/packages/spatial/sbml/ParametricObject.h index c221c2c572..35bf1e5dd4 100644 --- a/src/sbml/packages/spatial/sbml/ParametricObject.h +++ b/src/sbml/packages/spatial/sbml/ParametricObject.h @@ -40,7 +40,10 @@ * ------------------------------------------------------------------------ --> * * @class ParametricObject - * @sbmlbrief{spatial} TODO:Definition of the ParametricObject class. + * @sbmlbrief{spatial} The ParametricObject element represents a single + * parametric geometry object. It contains a list of point indices from the + * parent ParametricGeometry's SpatialPoints, which collectively define the faces + * of the object. */ /** diff --git a/src/sbml/packages/spatial/sbml/SampledField.h b/src/sbml/packages/spatial/sbml/SampledField.h index 9a7ae58997..f759d4680d 100644 --- a/src/sbml/packages/spatial/sbml/SampledField.h +++ b/src/sbml/packages/spatial/sbml/SampledField.h @@ -40,7 +40,15 @@ * ------------------------------------------------------------------------ --> * * @class SampledField - * @sbmlbrief{spatial} TODO:Definition of the SampledField class. + * @sbmlbrief{spatial} A SampledField is a sampled scalar field such as an image + * or samples from a level set. The attributes of SampledField represent the + * specification of a sample dataset (the number of samples in x, y, z + * coordinates, data type of the sample representation, etc.) and the text child + * of the SampledField is the actual sampled data, defined in + * figsampledfield-uml. The purpose of a SampledField is to fill the Geometry + * with ues that can be used in math and/or in SampledFieldGeometry elements. + * Values are defined at lattice points within the Geometry, and are interpolated + * to fill the remainder of all off-lattice locations. */ /** diff --git a/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h b/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h index 466c3d29b1..dc3337ded4 100644 --- a/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h +++ b/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h @@ -40,7 +40,14 @@ * ------------------------------------------------------------------------ --> * * @class SampledFieldGeometry - * @sbmlbrief{spatial} TODO:Definition of the SampledFieldGeometry class. + * @sbmlbrief{spatial} SampledFieldGeometry is a type of GeometryDefinition that + * defines a sampled image-based geometry or a geometry based on samples from a + * level set. SampledFieldGeometry is defined by referencing a SampledField from + * the ListOfSampledFields on the Geometry element that specifies the sampled + * image, together with a a list of SampledVolumes that represent the volumetric + * domains as sampled image regions. figSampledFieldGeometry-uml shows the + * definition of the SampledFieldGeometry object. It may be used for geometries + * of any dimension. */ diff --git a/src/sbml/packages/spatial/sbml/SampledVolume.h b/src/sbml/packages/spatial/sbml/SampledVolume.h index 603bd9256d..0e0886640a 100644 --- a/src/sbml/packages/spatial/sbml/SampledVolume.h +++ b/src/sbml/packages/spatial/sbml/SampledVolume.h @@ -40,7 +40,17 @@ * ------------------------------------------------------------------------ --> * * @class SampledVolume - * @sbmlbrief{spatial} TODO:Definition of the SampledVolume class. + * @sbmlbrief{spatial} A SampledVolume represents an inter of the sampled field + * that constitutes one or more contiguous regions. A SampledVolume is defined + * for each volumetric (3-dimensional) Domain in the Geometry. Volumes are + * defined as regions within the referenced image that match a particular pixel + * ue (sampledValue) or that match a range of pixel ues (minValue and maxValue). + * A given SampledVolume must define for itself either a single ue or a range of + * ues to which it applies, but not both. Within a ListOfSampledVolumes, there + * must be at most one SampledVolume that corresponds to any given pixel ue. That + * is, any given pixel ue may only appear as the sampledVolume of a single + * SampledVolume, or be between the minValue and maxValue (inclusive) of a single + * SampledVolume. It has the following attributes: */ From df44a348f8d2e3efc6caa651e63a94e0710467fa Mon Sep 17 00:00:00 2001 From: Sarah Date: Thu, 16 Mar 2023 12:38:55 +0000 Subject: [PATCH 06/31] docs --- src/sbml/packages/spatial/sbml/SpatialPoints.h | 6 +++++- .../packages/spatial/sbml/SpatialSymbolReference.h | 11 ++++++++++- .../packages/spatial/sbml/TransformationComponent.h | 4 +++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/sbml/packages/spatial/sbml/SpatialPoints.h b/src/sbml/packages/spatial/sbml/SpatialPoints.h index ef4f21d485..dfd2bc81d2 100644 --- a/src/sbml/packages/spatial/sbml/SpatialPoints.h +++ b/src/sbml/packages/spatial/sbml/SpatialPoints.h @@ -40,7 +40,11 @@ * ------------------------------------------------------------------------ --> * * @class SpatialPoints - * @sbmlbrief{spatial} TODO:Definition of the SpatialPoints class. + * @sbmlbrief{spatial} The SpatialPoints element represents the set of points to + * be used as vertices in the ParametricGeometry. In essence, the SpatialPoints + * defines a lattice on which each ParametricObject is to be drawn. There may be + * unused points in the list if no ParametricObject ever uses that index to draw + * its shape. */ /** diff --git a/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h b/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h index 5a2d01b149..3232ac67a4 100644 --- a/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h +++ b/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h @@ -40,7 +40,16 @@ * ------------------------------------------------------------------------ --> * * @class SpatialSymbolReference - * @sbmlbrief{spatial} TODO:Definition of the SpatialSymbolReference class. + * @sbmlbrief{spatial} A Parameter is extended with a SpatialSymbolReference + * element, when a symbol from the defined spatial geometry (id of any element + * contained in Geometry) is required to be used in the SBML core model. + * Typically, the SpatialSymbolReference is used to represent the coordinate + * components defined in the Geometry's listOfCoordinateComponents. For example, + * if the Geometry is defined in a 2-dimensional Cartesian coordinate system with + * X and Y defined as coordinate components, two Parameters (one each for + * CoordinateComponents X and Y) are created in the model. The ue of the + * parameter is not required to be set. For each of these parameters, a + * SpatialSymbolReference object is created. */ diff --git a/src/sbml/packages/spatial/sbml/TransformationComponent.h b/src/sbml/packages/spatial/sbml/TransformationComponent.h index 8ffd123ff2..588f4f1154 100644 --- a/src/sbml/packages/spatial/sbml/TransformationComponent.h +++ b/src/sbml/packages/spatial/sbml/TransformationComponent.h @@ -40,7 +40,9 @@ * ------------------------------------------------------------------------ --> * * @class TransformationComponent - * @sbmlbrief{spatial} TODO:Definition of the TransformationComponent class. + * @sbmlbrief{spatial} The TransformationComponent element represents an affine + * transformation that can be applied to a CSGNode. This element has the + * following two attributes: */ From 973c0079a1f40d1e9bdff1b96f2b27de46ee5ef7 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 16 Mar 2023 14:06:40 +0100 Subject: [PATCH 07/31] - add distrib to docs --- docs/src/common-text/libsbml-group-distrib-intro.html.in | 5 +++++ docs/src/common-text/pkg-marker-distrib.html | 2 ++ docs/src/common-text/pkg-marker-distrib.txt | 2 ++ docs/src/doxygen-config-common.txt.cmake | 4 ++++ docs/src/doxygen-layout-cpp.xml | 3 ++- docs/src/libsbml-groups.txt | 9 ++++++++- 6 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 docs/src/common-text/libsbml-group-distrib-intro.html.in create mode 100644 docs/src/common-text/pkg-marker-distrib.html create mode 100644 docs/src/common-text/pkg-marker-distrib.txt diff --git a/docs/src/common-text/libsbml-group-distrib-intro.html.in b/docs/src/common-text/libsbml-group-distrib-intro.html.in new file mode 100644 index 0000000000..3642590f32 --- /dev/null +++ b/docs/src/common-text/libsbml-group-distrib-intro.html.in @@ -0,0 +1,5 @@ +

The libSBML “distrib” extension implements support for the SBML +Level 3 Distributions ("distrib") package. It can be used +in SBML Level 3 Version 1 and Version 2 documents. + +

Introduction

diff --git a/docs/src/common-text/pkg-marker-distrib.html b/docs/src/common-text/pkg-marker-distrib.html new file mode 100644 index 0000000000..627bf9c648 --- /dev/null +++ b/docs/src/common-text/pkg-marker-distrib.html @@ -0,0 +1,2 @@ +distrib + diff --git a/docs/src/common-text/pkg-marker-distrib.txt b/docs/src/common-text/pkg-marker-distrib.txt new file mode 100644 index 0000000000..24bbbd6c8d --- /dev/null +++ b/docs/src/common-text/pkg-marker-distrib.txt @@ -0,0 +1,2 @@ +[SBML 'distrib' package] + diff --git a/docs/src/doxygen-config-common.txt.cmake b/docs/src/doxygen-config-common.txt.cmake index ce15f4a7d5..ff0269195c 100644 --- a/docs/src/doxygen-config-common.txt.cmake +++ b/docs/src/doxygen-config-common.txt.cmake @@ -576,6 +576,10 @@ INPUT = \ ../../src/sbml/packages/spatial/extension \ ../../src/sbml/packages/spatial/sbml \ ../../src/sbml/packages/spatial/validator \ + ../../src/sbml/packages/distrib/common \ + ../../src/sbml/packages/distrib/extension \ + ../../src/sbml/packages/distrib/sbml \ + ../../src/sbml/packages/distrib/validator \ ../../src/sbml/packages/multi/common \ ../../src/sbml/packages/multi/extension \ ../../src/sbml/packages/multi/sbml \ diff --git a/docs/src/doxygen-layout-cpp.xml b/docs/src/doxygen-layout-cpp.xml index ab8e098fbc..cf89c461fa 100644 --- a/docs/src/doxygen-layout-cpp.xml +++ b/docs/src/doxygen-layout-cpp.xml @@ -7,13 +7,14 @@ + - + diff --git a/docs/src/libsbml-groups.txt b/docs/src/libsbml-groups.txt index 878cd4c4be..af68189bc5 100644 --- a/docs/src/libsbml-groups.txt +++ b/docs/src/libsbml-groups.txt @@ -10,6 +10,13 @@ */ + +/** @defgroup distrib Distributions + +@htmlinclude libsbml-group-distrib-intro.html + +*/ + /** @defgroup fbc Flux Balance Constraints @htmlinclude libsbml-group-fbc-intro.html @@ -46,7 +53,7 @@ */ -/** @defgroup spatial Spatial +/** @defgroup spatial Spatial Processes @htmlinclude libsbml-group-spatial-intro.html From 82f5a42800e08b0f989f527608dca1d17a542866 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 16 Mar 2023 14:41:11 +0100 Subject: [PATCH 08/31] - fix nav-items going to negative --- docs/src/css/libsbml-doxygen-navtree.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/css/libsbml-doxygen-navtree.css b/docs/src/css/libsbml-doxygen-navtree.css index 950641efbc..48929eb9db 100644 --- a/docs/src/css/libsbml-doxygen-navtree.css +++ b/docs/src/css/libsbml-doxygen-navtree.css @@ -1,17 +1,17 @@ #nav-tree .children_ul { - margin:0; + /* margin:0; */ padding:4px; } #nav-tree ul { list-style:none outside none; - margin:0px; + /* margin:0px; */ padding:0px; } #nav-tree li { white-space:nowrap; - margin:0px; + /* margin:0px; */ padding:0px; } @@ -62,7 +62,7 @@ #nav-tree .item { margin:0px; padding:0px; - margin-left: -12px; + /* margin-left: -12px; */ } #nav-tree { From a2543283c70a9f874578f19e499f3ebdd59f86b4 Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 17 Mar 2023 14:21:02 +0000 Subject: [PATCH 09/31] docs for distrib classes --- src/sbml/packages/distrib/sbml/DistribBase.h | 15 +++++++++++- .../packages/distrib/sbml/UncertParameter.h | 7 +++++- src/sbml/packages/distrib/sbml/UncertSpan.h | 24 +++++++++++++++++-- src/sbml/packages/distrib/sbml/Uncertainty.h | 23 +++++++++++++++++- 4 files changed, 64 insertions(+), 5 deletions(-) diff --git a/src/sbml/packages/distrib/sbml/DistribBase.h b/src/sbml/packages/distrib/sbml/DistribBase.h index 33b453d876..d3654dd899 100644 --- a/src/sbml/packages/distrib/sbml/DistribBase.h +++ b/src/sbml/packages/distrib/sbml/DistribBase.h @@ -40,7 +40,20 @@ * ------------------------------------------------------------------------ --> * * @class DistribBase - * @sbmlbrief{distrib} TODO:Definition of the DistribBase class. + * @sbmlbrief{spatial} The DistribBase class is an abstract base class which is + * the parent class for every class in this distrib package. Its purpose is to + * replicate within the distrib package an important change between threeone and + * threetwo: the addition of an optional id and name attribute to SBase. By + * adding these attributes here, distribshort may be used completely exchangeably + * between Level~3 Version~1 and Level~3 Version~2 documents without any other + * modifications. The meaning of these attributes is identical, regardless of the + * Level/Version of the document in which they appear. + * + * The id attribute is of type SId, and must be unique among other ids in the SId + * namespace in the parent Model, and has no mathematical meaning, unless stated + * otherwise in the definition of that object. The name attribute is of type + * string, and is provided to allow the user to define a human-readable label for + * the object. It has no uniqueness restrictions. */ diff --git a/src/sbml/packages/distrib/sbml/UncertParameter.h b/src/sbml/packages/distrib/sbml/UncertParameter.h index a86373fecb..b720c2c791 100644 --- a/src/sbml/packages/distrib/sbml/UncertParameter.h +++ b/src/sbml/packages/distrib/sbml/UncertParameter.h @@ -40,7 +40,12 @@ * ------------------------------------------------------------------------ --> * * @class UncertParameter - * @sbmlbrief{distrib} TODO:Definition of the UncertParameter class. + * @sbmlbrief{spatial} Each UncertParameter defines one uncertainty statistic + * about the parent element. It has one required attribute type of type + * UncertKind which defines what statistic it describes (i.e. mean, + * standardDeviation, distribution, etc.). Its other attributes (ue, var, units, + * and definitionURL), and children (math and listOfUncertParameters) are + * all optional, each useable according to which type it is. */ /** diff --git a/src/sbml/packages/distrib/sbml/UncertSpan.h b/src/sbml/packages/distrib/sbml/UncertSpan.h index 043b823e33..901a4a7f6b 100644 --- a/src/sbml/packages/distrib/sbml/UncertSpan.h +++ b/src/sbml/packages/distrib/sbml/UncertSpan.h @@ -40,8 +40,28 @@ * ------------------------------------------------------------------------ --> * * @class UncertSpan - * @sbmlbrief{distrib} TODO:Definition of the UncertSpan class. - */ + * @sbmlbrief{spatial} The UncertSpan class defines a span of ues that define an + * uncertainty statistic such as confidence inter or range. It inherits from + * UncertParameter, and adds four optional attributes, varLower and varUpper, of + * type SIdRef, and ueLower and ueUpper, of type double. Exactly one of the + * attributes varLower and ueLower may be defined, and exactly one of the + * attributes varUpper and ueUpper may be defined. If no attributes are defined, + * the parameters of the span are undefined. If only one attribute is defined + * (one of the upper or lower attributes), that aspect of the span is defined, + * and the other end is undefined. The span is fully defined if two attributes + * (one lower and one upper) are defined. + * + * The ue of the lower attribute (whichever is defined) must be lesser or equal + * to the ue of the upper attribute (whichever is defined), at the initial + * conditions of the model. The Uncertainty element cannot affect the core + * mathematics of an SBML model, but if it is used in a mathematical context + * during simulation of the model, this restriction on the attribute ues must be + * maintained, or the UncertSpan object as a whole will be undefined. + * + * Like the units attribute on an UncertParameter, the units attribute is + * provided if ueUpper and/or ueLower is defined. The units on both the upper and + * lower ends of the span must match each other, if defined. The units for span + * ends defined by reference may be obtained from the referenced SBML element. */ #ifndef UncertSpan_H__ diff --git a/src/sbml/packages/distrib/sbml/Uncertainty.h b/src/sbml/packages/distrib/sbml/Uncertainty.h index 61c9eb5546..233178409f 100644 --- a/src/sbml/packages/distrib/sbml/Uncertainty.h +++ b/src/sbml/packages/distrib/sbml/Uncertainty.h @@ -40,7 +40,28 @@ * ------------------------------------------------------------------------ --> * * @class Uncertainty - * @sbmlbrief{distrib} TODO:Definition of the Uncertainty class. + * @sbmlbrief{spatial} The Uncertainty class is a collection of zero or more + * statistical measures related to the uncertainty of the parent SBML element. It + * may only contain one of each type of measurement, which means that each of its + * UncertParameter children must have a unique type attribute for every ue but + * externalParameter. Each UncertParameter child with a type of externalParameter + * must, in turn, have a unique definitionURL ue. If a given SBML element has + * multiple measures of the same type (for example, as measured from different + * sources or different experiments), it should be given multiple Uncertainty + * children. Each Uncertainty child must be a unique set of statistical measures. + * + * These statistical measures do not numerically affect simulation of the model. + * They are, in essence, a controlled annotation format specifically designed for + * this sort of information. Tools may use this information as they wish, just as + * they can with other annotation information. + * + * Note that for elements that change in ue over time, the described uncertainty + * applies only to the element's initial state, and not to how it changes in + * time. For typical simulations, this means the element's initial assignment. + * + * The child UncertParameter children are named according to their class, so any + * UncertSpan child will have the element name uncertSpan, and any + * UncertParameter base class child will have the element name uncertParameter. */ From 66bac288c3b8caef9887c5ebaf51429614386e11 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 20 Mar 2023 16:51:10 -0700 Subject: [PATCH 10/31] Update information for spatial and distrib. --- .../libsbml-group-distrib-intro.html.in | 37 +++++++++++++++++++ .../libsbml-group-spatial-intro.html.in | 36 ++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/docs/src/common-text/libsbml-group-distrib-intro.html.in b/docs/src/common-text/libsbml-group-distrib-intro.html.in index 3642590f32..7626719129 100644 --- a/docs/src/common-text/libsbml-group-distrib-intro.html.in +++ b/docs/src/common-text/libsbml-group-distrib-intro.html.in @@ -3,3 +3,40 @@ Level 3 Distributions ("distrib") package. It can be used in SBML Level 3 Version 1 and Version 2 documents.

Introduction

+The Distributions package (also known as 'distrib') provides an extension to SBML Level 3 that extends MathML to allow draws from distributions, and also provides the ability to annotate model elements with information about the distribution their values were drawn from. + +The Distributions package adds support to SBML for sampling from a probability distribution. In particular the following are in scope: +
    +
  • Sampling from a univariate continuous distribution
  • +
  • Sampling from a univariate discrete distribution
  • +
  • Specification of descriptive statistics (mean, standard deviation, standard error, etc.)
  • +
+ +

Authors

+ +The authors of the SBML Level 3 Distributions specification are Lucian P Smith, Stuart L Moodie, Frank Bergmann, Colin Gillespie, Sarah Keating, Matthias König, Chris Myers, Maciej J Swat, Darren Wilkinson, and Michael Hucka. + +

The specification for this SBML package

+ +

This API documentation for libSBML does not +provide a complete explanation of the SBML Level 3 Distributions (“distrib”) package. If you are developing software +that uses “distrib”, you are strongly urged to read the actual +specification for the package. A link to the specification document current +is provided below, along with a link to the page of known issues (if any). + + + + + + + + + +
Specification for SBML Level 3 + Distributions package, Version 1
Specification publicationKnown issues
+ + Hierarchical Model Composition package, Version 1 Release 1 + + + Errata page +
diff --git a/docs/src/common-text/libsbml-group-spatial-intro.html.in b/docs/src/common-text/libsbml-group-spatial-intro.html.in index 6aea31a576..8c538edeb9 100644 --- a/docs/src/common-text/libsbml-group-spatial-intro.html.in +++ b/docs/src/common-text/libsbml-group-spatial-intro.html.in @@ -3,3 +3,39 @@ Level 3 Spatial ("spatial") package. It can be used in SBML Level 3 Version 1 and Version 2 documents.

Introduction

+ +

There is no better test of our understanding of a biological system than to create a mechanistic model of that system and show that it possesses all known properties of the system -- i.e., that it is consistent with all measurements or observations of the system in hand. However, the creation of such models is even more useful when a system is not already understood, because the model may suggest mechanisms by which known behaviors are accomplished, or predict behaviors not previously expected. Extensive work has been done on the creation of methods for simulating biochemical systems, including the development of languages, such as the Systems Biology Markup anguage (SBML), for saving and exchanging the definition of the system being simulated and the simulation parameters used.

+ +

Historically, most tools for biochemical simulations either did not consider possible spatial relationships or compartmentalization of system components, or used a compartmental modeling approach (Jacquez et al., 1985) in which spatial organization is approximated by a set of compartments (e.g. membrane-bound organelles in a cell) containing well-mixed populations of molecules. However, a growing number of modeling and simulation tools do permit specification of the size, shape and positions of compartments and the initial spatial distributions of components (typically referred to as a 'geometry' definition). While SBML Level 3 Core has explicit support for multi-compartmental modeling, it does not have a standardized mechanism to store or exchange geometries. We address this deficit here through the definition of a package of extensions to SBML termed SBML spatial.

+ +

Saving geometries in a standardized way is useful to ensure that the definition is complete (which is important when, for example, provided as part of supplementary information for published studies), and to permit comparison of simulations of the same spatial system using different simulation tools, to enable simulations of a new biochemical model using the same geometry as a previous model (or vice versa). Historically, the creation of a geometry has been done (often through painstaking manual work) by the same investigators who defined a biochemical model and performed a simulation. The advent of SBML has permitted a partial division of this labor, by enabling databases of biochemical models, such as the BioModels database, to be created. Building on this theme, having a mechanism to exchange geometries will enable an open access 'marketplace' in which some investigators focus on the creation of well-characterized geometries (and distribute them through databases or repositories) enabling others to focus on biochemical model creation and/or performance of simulations. These geometries, however, typically need to be more than raw images. To be most broadly useful across different modeling approaches, they need, for example, to define explicit watertight boundaries for cells and intracellular compartments and contain statistically accurate estimates of concentrations of components at various locations. This can be accomplished for individual images by hand segmentation or automated segmentation. An alternative is to produce synthetic geometries that are drawn from generative models of cell shape and organization learned from many images. In both cases, the availability of well-characterized geometries for examples of different cell types (and multiple cells of each type) can enhance the use of simulation methods.

+ + +

Authors

+ +The authors of the SBML Level, 3 Spatial package are James C. Schaff, Anuradha Lakshminarayana, Robert F. Murphy, Frank T. Bergmann, Akira Funahashi, Devin P. Sullivan, and Lucian P. Smith. + +

The specification for this SBML package

+ +

This API documentation for libSBML does not +provide a complete explanation of the SBML Level 3 Spatial (“spatial”) package. If you are developing software +that uses “spatial”, you are strongly urged to read the actual +specification for the package. A link to the specification document current +is provided below, along with a link to the page of known issues (if any). + + + + + + + + + +
Specification for SBML Level 3 + Spatial, version 1.
Specification publicationKnown issues
+ + SBML level 3 package: spatial processes,version 1, release 1 + + + Errata page +
From 489123d1840f89f19f56908269ca485685a8b588 Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 22 Mar 2023 14:37:08 +0000 Subject: [PATCH 11/31] started docs of new ast funcs --- src/sbml/math/ASTNode.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h index e43a4bfa8c..4cbfd7c350 100644 --- a/src/sbml/math/ASTNode.h +++ b/src/sbml/math/ASTNode.h @@ -2263,9 +2263,15 @@ setValue(value, 0); /** @endcond */ - /* returns true if astnodes are exactly the same - * so 'a+4' == 'a+4' - * but 'a+4' != '4+a' +/** + * This function allows two ASTNodes to be compared for exact equivilance. + * It returns a boolean - true if the ASTNodes are exactly the same, false otherwise. + * + * Given that 'a+4' == 'a+4' this function will return true if two ASTNodes with + * PLUS as their operator and "a" as the left child and "4" as the right child are compared + * + * Conversely 'a+4' != '4+a' i.e. + * the function will return false if the left and right children do not match. */ LIBSBML_EXTERN bool exactlyEqual(const ASTNode& rhs); From 2a685576adf7d63d94c7afac4241b41627fd5ccc Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 23 Mar 2023 12:02:05 +0100 Subject: [PATCH 12/31] - bump version to 5.20.0 --- VERSION.txt | 2 +- configure | 20 ++++++++++---------- src/sbml/common/libsbml-version.h | 6 +++--- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index cb8458f517..0af471c5ca 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.19.7 +5.20.0 diff --git a/configure b/configure index cdb0e24994..8270f1cb22 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libSBML 5.19.7. +# Generated by GNU Autoconf 2.69 for libSBML 5.20.0. # # Report bugs to . # @@ -735,8 +735,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libSBML' PACKAGE_TARNAME='libsbml' -PACKAGE_VERSION='5.19.7' -PACKAGE_STRING='libSBML 5.19.7' +PACKAGE_VERSION='5.20.0' +PACKAGE_STRING='libSBML 5.20.0' PACKAGE_BUGREPORT='libsbml-team@googlegroups.com' PACKAGE_URL='http://sbml.org/Software/libSBML' @@ -1629,7 +1629,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libSBML 5.19.7 to adapt to many kinds of systems. +\`configure' configures libSBML 5.20.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1695,7 +1695,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libSBML 5.19.7:";; + short | recursive ) echo "Configuration of libSBML 5.20.0:";; esac cat <<\_ACEOF @@ -1851,7 +1851,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libSBML configure 5.19.7 +libSBML configure 5.20.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2570,7 +2570,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libSBML $as_me 5.19.7, which was +It was created by libSBML $as_me 5.20.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2960,7 +2960,7 @@ ac_config_headers="$ac_config_headers src/sbml/common/libsbml-package.h" ac_config_headers="$ac_config_headers src/sbml/common/libsbml-namespace.h" -LIBSBML_VERSION_NUMERIC=51903 +LIBSBML_VERSION_NUMERIC=52000 @@ -27754,7 +27754,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libSBML $as_me 5.19.7, which was +This file was extended by libSBML $as_me 5.20.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27817,7 +27817,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libSBML config.status 5.19.7 +libSBML config.status 5.20.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/src/sbml/common/libsbml-version.h b/src/sbml/common/libsbml-version.h index a58aa37203..79e51dfaaf 100644 --- a/src/sbml/common/libsbml-version.h +++ b/src/sbml/common/libsbml-version.h @@ -51,7 +51,7 @@ * * A version string of the form "1.2.3". */ -#define LIBSBML_DOTTED_VERSION "5.19.7" +#define LIBSBML_DOTTED_VERSION "5.20.0" /** @@ -62,7 +62,7 @@ * libSBML is released, making it easy to use less-than and greater-than * comparisons when testing versions numbers. */ -#define LIBSBML_VERSION 51903 +#define LIBSBML_VERSION 52000 /** @@ -70,7 +70,7 @@ * * The numeric version as a string: version 1.2.3 becomes "10203". */ -#define LIBSBML_VERSION_STRING "51903" +#define LIBSBML_VERSION_STRING "52000" LIBSBML_CPP_NAMESPACE_BEGIN From 552a1c158d418a62c1535c67e99603d449f03bac Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 23 Mar 2023 12:07:17 +0100 Subject: [PATCH 13/31] - mark spatial as stable package --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7b8407299..b4a38cea42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,7 @@ option(WITH_STABLE_PACKAGES "Compile libSBML with all stable packages." OFF) option(WITH_ALL_PACKAGES "Compile libSBML with all packages." OFF) if (WITH_ALL_PACKAGES) - set(_EXPERIMENTAL_PACKGES "arrays;dyn;spatial;REQUIREDELEMENTS") + set(_EXPERIMENTAL_PACKGES "arrays;dyn;REQUIREDELEMENTS") foreach(package ${_EXPERIMENTAL_PACKGES}) string(TOUPPER ${package} package_upper) string(CONCAT package_option "ENABLE_" ${package_upper}) @@ -201,7 +201,7 @@ if (WITH_ALL_PACKAGES) endif(WITH_ALL_PACKAGES) if (WITH_STABLE_PACKAGES) - set(_STABLE_PACKGES "comp;distrib;fbc;groups;layout;multi;qual;render") + set(_STABLE_PACKGES "comp;distrib;fbc;groups;layout;multi;qual;render;spatial") foreach(package ${_STABLE_PACKGES}) string(TOUPPER ${package} package_upper) string(CONCAT package_option "ENABLE_" ${package_upper}) From 9bd98bce3aa010b6c49351423d1c468afad6efd9 Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 24 Mar 2023 09:00:25 +0000 Subject: [PATCH 14/31] start on xml node from file --- examples/c++/setAnnotation.cpp | 25 +------ src/sbml/xml/XMLNode.cpp | 28 +++----- src/sbml/xml/XMLNode.h | 26 +++++++ src/sbml/xml/test/TestRunner.c | 70 ++++++++++++++----- src/sbml/xml/test/TestXMLNode.cpp | 38 +++++----- .../xml/test/test-data/just_annotation.xml | 22 ++++++ 6 files changed, 131 insertions(+), 78 deletions(-) create mode 100644 src/sbml/xml/test/test-data/just_annotation.xml diff --git a/examples/c++/setAnnotation.cpp b/examples/c++/setAnnotation.cpp index 482842d7d5..57471f4631 100644 --- a/examples/c++/setAnnotation.cpp +++ b/examples/c++/setAnnotation.cpp @@ -11,29 +11,6 @@ using namespace std; LIBSBML_CPP_NAMESPACE_USE -XMLNode* parseAnnotation(const std::string& annotationFile) -{ - // read file into memory - FILE* file = fopen(annotationFile.c_str(), "r"); - fseek(file, 0, SEEK_END); - long length = ftell(file); - - fseek(file, 0, SEEK_SET); - char* data = new char[length + 1]; - - // fill data with zeros - memset(data, 0, length + 1); - - fread(data, 1, length, file); - fclose(file); - data[length] = '\0'; - - // parse the string - XMLNode* xmlnode = XMLNode::convertStringToXMLNode(data); - delete[] data; - return xmlnode; -} - bool setAnnotation(const std::string& sbmlFile, const std::string& metaId, const std::string& annotationFile, const std::string& outputFile) { @@ -52,7 +29,7 @@ bool setAnnotation(const std::string& sbmlFile, const std::string& metaId, return false; } - XMLNode* annotation = parseAnnotation(annotationFile); + XMLNode* annotation = XMLNode::readXMLNodeFromFile(annotationFile); if (!annotation) { cerr << "the annotation could not be parsed from file: " << annotationFile << "." << std::endl; diff --git a/src/sbml/xml/XMLNode.cpp b/src/sbml/xml/XMLNode.cpp index 1e98a3ce3e..9d0b95e1ea 100644 --- a/src/sbml/xml/XMLNode.cpp +++ b/src/sbml/xml/XMLNode.cpp @@ -48,6 +48,7 @@ #include #include #include +#include /** @endcond */ #include @@ -675,28 +676,17 @@ XMLNode* XMLNode::readXMLNodeFromFile(const std::string& filename) { XMLNode * xmlnode = NULL; - if (util_file_exists(filename.c_str())) + if (!util_file_exists(filename.c_str())) { - // read file into memory - FILE* file = fopen(filename.c_str(), "r"); - fseek(file, 0, SEEK_END); - long length = ftell(file); - - fseek(file, 0, SEEK_SET); - char* data = new char[length + 1]; - - // fill data with zeros - memset(data, 0, length + 1); + return xmlnode; + } + XMLErrorLog * log = new XMLErrorLog(); - fread(data, 1, length, file); - fclose(file); - data[length] = '\0'; + XMLInputStream stream(filename.c_str(), true, "", log); + if (!stream.peek().isStart()) + return NULL; - // parse the string - xmlnode = XMLNode::convertStringToXMLNode(data); - delete[] data; - } - return xmlnode; + return new XMLNode(stream); } /** @cond doxygenLibsbmlInternal */ diff --git a/src/sbml/xml/XMLNode.h b/src/sbml/xml/XMLNode.h index 234d0e6fa2..92ae443f5a 100644 --- a/src/sbml/xml/XMLNode.h +++ b/src/sbml/xml/XMLNode.h @@ -527,6 +527,32 @@ class LIBLAX_EXTERN XMLNode : public XMLToken static XMLNode* convertStringToXMLNode(const std::string& xmlstr, const XMLNamespaces* xmlns = NULL); + + /** + * Returns an XMLNode which is readfrom a file containing XML + * content. + * + * The XML namespace must be defined using argument @p xmlns if the + * corresponding XML namespace attribute is not part of the file of the + * first argument. + * + * @param filename string name of file to be read to a XML node. + * @param xmlns XMLNamespaces the namespaces to set (default value is @c NULL). + * + * @note The caller owns the returned XMLNode and is reponsible for + * deleting it. The returned XMLNode object is a dummy root (container) + * XMLNode if the top-level element in the given XML string is NOT + * <html>, <body>, + * <annotation>, or <notes>. In + * the dummy root node, each top-level element in the given XML string is + * contained as a child XMLNode. XMLToken::isEOF() can be used to + * identify if the returned XMLNode object is a dummy node. + * + * @return a XMLNode which is read from file @p filename. If the + * conversion failed, this method returns @c NULL. + * + * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~ + */ static XMLNode* readXMLNodeFromFile(const std::string& filename); diff --git a/src/sbml/xml/test/TestRunner.c b/src/sbml/xml/test/TestRunner.c index a93a1112d7..c9a98ae07a 100644 --- a/src/sbml/xml/test/TestRunner.c +++ b/src/sbml/xml/test/TestRunner.c @@ -66,26 +66,64 @@ Suite *create_suite_XMLOutputStream (void); Suite *create_suite_XMLAttributes_C (void); Suite *create_suite_XMLExceptions (void); +/** + * Global. + * + * Declared extern in TestAnnotation suite. + */ +char *TestDataDirectory; + + +/** + * Sets TestDataDirectory for the the TestAnnotation suite. + * + * For Automake's distcheck target to work properly, TestDataDirectory must + * begin with the value of the environment variable SRCDIR. + */ +void +setTestDataDirectory (void) +{ + char *srcdir = getenv("srcdir"); + size_t length = (srcdir == NULL) ? 0 : strlen(srcdir); + + + /** + * strlen("/test-data/") = 11 + 1 (for NULL) = 12 + */ + TestDataDirectory = (char *) safe_calloc( length + 12, sizeof(char) ); + + if (srcdir != NULL) + { + strcpy(TestDataDirectory, srcdir); + strcat(TestDataDirectory, "/"); + } + + strcat(TestDataDirectory, "test-data/"); +} + + int main (int argc, char* argv[]) { int num_failed = 0; - SRunner *runner = srunner_create(create_suite_XMLAttributes()); - srunner_add_suite(runner, create_suite_CopyAndClone()); - - srunner_add_suite(runner, create_suite_XMLNamespaces()); - srunner_add_suite(runner, create_suite_XMLTriple()); - srunner_add_suite(runner, create_suite_XMLToken()); - srunner_add_suite(runner, create_suite_XMLToken_newSetters()); - srunner_add_suite(runner, create_suite_XMLNode()); - srunner_add_suite(runner, create_suite_XMLNode_newSetters()); - srunner_add_suite(runner, create_suite_XMLError()); - srunner_add_suite(runner, create_suite_XMLError_C()); - srunner_add_suite(runner, create_suite_XMLErrorLog()); - srunner_add_suite(runner, create_suite_XMLInputStream()); - srunner_add_suite(runner, create_suite_XMLOutputStream()); - srunner_add_suite(runner, create_suite_XMLAttributes_C()); - srunner_add_suite(runner, create_suite_XMLExceptions()); + setTestDataDirectory(); + SRunner *runner = srunner_create(create_suite_XMLNode()); + //SRunner *runner = srunner_create(create_suite_XMLAttributes()); + //srunner_add_suite(runner, create_suite_CopyAndClone()); + + //srunner_add_suite(runner, create_suite_XMLNamespaces()); + //srunner_add_suite(runner, create_suite_XMLTriple()); + //srunner_add_suite(runner, create_suite_XMLToken()); + //srunner_add_suite(runner, create_suite_XMLToken_newSetters()); + //srunner_add_suite(runner, create_suite_XMLNode()); + //srunner_add_suite(runner, create_suite_XMLNode_newSetters()); + //srunner_add_suite(runner, create_suite_XMLError()); + //srunner_add_suite(runner, create_suite_XMLError_C()); + //srunner_add_suite(runner, create_suite_XMLErrorLog()); + //srunner_add_suite(runner, create_suite_XMLInputStream()); + //srunner_add_suite(runner, create_suite_XMLOutputStream()); + //srunner_add_suite(runner, create_suite_XMLAttributes_C()); + //srunner_add_suite(runner, create_suite_XMLExceptions()); if (argc > 1 && !strcmp(argv[1], "-nofork")) { diff --git a/src/sbml/xml/test/TestXMLNode.cpp b/src/sbml/xml/test/TestXMLNode.cpp index 7a3cc95ffc..0ed977b140 100644 --- a/src/sbml/xml/test/TestXMLNode.cpp +++ b/src/sbml/xml/test/TestXMLNode.cpp @@ -1646,25 +1646,25 @@ create_suite_XMLNode (void) Suite *suite = suite_create("XMLNode"); TCase *tcase = tcase_create("XMLNode"); - tcase_add_test( tcase, test_XMLNode_getIndex ); - tcase_add_test( tcase, test_XMLNode_hasChild ); - tcase_add_test( tcase, test_XMLNode_getChildForName ); - tcase_add_test( tcase, test_XMLNode_equals ); - tcase_add_test( tcase, test_XMLNode_create ); - tcase_add_test( tcase, test_XMLNode_createFromToken ); - tcase_add_test( tcase, test_XMLNode_createElement ); - tcase_add_test( tcase, test_XMLNode_getters ); - tcase_add_test( tcase, test_XMLNode_convert ); - tcase_add_test( tcase, test_XMLNode_convert_dummyroot ); - tcase_add_test( tcase, test_XMLNode_insert ); - tcase_add_test( tcase, test_XMLNode_remove ); - tcase_add_test( tcase, test_XMLNode_namespace_add ); - tcase_add_test( tcase, test_XMLNode_namespace_get ); - tcase_add_test( tcase, test_XMLNode_namespace_remove ); - tcase_add_test( tcase, test_XMLNode_namespace_remove_by_prefix ); - tcase_add_test( tcase, test_XMLNode_namespace_set_clear ); - tcase_add_test( tcase, test_XMLNode_attribute_add_remove); - tcase_add_test( tcase, test_XMLNode_attribute_set_clear); + //tcase_add_test( tcase, test_XMLNode_getIndex ); + //tcase_add_test( tcase, test_XMLNode_hasChild ); + //tcase_add_test( tcase, test_XMLNode_getChildForName ); + //tcase_add_test( tcase, test_XMLNode_equals ); + //tcase_add_test( tcase, test_XMLNode_create ); + //tcase_add_test( tcase, test_XMLNode_createFromToken ); + //tcase_add_test( tcase, test_XMLNode_createElement ); + //tcase_add_test( tcase, test_XMLNode_getters ); + //tcase_add_test( tcase, test_XMLNode_convert ); + //tcase_add_test( tcase, test_XMLNode_convert_dummyroot ); + //tcase_add_test( tcase, test_XMLNode_insert ); + //tcase_add_test( tcase, test_XMLNode_remove ); + //tcase_add_test( tcase, test_XMLNode_namespace_add ); + //tcase_add_test( tcase, test_XMLNode_namespace_get ); + //tcase_add_test( tcase, test_XMLNode_namespace_remove ); + //tcase_add_test( tcase, test_XMLNode_namespace_remove_by_prefix ); + //tcase_add_test( tcase, test_XMLNode_namespace_set_clear ); + //tcase_add_test( tcase, test_XMLNode_attribute_add_remove); + //tcase_add_test( tcase, test_XMLNode_attribute_set_clear); suite_add_tcase(suite, tcase); return suite; diff --git a/src/sbml/xml/test/test-data/just_annotation.xml b/src/sbml/xml/test/test-data/just_annotation.xml new file mode 100644 index 0000000000..95eebedfcf --- /dev/null +++ b/src/sbml/xml/test/test-data/just_annotation.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From aa1ad60ed208c3243e6568b0a1c81c2dc24d4521 Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 24 Mar 2023 13:42:36 +0000 Subject: [PATCH 15/31] sorting xmlns for math element --- examples/c++/echoSBML.cpp | 14 ++++++++------ src/sbml/math/ASTNode.cpp | 20 ++++++++++++++++++++ src/sbml/math/ASTNode.h | 13 +++++++++++++ src/sbml/math/MathML.cpp | 38 +++++++++++++++++++++++++------------- 4 files changed, 66 insertions(+), 19 deletions(-) diff --git a/examples/c++/echoSBML.cpp b/examples/c++/echoSBML.cpp index 3eb455989d..8c51c55516 100644 --- a/examples/c++/echoSBML.cpp +++ b/examples/c++/echoSBML.cpp @@ -47,13 +47,15 @@ LIBSBML_CPP_NAMESPACE_USE int main (int argc, char* argv[]) { - if (argc != 3) - { - cout << endl << "Usage: echoSBML input-filename output-filename" - << endl << endl; - return 2; - } + //if (argc != 3) + //{ + // cout << endl << "Usage: echoSBML input-filename output-filename" + // << endl << endl; + // return 2; + //} + argv[1] = "C:\\Development\\SBML\\t\\in.xml"; + argv[2] = "C:\\Development\\SBML\\t\\out.xml"; SBMLDocument *d = readSBML(argv[1]); if ( d->getErrorLog()->getNumFailsWithSeverity(LIBSBML_SEV_ERROR) > 0) { diff --git a/src/sbml/math/ASTNode.cpp b/src/sbml/math/ASTNode.cpp index b2c042f4aa..4d57db2bcf 100644 --- a/src/sbml/math/ASTNode.cpp +++ b/src/sbml/math/ASTNode.cpp @@ -261,6 +261,7 @@ ASTNode::ASTNode (ASTNodeType_t type) mStyle = ""; mIsBvar = false; mUserData = NULL; + mNamespaces = NULL; // move to after we have loaded plugins //setType(type); @@ -307,6 +308,7 @@ ASTNode::ASTNode (Token_t* token) mStyle = ""; mIsBvar = false; mUserData = NULL; + mNamespaces = NULL; mChildren = new List; mSemanticsAnnotations = new List; @@ -378,6 +380,7 @@ ASTNode::ASTNode (const ASTNode& orig) : ,mStyle ( orig.mStyle) ,mIsBvar ( orig.mIsBvar) ,mUserData ( orig.mUserData ) + , mNamespaces (orig.mNamespaces) { if (orig.mName) { @@ -426,6 +429,8 @@ ASTNode& ASTNode::operator=(const ASTNode& rhs) mStyle = rhs.mStyle; mIsBvar = rhs.mIsBvar; mUserData = rhs.mUserData; + mNamespaces = rhs.mNamespaces; + freeName(); if (rhs.mName) { @@ -483,6 +488,7 @@ ASTNode::~ASTNode () delete mSemanticsAnnotations; delete mDefinitionURL; + delete mNamespaces; freeName(); clearPlugins(); @@ -4571,6 +4577,20 @@ ASTNode::derivativeExp(const std::string& variable) return derivative; } +XMLNamespaces* +ASTNode::getDeclaredNamespaces() const +{ + return mNamespaces; +} + + +void +ASTNode::setDeclaredNamespaces(const XMLNamespaces* xmlns) +{ + mNamespaces = xmlns->clone(); +} + + #endif /* __cplusplus */ diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h index 3084304fc8..7b83cdc386 100644 --- a/src/sbml/math/ASTNode.h +++ b/src/sbml/math/ASTNode.h @@ -2315,6 +2315,16 @@ setValue(value, 0); LIBSBML_EXTERN void printMath(unsigned int level = 0); + + /** @cond doxygenLibsbmlInternal */ + LIBSBML_EXTERN + XMLNamespaces* getDeclaredNamespaces() const; + + LIBSBML_EXTERN + void setDeclaredNamespaces(const XMLNamespaces* xmlns); + /** @endcond */ + + protected: friend class SBMLRateRuleConverter; @@ -2471,6 +2481,9 @@ setValue(value, 0); bool mIsBvar; void *mUserData; std::string mPackageName; + + + XMLNamespaces* mNamespaces; friend class MathMLFormatter; friend class MathMLHandler; diff --git a/src/sbml/math/MathML.cpp b/src/sbml/math/MathML.cpp index 19b74df278..f935c41a93 100644 --- a/src/sbml/math/MathML.cpp +++ b/src/sbml/math/MathML.cpp @@ -2129,6 +2129,9 @@ readMathML (XMLInputStream& stream, std::string reqd_prefix, bool inRead) if (elem.isStart() && elem.isEnd()) return node; + /* record and explicitly decared namespaces*/ + node->setDeclaredNamespaces(&(elem.getNamespaces())); + /* check that math tag is followed by an appropriate * tag */ @@ -2209,26 +2212,35 @@ writeMathML (const ASTNode* node, XMLOutputStream& stream, SBMLNamespaces *sbmln static const string uri = "http://www.w3.org/1998/Math/MathML"; stream.startElement("math"); - stream.writeAttribute("xmlns", uri); + // stream.writeAttribute("xmlns", uri); if (node) { - // FIX-ME need to know what level and version - if (node->hasUnits()) - { - unsigned int level = SBML_DEFAULT_LEVEL; - unsigned int version = SBML_DEFAULT_VERSION; - if (sbmlns != NULL) + // write any namespaces that have been specifically declared on math element + XMLNamespaces* xmlns = node->getDeclaredNamespaces(); + if (xmlns != NULL) { - level = sbmlns->getLevel(); - version = sbmlns->getVersion(); + for (int i = 0; i < xmlns->getNumNamespaces(); i++) + { + stream.writeAttribute("xmlns", xmlns->getPrefix(i), xmlns->getURI(i)); + + } } + if (node->hasUnits()) + { + unsigned int level = SBML_DEFAULT_LEVEL; + unsigned int version = SBML_DEFAULT_VERSION; + if (sbmlns != NULL) + { + level = sbmlns->getLevel(); + version = sbmlns->getVersion(); + } - stream.writeAttribute(XMLTriple("sbml", "", "xmlns"), - SBMLNamespaces::getSBMLNamespaceURI(level, version)); - } + stream.writeAttribute(XMLTriple("sbml", "", "xmlns"), + SBMLNamespaces::getSBMLNamespaceURI(level, version)); + } - writeNode(*node, stream,sbmlns); + writeNode(*node, stream,sbmlns); } stream.endElement("math"); From 27463ac388c376f48f15bf25469d0c9591699266 Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 24 Mar 2023 15:20:26 +0000 Subject: [PATCH 16/31] more ast docs --- src/sbml/math/ASTNode.h | 51 ++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h index 4cbfd7c350..dc81e152fd 100644 --- a/src/sbml/math/ASTNode.h +++ b/src/sbml/math/ASTNode.h @@ -2276,18 +2276,39 @@ setValue(value, 0); LIBSBML_EXTERN bool exactlyEqual(const ASTNode& rhs); - /* calls - refactorNumbers(); - encompassUnaryMinus(); - createNonBinaryTree(); - reorderArguments(); - */ + /** + * This function refactors an ASTNode to facilitate the use of the algorithm to construct + * a reaction network from a set of ordinary differential equations. + * + * It performs the following actions: + * + * refactors any numerical ASTNodes so that any operation involving 2 or more numerical nodes is performed + * and becomes a single node + * eg (4 + 1 x 2) becomes (6) + * + * encompases a unary minus into the numerical value of a node + * eg a node representing minus with a single child node representing 2 becomes a single node representing -2 + * + * refactors binary nodes, which are the default, into a non-binary representation + * eg a node representing plus with 2 children which each represent a plus with two numerical children + * will become a node representing plus with four numerical children + * + * reorders the arguments of any operation so that numerical arguments come first, followed by + * nodes representing variables, followed by nodes representing functions + * eg a node (sin(a + 2) - 3 + b) becomes (-3 + b + sin(2 + a)) + */ LIBSBML_EXTERN void refactor(); - /* - * a decomposed ast is one where if the top level func is *or / - * the arguments are not sums + /** + * This function allows decomposition of ASTNode into components such that we reduce the need + * for brackets. Obviously an ASTNode does not have brackets but when written as a string + * these would become necessary. + * + * The decomposition used here is such that if the top level function is multiply or divide + * then the arguments to these functions do not contain a plus element. + * + * for example * (a + B) * c becomes ac + Bc * (5 + 3)/(a-4) becomes 8/(a-4) * (a + 4)/4 becomes 1 + a/4 @@ -2295,11 +2316,13 @@ setValue(value, 0); LIBSBML_EXTERN void decompose(); - /* - * Returns an ASTNode representing the derivative w.r.t variable - * e.g. Node represents 2*x^2 - * variable = "x" - * returns Node representing 4 * x + /** + * Returns an ASTNode representing the derivative of this ASTNode with respect to the given variable + * + * e.g. if we have an ASTNode that represents 2*x^2 + * and we call the function derivative("x") on this node + * + * this will return an ASTNode representing 4 * x * since d(2*x^2)/dx = 4*x */ LIBSBML_EXTERN From 97d3cf74a993b9a7e2a92f78b8a5212058029168 Mon Sep 17 00:00:00 2001 From: Sarah Date: Sat, 25 Mar 2023 10:05:35 +0000 Subject: [PATCH 17/31] test multi ns on math --- src/sbml/math/ASTNode.cpp | 1 - src/sbml/math/MathML.cpp | 35 ++++++++++------- .../multi/extension/test/TestMultiAST.cpp | 39 +++++++++++++++++++ 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/src/sbml/math/ASTNode.cpp b/src/sbml/math/ASTNode.cpp index 4d57db2bcf..a29cdaaa98 100644 --- a/src/sbml/math/ASTNode.cpp +++ b/src/sbml/math/ASTNode.cpp @@ -488,7 +488,6 @@ ASTNode::~ASTNode () delete mSemanticsAnnotations; delete mDefinitionURL; - delete mNamespaces; freeName(); clearPlugins(); diff --git a/src/sbml/math/MathML.cpp b/src/sbml/math/MathML.cpp index f935c41a93..e3de5d2f94 100644 --- a/src/sbml/math/MathML.cpp +++ b/src/sbml/math/MathML.cpp @@ -2210,35 +2210,40 @@ writeMathML (const ASTNode* node, XMLOutputStream& stream, SBMLNamespaces *sbmln { static const string uri = "http://www.w3.org/1998/Math/MathML"; + unsigned int level = SBML_DEFAULT_LEVEL; + unsigned int version = SBML_DEFAULT_VERSION; + if (sbmlns != NULL) + { + level = sbmlns->getLevel(); + version = sbmlns->getVersion(); + } stream.startElement("math"); - // stream.writeAttribute("xmlns", uri); + stream.writeAttribute("xmlns", uri); if (node) { + if (node->hasUnits()) + { + stream.writeAttribute(XMLTriple("sbml", "", "xmlns"), + SBMLNamespaces::getSBMLNamespaceURI(level, version)); + } + // write any namespaces that have been specifically declared on math element + // XMLNamespaces* xmlns = node->getDeclaredNamespaces(); if (xmlns != NULL) { for (int i = 0; i < xmlns->getNumNamespaces(); i++) { - stream.writeAttribute("xmlns", xmlns->getPrefix(i), xmlns->getURI(i)); + if (xmlns->getURI(i) == uri || xmlns->getURI(i) == SBMLNamespaces::getSBMLNamespaceURI(level, version)) + { + continue; + } + stream.writeAttribute(xmlns->getPrefix(i), "xmlns", xmlns->getURI(i)); } } - if (node->hasUnits()) - { - unsigned int level = SBML_DEFAULT_LEVEL; - unsigned int version = SBML_DEFAULT_VERSION; - if (sbmlns != NULL) - { - level = sbmlns->getLevel(); - version = sbmlns->getVersion(); - } - - stream.writeAttribute(XMLTriple("sbml", "", "xmlns"), - SBMLNamespaces::getSBMLNamespaceURI(level, version)); - } writeNode(*node, stream,sbmlns); } diff --git a/src/sbml/packages/multi/extension/test/TestMultiAST.cpp b/src/sbml/packages/multi/extension/test/TestMultiAST.cpp index 392c184cde..1a2aef0170 100644 --- a/src/sbml/packages/multi/extension/test/TestMultiAST.cpp +++ b/src/sbml/packages/multi/extension/test/TestMultiAST.cpp @@ -28,6 +28,19 @@ LIBSBML_CPP_NAMESPACE_USE BEGIN_C_DECLS +static bool +equals(const char* expected, const char* actual) +{ + if (!strcmp(expected, actual)) return true; + + printf("\nStrings are not equal:\n"); + printf("Expected:\n[%s]\n", expected); + printf("Actual:\n[%s]\n", actual); + + return false; +} + + extern char *TestDataDirectory; @@ -204,6 +217,10 @@ START_TEST (test_multi_create_ci) math->addChild(ci); math->addChild(ci1); + // need to add multi ns + XMLNamespaces* xmlns = document->getSBMLNamespaces()->getNamespaces(); + math->setDeclaredNamespaces(xmlns); + kl->setMath(math); delete math; @@ -334,6 +351,27 @@ START_TEST(test_multi_ast_plugin) END_TEST +START_TEST(test_multi_math_ns) +{ + const char * expected = "\n" + " \n" + " \n" + " \n" + " s1 \n" + " s1 \n" + " \n" + " \n" + ""; + + string filename(TestDataDirectory); + string cfile = filename + "multi_ci_extension.xml"; + SBMLDocument* doc = readSBMLFromFile(cfile.c_str()); + KineticLaw* kl = doc->getModel()->getReaction(0)->getKineticLaw(); + fail_unless(equals(expected, kl->toSBML())); +} +END_TEST + + Suite * create_suite_MultiAST(void) { @@ -344,6 +382,7 @@ create_suite_MultiAST(void) tcase_add_test(tcase, test_multi_write_ci); tcase_add_test(tcase, test_multi_create_ci); tcase_add_test(tcase, test_multi_ast_plugin); + tcase_add_test(tcase, test_multi_math_ns); suite_add_tcase(suite, tcase); From 34905b886d5ef402b473a2b4049a5c86f1c61f4b Mon Sep 17 00:00:00 2001 From: Sarah Date: Sat, 25 Mar 2023 12:46:25 +0000 Subject: [PATCH 18/31] adding tests --- src/sbml/xml/test/TestRunner.c | 43 +++++--- src/sbml/xml/test/TestXMLNode.cpp | 147 +++++++++++++++++++++---- src/sbml/xml/test/test-data/random.xml | 3 + 3 files changed, 156 insertions(+), 37 deletions(-) create mode 100644 src/sbml/xml/test/test-data/random.xml diff --git a/src/sbml/xml/test/TestRunner.c b/src/sbml/xml/test/TestRunner.c index c9a98ae07a..6704a9b0c6 100644 --- a/src/sbml/xml/test/TestRunner.c +++ b/src/sbml/xml/test/TestRunner.c @@ -39,14 +39,19 @@ * and also available online as http://sbml.org/software/libsbml/license.html * ---------------------------------------------------------------------- -->*/ -#include #include +#include +#include + +#include +#include #ifdef LIBSBML_USE_VLD #include #endif #if defined(__cplusplus) +LIBSBML_CPP_NAMESPACE_USE CK_CPPSTART #endif @@ -107,23 +112,23 @@ main (int argc, char* argv[]) { int num_failed = 0; setTestDataDirectory(); - SRunner *runner = srunner_create(create_suite_XMLNode()); - //SRunner *runner = srunner_create(create_suite_XMLAttributes()); - //srunner_add_suite(runner, create_suite_CopyAndClone()); - - //srunner_add_suite(runner, create_suite_XMLNamespaces()); - //srunner_add_suite(runner, create_suite_XMLTriple()); - //srunner_add_suite(runner, create_suite_XMLToken()); - //srunner_add_suite(runner, create_suite_XMLToken_newSetters()); - //srunner_add_suite(runner, create_suite_XMLNode()); - //srunner_add_suite(runner, create_suite_XMLNode_newSetters()); - //srunner_add_suite(runner, create_suite_XMLError()); - //srunner_add_suite(runner, create_suite_XMLError_C()); - //srunner_add_suite(runner, create_suite_XMLErrorLog()); - //srunner_add_suite(runner, create_suite_XMLInputStream()); - //srunner_add_suite(runner, create_suite_XMLOutputStream()); - //srunner_add_suite(runner, create_suite_XMLAttributes_C()); - //srunner_add_suite(runner, create_suite_XMLExceptions()); +// SRunner *runner = srunner_create(create_suite_XMLNode()); + SRunner *runner = srunner_create(create_suite_XMLAttributes()); + srunner_add_suite(runner, create_suite_CopyAndClone()); + + srunner_add_suite(runner, create_suite_XMLNamespaces()); + srunner_add_suite(runner, create_suite_XMLTriple()); + srunner_add_suite(runner, create_suite_XMLToken()); + srunner_add_suite(runner, create_suite_XMLToken_newSetters()); + srunner_add_suite(runner, create_suite_XMLNode()); + srunner_add_suite(runner, create_suite_XMLNode_newSetters()); + srunner_add_suite(runner, create_suite_XMLError()); + srunner_add_suite(runner, create_suite_XMLError_C()); + srunner_add_suite(runner, create_suite_XMLErrorLog()); + srunner_add_suite(runner, create_suite_XMLInputStream()); + srunner_add_suite(runner, create_suite_XMLOutputStream()); + srunner_add_suite(runner, create_suite_XMLAttributes_C()); + srunner_add_suite(runner, create_suite_XMLExceptions()); if (argc > 1 && !strcmp(argv[1], "-nofork")) { @@ -135,6 +140,8 @@ main (int argc, char* argv[]) srunner_free(runner); + free(TestDataDirectory); + return num_failed; } diff --git a/src/sbml/xml/test/TestXMLNode.cpp b/src/sbml/xml/test/TestXMLNode.cpp index 0ed977b140..e861c4d599 100644 --- a/src/sbml/xml/test/TestXMLNode.cpp +++ b/src/sbml/xml/test/TestXMLNode.cpp @@ -51,6 +51,21 @@ LIBSBML_CPP_NAMESPACE_USE CK_CPPSTART +extern char *TestDataDirectory; + +static bool +equals(const char* expected, const char* actual) +{ + if (!strcmp(expected, actual)) return true; + + printf("\nStrings are not equal:\n"); + printf("Expected:\n[%s]\n", expected); + printf("Actual:\n[%s]\n", actual); + + return false; +} + + START_TEST (test_XMLNode_getIndex) { const char* xmlstr = "\n" @@ -1640,31 +1655,125 @@ END_TEST //END_TEST // + +START_TEST(test_read_from_file) +{ + char *filename = safe_strcat(TestDataDirectory, "just_annotation.xml"); + XMLNode *node = XMLNode::readXMLNodeFromFile(filename); + + fail_unless(node != NULL); + + fail_unless(node->getNumChildren() == 1); + + const XMLNode_t* rdf = XMLNode_getChild(node, 0); + + fail_unless(!strcmp(XMLNode_getName(rdf), "RDF")); + fail_unless(!strcmp(XMLNode_getPrefix(rdf), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(rdf), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(XMLNode_getNumChildren(rdf) == 1); + + const XMLNode_t* desc = XMLNode_getChild(rdf, 0); + + fail_unless(!strcmp(XMLNode_getName(desc), "Description")); + fail_unless(!strcmp(XMLNode_getPrefix(desc), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(desc), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(XMLNode_getNumChildren(desc) == 1); + + const XMLNode_t * is1 = XMLNode_getChild(desc, 0); + fail_unless(!strcmp(XMLNode_getName(is1), "is")); + fail_unless(!strcmp(XMLNode_getPrefix(is1), "bqbiol")); + fail_unless(XMLNode_getNumChildren(is1) == 1); + + const XMLNode_t * Bag = XMLNode_getChild(is1, 0); + fail_unless(!strcmp(XMLNode_getName(Bag), "Bag")); + fail_unless(!strcmp(XMLNode_getPrefix(Bag), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(Bag), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(XMLNode_getNumChildren(Bag) == 4); + + const XMLNode_t * li = XMLNode_getChild(Bag, 0); + fail_unless(!strcmp(XMLNode_getName(li), "li")); + fail_unless(!strcmp(XMLNode_getPrefix(li), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(li), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(li->getAttrValue(0) == "http://identifiers.org/chebi/CHEBI:59789"); + fail_unless(XMLNode_getNumChildren(li) == 0); + + const XMLNode_t * hasProp1 = XMLNode_getChild(Bag, 1); + fail_unless(!strcmp(XMLNode_getName(hasProp1), "hasProperty")); + fail_unless(!strcmp(XMLNode_getPrefix(hasProp1), "bqbiol")); + fail_unless(XMLNode_getNumChildren(hasProp1) == 1); + + const XMLNode_t * Bag1 = XMLNode_getChild(hasProp1, 0); + fail_unless(!strcmp(XMLNode_getName(Bag1), "Bag")); + fail_unless(!strcmp(XMLNode_getPrefix(Bag1), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(Bag1), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(XMLNode_getNumChildren(Bag1) == 1); + + const XMLNode_t * li_Bag1 = XMLNode_getChild(Bag1, 0); + fail_unless(!strcmp(XMLNode_getName(li_Bag1), "li")); + fail_unless(!strcmp(XMLNode_getPrefix(li_Bag1), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(li_Bag1), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(XMLNode_getNumChildren(li_Bag1) == 0); + + + const XMLNode_t * li2 = XMLNode_getChild(Bag, 2); + fail_unless(!strcmp(XMLNode_getName(li2), "li")); + fail_unless(!strcmp(XMLNode_getPrefix(li2), "rdf")); + fail_unless(!strcmp(XMLNode_getURI(li2), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); + fail_unless(XMLNode_getNumChildren(li2) == 0); + + free(filename); + delete(node); +} +END_TEST + +START_TEST(test_read_from_file2) +{ + const char * expected = "\n" + " \n" + ""; + + char *filename = safe_strcat(TestDataDirectory, "random.xml"); + XMLNode *node = XMLNode::readXMLNodeFromFile(filename); + + fail_unless(node != NULL); + + std::string random = XMLNode::convertXMLNodeToString(node); + + fail_unless(equals(expected, random.c_str())); + + safe_free(filename); + delete(node); +} +END_TEST + Suite * create_suite_XMLNode (void) { Suite *suite = suite_create("XMLNode"); TCase *tcase = tcase_create("XMLNode"); - //tcase_add_test( tcase, test_XMLNode_getIndex ); - //tcase_add_test( tcase, test_XMLNode_hasChild ); - //tcase_add_test( tcase, test_XMLNode_getChildForName ); - //tcase_add_test( tcase, test_XMLNode_equals ); - //tcase_add_test( tcase, test_XMLNode_create ); - //tcase_add_test( tcase, test_XMLNode_createFromToken ); - //tcase_add_test( tcase, test_XMLNode_createElement ); - //tcase_add_test( tcase, test_XMLNode_getters ); - //tcase_add_test( tcase, test_XMLNode_convert ); - //tcase_add_test( tcase, test_XMLNode_convert_dummyroot ); - //tcase_add_test( tcase, test_XMLNode_insert ); - //tcase_add_test( tcase, test_XMLNode_remove ); - //tcase_add_test( tcase, test_XMLNode_namespace_add ); - //tcase_add_test( tcase, test_XMLNode_namespace_get ); - //tcase_add_test( tcase, test_XMLNode_namespace_remove ); - //tcase_add_test( tcase, test_XMLNode_namespace_remove_by_prefix ); - //tcase_add_test( tcase, test_XMLNode_namespace_set_clear ); - //tcase_add_test( tcase, test_XMLNode_attribute_add_remove); - //tcase_add_test( tcase, test_XMLNode_attribute_set_clear); + tcase_add_test( tcase, test_XMLNode_getIndex ); + tcase_add_test( tcase, test_XMLNode_hasChild ); + tcase_add_test( tcase, test_XMLNode_getChildForName ); + tcase_add_test( tcase, test_XMLNode_equals ); + tcase_add_test( tcase, test_XMLNode_create ); + tcase_add_test( tcase, test_XMLNode_createFromToken ); + tcase_add_test( tcase, test_XMLNode_createElement ); + tcase_add_test( tcase, test_XMLNode_getters ); + tcase_add_test( tcase, test_XMLNode_convert ); + tcase_add_test( tcase, test_XMLNode_convert_dummyroot ); + tcase_add_test( tcase, test_XMLNode_insert ); + tcase_add_test( tcase, test_XMLNode_remove ); + tcase_add_test( tcase, test_XMLNode_namespace_add ); + tcase_add_test( tcase, test_XMLNode_namespace_get ); + tcase_add_test( tcase, test_XMLNode_namespace_remove ); + tcase_add_test( tcase, test_XMLNode_namespace_remove_by_prefix ); + tcase_add_test( tcase, test_XMLNode_namespace_set_clear ); + tcase_add_test( tcase, test_XMLNode_attribute_add_remove); + tcase_add_test( tcase, test_XMLNode_attribute_set_clear); + tcase_add_test( tcase, test_read_from_file); + tcase_add_test(tcase, test_read_from_file2); + suite_add_tcase(suite, tcase); return suite; diff --git a/src/sbml/xml/test/test-data/random.xml b/src/sbml/xml/test/test-data/random.xml new file mode 100644 index 0000000000..6a19c36521 --- /dev/null +++ b/src/sbml/xml/test/test-data/random.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file From 8e5d5b200d1d3ccaebe608e86bcda88a99b9f588 Mon Sep 17 00:00:00 2001 From: Sarah Date: Sat, 25 Mar 2023 12:54:48 +0000 Subject: [PATCH 19/31] checked in bad version --- examples/c++/echoSBML.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/examples/c++/echoSBML.cpp b/examples/c++/echoSBML.cpp index 8c51c55516..3eb455989d 100644 --- a/examples/c++/echoSBML.cpp +++ b/examples/c++/echoSBML.cpp @@ -47,15 +47,13 @@ LIBSBML_CPP_NAMESPACE_USE int main (int argc, char* argv[]) { - //if (argc != 3) - //{ - // cout << endl << "Usage: echoSBML input-filename output-filename" - // << endl << endl; - // return 2; - //} + if (argc != 3) + { + cout << endl << "Usage: echoSBML input-filename output-filename" + << endl << endl; + return 2; + } - argv[1] = "C:\\Development\\SBML\\t\\in.xml"; - argv[2] = "C:\\Development\\SBML\\t\\out.xml"; SBMLDocument *d = readSBML(argv[1]); if ( d->getErrorLog()->getNumFailsWithSeverity(LIBSBML_SEV_ERROR) > 0) { From 08ec0209e3fc5f3dfdc75cad519df794f1bb9394 Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 29 Mar 2023 15:16:13 +0100 Subject: [PATCH 20/31] finishing AST documentation --- src/sbml/math/ASTNode.cpp | 36 ++++++++++++++++++------------------ src/sbml/math/ASTNode.h | 9 ++++++--- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/sbml/math/ASTNode.cpp b/src/sbml/math/ASTNode.cpp index a29cdaaa98..e3f1cf648a 100644 --- a/src/sbml/math/ASTNode.cpp +++ b/src/sbml/math/ASTNode.cpp @@ -3676,24 +3676,24 @@ ASTNode::createVectorOfChildTypes(std::vector& numbers, } -void -ASTNode::printMath(unsigned int level) -{ - if (this == NULL) - { - std::cout << "Level " << level << ": NULL" << std::endl; - return; - } - - const char * str = SBML_formulaToL3String(this); - std::cout << "Level " << level << ": " << str << std::endl; - safe_free((char *)(str)); - - for (unsigned int i = 0; i < getNumChildren(); i++) - { - getChild(i)->printMath(level + 1); - } -} +//void +//ASTNode::printMath(unsigned int level) +//{ +// if (this == NULL) +// { +// std::cout << "Level " << level << ": NULL" << std::endl; +// return; +// } +// +// const char * str = SBML_formulaToL3String(this); +// std::cout << "Level " << level << ": " << str << std::endl; +// safe_free((char *)(str)); +// +// for (unsigned int i = 0; i < getNumChildren(); i++) +// { +// getChild(i)->printMath(level + 1); +// } +//} /* combine numbers: * returns AST that is number diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h index 1bec8d84c3..40745c20ef 100644 --- a/src/sbml/math/ASTNode.h +++ b/src/sbml/math/ASTNode.h @@ -2322,9 +2322,12 @@ setValue(value, 0); * The decomposition used here is such that if the top level function is multiply or divide * then the arguments to these functions do not contain a plus element. * - * for example + * for example + * * (a + B) * c becomes ac + Bc + * * (5 + 3)/(a-4) becomes 8/(a-4) + * * (a + 4)/4 becomes 1 + a/4 */ LIBSBML_EXTERN @@ -2342,8 +2345,8 @@ setValue(value, 0); LIBSBML_EXTERN ASTNode* derivative(const std::string& variable); - LIBSBML_EXTERN - void printMath(unsigned int level = 0); + // LIBSBML_EXTERN + // void printMath(unsigned int level = 0); /** @cond doxygenLibsbmlInternal */ LIBSBML_EXTERN From b55959af146d4596fa4f3cddc195948e5ead2d00 Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 29 Mar 2023 15:30:38 +0100 Subject: [PATCH 21/31] remove broken link --- docs/src/common-text/libsbml-group-comp-intro.html.in | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/src/common-text/libsbml-group-comp-intro.html.in b/docs/src/common-text/libsbml-group-comp-intro.html.in index a6ccd38cf3..2fe2a0d3af 100644 --- a/docs/src/common-text/libsbml-group-comp-intro.html.in +++ b/docs/src/common-text/libsbml-group-comp-intro.html.in @@ -34,7 +34,8 @@ provide a complete explanation of the SBML Level 3 Hierarchical Model Composition (“comp”) package. If you are developing software that uses “comp”, you are strongly urged to read the actual specification for the package. A link to the specification document current -is provided below, along with a link to the page of known issues (if any). +is provided below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 @@ -50,7 +51,7 @@ is provided below, along with a link to the page of known issues (if any). Hierarchical Model Composition package, Version @PACKAGE_COMP_VERSION@ Release @PACKAGE_COMP_RELEASE@
- + Errata page
From 07662f59c12ccfdb97f5ae31cd2cfafb1d699231 Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 29 Mar 2023 15:47:15 +0100 Subject: [PATCH 22/31] adding a description of the raterule converter --- src/sbml/conversion/SBMLRateRuleConverter.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sbml/conversion/SBMLRateRuleConverter.h b/src/sbml/conversion/SBMLRateRuleConverter.h index 0170240340..2253976fa8 100644 --- a/src/sbml/conversion/SBMLRateRuleConverter.h +++ b/src/sbml/conversion/SBMLRateRuleConverter.h @@ -36,7 +36,11 @@ * * @htmlinclude libsbml-facility-only-warning.html * - * ADD DESCRIPTION + * This converter takes an SBML model that is defined using RateRules and uses + * the algorithm developed by Fages et al (see below) to convert the ODEs to a reaction network. + * The returned model will contain only Reactions in place of the original RateRules. + * Note the algorithm will detect any unspecified species that are needed to fully + * define the reaction network. * * @section SBMLRateRuleConverter-usage Configuration and use of SBMLRateRuleConverter * From 6f6b38e782106c024d7aa855bb2da0044719a163 Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 29 Mar 2023 16:02:29 +0100 Subject: [PATCH 23/31] removing broken links --- docs/src/common-text/libsbml-group-distrib-intro.html.in | 7 ++++--- docs/src/common-text/libsbml-group-fbc-intro.html.in | 7 ++++--- docs/src/common-text/libsbml-group-groups-intro.html.in | 8 ++++++-- docs/src/common-text/libsbml-group-layout-intro.html.in | 5 +++-- docs/src/common-text/libsbml-group-multi-intro.html.in | 8 ++++++-- docs/src/common-text/libsbml-group-qual-intro.html.in | 5 +++-- docs/src/common-text/libsbml-group-render-intro.html.in | 6 +++--- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/docs/src/common-text/libsbml-group-distrib-intro.html.in b/docs/src/common-text/libsbml-group-distrib-intro.html.in index 7626719129..49f81e5f88 100644 --- a/docs/src/common-text/libsbml-group-distrib-intro.html.in +++ b/docs/src/common-text/libsbml-group-distrib-intro.html.in @@ -14,7 +14,7 @@ The Distributions package adds support to SBML for sampling from a probability d

Authors

-The authors of the SBML Level 3 Distributions specification are Lucian P Smith, Stuart L Moodie, Frank Bergmann, Colin Gillespie, Sarah Keating, Matthias König, Chris Myers, Maciej J Swat, Darren Wilkinson, and Michael Hucka. +The authors of the SBML Level 3 Distributions specification are Lucian P Smith, Stuart L Moodie, Frank Bergmann, Colin Gillespie, Sarah Keating, Matthias K�nig, Chris Myers, Maciej J Swat, Darren Wilkinson, and Michael Hucka.

The specification for this SBML package

@@ -22,7 +22,8 @@ The authors of the SBML Level 3 Distributions specification are Lucian P Sm provide a complete explanation of the SBML Level 3 Distributions (“distrib”) package. If you are developing software that uses “distrib”, you are strongly urged to read the actual specification for the package. A link to the specification document current -is provided below, along with a link to the page of known issues (if any). +is provided below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 @@ -36,7 +37,7 @@ is provided below, along with a link to the page of known issues (if any). Hierarchical Model Composition package, Version 1 Release 1
- + Errata page
diff --git a/docs/src/common-text/libsbml-group-fbc-intro.html.in b/docs/src/common-text/libsbml-group-fbc-intro.html.in index 594805a19a..dac64818ce 100644 --- a/docs/src/common-text/libsbml-group-fbc-intro.html.in +++ b/docs/src/common-text/libsbml-group-fbc-intro.html.in @@ -52,7 +52,8 @@ provide a complete explanation of the SBML Level 3 Flux Balance Constraints (“fbc”) package. If you are developing software that uses “fbc”, you are strongly urged to read the actual specification for the package. A link to the specification document current -is provided below, along with a link to the page of known issues (if any). +is provided below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 @@ -68,14 +69,14 @@ is provided below, along with a link to the page of known issues (if any). Flux Balance Constraints package, Version @PACKAGE_FBC_V1_VERSION@ Release @PACKAGE_FBC_V1_RELEASE@
- + Errata page
Flux Balance Constraints package, Version @PACKAGE_FBC_V2_VERSION@ Release @PACKAGE_FBC_V2_RELEASE@ - + Errata page
diff --git a/docs/src/common-text/libsbml-group-groups-intro.html.in b/docs/src/common-text/libsbml-group-groups-intro.html.in index 67834676a5..4eece5271b 100644 --- a/docs/src/common-text/libsbml-group-groups-intro.html.in +++ b/docs/src/common-text/libsbml-group-groups-intro.html.in @@ -12,7 +12,11 @@ The primary authors of the SBML Level 3 Groups specification are Michael Hu

The specification for this SBML package

-

This API documentation for libSBML does not provide a complete explanation of the SBML Level 3 Groups package (whose nickname is also “groups”). If you are developing software that uses “groups”, you are strongly urged to read the actual specification for the package. A link to the specification document current is provided below, along with a link to the page of known issues (if any). +

This API documentation for libSBML does not provide a complete explanation of the SBML Level 3 + Groups package (whose nickname is also “groups”). If you are developing software that uses “groups”, + you are strongly urged to read the actual specification for the package. A link to the specification document current is provided + below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 @@ -28,7 +32,7 @@ The primary authors of the SBML Level 3 Groups specification are Michael Hu Groups package, Version @PACKAGE_GROUPS_V1_VERSION@ Release @PACKAGE_GROUPS_V1_RELEASE@
- Errata page + Errata page
diff --git a/docs/src/common-text/libsbml-group-layout-intro.html.in b/docs/src/common-text/libsbml-group-layout-intro.html.in index 56f3fd2b16..e4187884a7 100644 --- a/docs/src/common-text/libsbml-group-layout-intro.html.in +++ b/docs/src/common-text/libsbml-group-layout-intro.html.in @@ -199,7 +199,8 @@ provide a complete explanation of the SBML Level 3 Layout (“layout”) package. If you are developing software that uses “layout”, you are strongly urged to read the actual specification for the package. A link to the specification document current is provided -below, along with a link to the page of known issues (if any). +below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 Layout, @@ -214,7 +215,7 @@ below, along with a link to the page of known issues (if any). Layout package, Version @PACKAGE_LAYOUT_VERSION@ Release @PACKAGE_LAYOUT_RELEASE@
- + Errata page
diff --git a/docs/src/common-text/libsbml-group-multi-intro.html.in b/docs/src/common-text/libsbml-group-multi-intro.html.in index 46d3d0ec4a..f41be4bf35 100644 --- a/docs/src/common-text/libsbml-group-multi-intro.html.in +++ b/docs/src/common-text/libsbml-group-multi-intro.html.in @@ -10,7 +10,11 @@ The primary authors of the SBML Level 3 Multistate, Multicomponent and Mult

The specification for this SBML package

-

This API documentation for libSBML does not provide a complete explanation of the SBML Level 3 Multistate, Multicomponent and Multicompartment Species package (whose nickname is “multi”). If you are developing software that uses “multi”, you are strongly urged to read the actual specification for the package. A link to the specification document current is provided below, along with a link to the page of known issues (if any). +

This API documentation for libSBML does not provide a complete explanation of the SBML Level 3 +Multistate, Multicomponent and Multicompartment Species package (whose nickname is “multi”). If you are developing + software that uses “multi”, you are strongly urged to read the actual specification for the package. A link to the + specification document current is provided below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for the SBML Level 3 @@ -27,7 +31,7 @@ The primary authors of the SBML Level 3 Multistate, Multicomponent and Mult Multistate, Multicomponent and Multicompartment Species package, Version @PACKAGE_MULTI_V1_VERSION@ Release @PACKAGE_MULTI_V1_RELEASE@
- Errata page + Errata page
diff --git a/docs/src/common-text/libsbml-group-qual-intro.html.in b/docs/src/common-text/libsbml-group-qual-intro.html.in index e12674da1b..ac418c5879 100644 --- a/docs/src/common-text/libsbml-group-qual-intro.html.in +++ b/docs/src/common-text/libsbml-group-qual-intro.html.in @@ -43,7 +43,8 @@ provide a complete explanation of the SBML Level 3 Qualitative Models (“qual”) package. If you are developing software that uses “qual”, you are strongly urged to read the actual specification for the package. A link to the specification document current is provided -below, along with a link to the page of known issues (if any). +below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 @@ -59,7 +60,7 @@ below, along with a link to the page of known issues (if any). Qualitative Models package, Version @PACKAGE_QUAL_VERSION@ Release @PACKAGE_QUAL_RELEASE@
- + Errata page
diff --git a/docs/src/common-text/libsbml-group-render-intro.html.in b/docs/src/common-text/libsbml-group-render-intro.html.in index 786b1df4b6..b4d1ce6152 100644 --- a/docs/src/common-text/libsbml-group-render-intro.html.in +++ b/docs/src/common-text/libsbml-group-render-intro.html.in @@ -33,8 +33,8 @@ in SBML Level 3 Version 1 and Version 2 documents. “render” package. If you are developing software that uses “render”, you are strongly urged to read the actual specification for the package. A link to the specification document - current is provided below, along with a link to the page of known issues - (if any). + current is provided below, along with a link to the page of known issues (if any). +we apologise that our known issues pages are under reconstruction.
Specification for SBML Level 3 Render, @@ -49,7 +49,7 @@ in SBML Level 3 Version 1 and Version 2 documents. Render package, Version @PACKAGE_RENDER_VERSION@ Release @PACKAGE_RENDER_RELEASE@
- + Errata page
From 7d1228d830a16032f67a29348ab9c99ce07239ba Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 30 Mar 2023 10:54:49 +0200 Subject: [PATCH 24/31] - update issue tracker link - update installation instructions --- configure | 2 +- configure.ac | 2 +- .../stable/linux/32-bit/README.md.in | 2 +- .../linux/32-bit/R_interface/README.md.in | 2 +- .../R_interface/binary-package/README.md.in | 2 +- .../R_interface/source-package/README.md.in | 2 +- .../stable/linux/64-bit/README.md.in | 2 +- .../linux/64-bit/R_interface/README.md.in | 2 +- .../R_interface/binary-package/README.md.in | 2 +- .../R_interface/source-package/README.md.in | 2 +- .../stable/linux/README.md.in | 2 +- .../stable/macos/README.md.in | 2 +- .../stable/macos/R_interface/README.md.in | 2 +- .../R_interface/binary-package/README.md.in | 2 +- .../R_interface/source-package/README.md.in | 2 +- .../stable/windows/32-bit/README.md.in | 2 +- .../windows/32-bit/R_interface/README.md.in | 2 +- .../stable/windows/32-bit/python/README.md.in | 2 +- .../stable/windows/64-bit/README.md.in | 2 +- .../windows/64-bit/R_interface/README.md.in | 2 +- .../stable/windows/64-bit/python/README.md.in | 2 +- .../stable/windows/README.md.in | 2 +- .../linux/32-bit/README.md.in | 2 +- .../linux/64-bit/README.md.in | 2 +- .../readmes-for-downloads/linux/README.md.in | 2 +- .../readmes-for-downloads/macos/README.md.in | 2 +- .../windows/32-bit/README.md.in | 2 +- .../windows/32-bit/python/README.md.in | 2 +- .../windows/64-bit/README.md.in | 2 +- .../windows/64-bit/python/README.md.in | 2 +- .../windows/README.md.in | 2 +- docs/historical/README_OLD.txt | 4 +- docs/index.html.in | 2 +- .../common-text/libsbml-communications.html | 10 +- .../common-text/libsbml-downloading.html.in | 158 ++---------------- macosx/resources/README.txt | 2 +- macosx/resources/package-conclusion.rtf | 2 +- 37 files changed, 52 insertions(+), 188 deletions(-) diff --git a/configure b/configure index 8270f1cb22..955db597f5 100755 --- a/configure +++ b/configure @@ -28837,7 +28837,7 @@ echo "More information and the latest version are available online at" echo "http://sbml.org/Software/libSBML" echo "" echo "Please report problems using the issue tracker at" -echo "http://sbml.org/software/libsbml/issue-tracker" +echo "https://github.com/sbmlteam/libsbml/issues" echo "" echo "To contact the developers directly, email libsbml-team@googlegroups.com" echo "" diff --git a/configure.ac b/configure.ac index 8b655b2474..156e2f9df0 100644 --- a/configure.ac +++ b/configure.ac @@ -822,7 +822,7 @@ echo "More information and the latest version are available online at" echo "http://sbml.org/Software/libSBML" echo "" echo "Please report problems using the issue tracker at" -echo "http://sbml.org/software/libsbml/issue-tracker" +echo "https://github.com/sbmlteam/libsbml/issues" echo "" echo "To contact the developers directly, email libsbml-team@googlegroups.com" echo "" diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md.in index da750bca82..ca42290912 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md.in @@ -54,7 +54,7 @@ If you need to use a different XML parser library, it will be necessary to build For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md.in index 98aec978e8..bad316af78 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md.in @@ -10,7 +10,7 @@ The binary installation will provide a faster installation but will only work if For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md.in index f37288c4c2..57614a51ff 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md.in @@ -17,7 +17,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md.in index d736412360..96b5eaf596 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md.in @@ -17,7 +17,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md.in index dc54c2b69e..b6aa67646d 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md.in @@ -54,7 +54,7 @@ If you need to use a different XML parser library, it will be necessary to build For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md.in index aed7d38684..b9ce52c217 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md.in @@ -10,7 +10,7 @@ The binary installation will provide a faster installation but will only work if For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md.in index 7b81fc1f9e..64589c3037 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md.in @@ -17,7 +17,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md.in index d736412360..96b5eaf596 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md.in @@ -17,7 +17,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md.in index a42e309c21..b972c92f3c 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md.in @@ -4,7 +4,7 @@ Please navigate to either the [32-bit](32-bit) or [64-bit](64-bit) folders, to m For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md.in index 26706f0f19..4c17f97149 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md.in @@ -57,7 +57,7 @@ If you need to use a different XML parser library, it will be necessary to build For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md.in index 34895975c0..563ceec9c0 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md.in @@ -10,7 +10,7 @@ The binary installation will provide a faster installation but will only work if For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md.in index 1cbc1fe65c..6a9ff63c3c 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md.in @@ -17,7 +17,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md.in index d736412360..96b5eaf596 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md.in @@ -17,7 +17,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md.in index e1d71d2e72..22a2dbe416 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md.in @@ -42,7 +42,7 @@ If you need to use a different XML parser library, it will be necessary to build For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md.in index 5195bac58d..ebbb178686 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md.in @@ -19,7 +19,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md.in index a116001971..1d009b5828 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md.in @@ -22,7 +22,7 @@ If that fails, please check the instructions for [how to access libSBML](http:// For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md.in index 625d6326ea..7258d9e25b 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md.in @@ -42,7 +42,7 @@ If you need to use a different XML parser library, it will be necessary to build For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md.in index 5195bac58d..ebbb178686 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md.in @@ -19,7 +19,7 @@ Once you have installed the R libSBML library, follow the instructions for [how For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md.in index 34643f7c52..0369072ae3 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md.in @@ -22,7 +22,7 @@ If that fails, please check the instructions for [how to access libSBML](http:// For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md.in b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md.in index 54311556cb..6d59565b5a 100644 --- a/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md.in +++ b/dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md.in @@ -4,7 +4,7 @@ Please navigate to either the [32-bit](32-bit) or [64-bit](64-bit) folders, to m For additional information about this version of libSBML, please see the documentation or [visit the libSBML website](http://sbml.org/Software/libSBML). -Please report problems using our tracker: [http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +Please report problems using our tracker: [https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/linux/32-bit/README.md.in b/dev/misc-files/readmes-for-downloads/linux/32-bit/README.md.in index 431dc34216..93f619bfe7 100644 --- a/dev/misc-files/readmes-for-downloads/linux/32-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads/linux/32-bit/README.md.in @@ -40,7 +40,7 @@ the libSBML website at Please report problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/linux/64-bit/README.md.in b/dev/misc-files/readmes-for-downloads/linux/64-bit/README.md.in index a0bf2b35de..eb688b9ce0 100644 --- a/dev/misc-files/readmes-for-downloads/linux/64-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads/linux/64-bit/README.md.in @@ -40,7 +40,7 @@ the libSBML website at Please report problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/linux/README.md.in b/dev/misc-files/readmes-for-downloads/linux/README.md.in index 9707fc5e4e..7bd08a7b29 100644 --- a/dev/misc-files/readmes-for-downloads/linux/README.md.in +++ b/dev/misc-files/readmes-for-downloads/linux/README.md.in @@ -28,7 +28,7 @@ the documentation or visit the libSBML website at Please report problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/macos/README.md.in b/dev/misc-files/readmes-for-downloads/macos/README.md.in index 33582ba43d..d283315812 100644 --- a/dev/misc-files/readmes-for-downloads/macos/README.md.in +++ b/dev/misc-files/readmes-for-downloads/macos/README.md.in @@ -45,7 +45,7 @@ libSBML website at Please report problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/windows/32-bit/README.md.in b/dev/misc-files/readmes-for-downloads/windows/32-bit/README.md.in index dc2659700a..8854f873e7 100644 --- a/dev/misc-files/readmes-for-downloads/windows/32-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads/windows/32-bit/README.md.in @@ -49,7 +49,7 @@ Detailed information about libSBML can be found at Please report problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/windows/32-bit/python/README.md.in b/dev/misc-files/readmes-for-downloads/windows/32-bit/python/README.md.in index ee29d2b23d..9c51acecb1 100644 --- a/dev/misc-files/readmes-for-downloads/windows/32-bit/python/README.md.in +++ b/dev/misc-files/readmes-for-downloads/windows/32-bit/python/README.md.in @@ -24,7 +24,7 @@ is available for viewing online at Please report any problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/windows/64-bit/README.md.in b/dev/misc-files/readmes-for-downloads/windows/64-bit/README.md.in index c0145e5344..0de964f649 100644 --- a/dev/misc-files/readmes-for-downloads/windows/64-bit/README.md.in +++ b/dev/misc-files/readmes-for-downloads/windows/64-bit/README.md.in @@ -51,7 +51,7 @@ Detailed information about libSBML can be found at Please report problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/windows/64-bit/python/README.md.in b/dev/misc-files/readmes-for-downloads/windows/64-bit/python/README.md.in index 38dcab5e93..3bed827d5d 100644 --- a/dev/misc-files/readmes-for-downloads/windows/64-bit/python/README.md.in +++ b/dev/misc-files/readmes-for-downloads/windows/64-bit/python/README.md.in @@ -24,7 +24,7 @@ is available for viewing online at Please report any problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/dev/misc-files/readmes-for-downloads/windows/README.md.in b/dev/misc-files/readmes-for-downloads/windows/README.md.in index c0463bc88a..50af2cfbfe 100644 --- a/dev/misc-files/readmes-for-downloads/windows/README.md.in +++ b/dev/misc-files/readmes-for-downloads/windows/README.md.in @@ -12,7 +12,7 @@ For more information about libSBML, please visit the libSBML website at Please report any problems with libSBML using the tracker at -[http://sbml.org/Software/libSBML/issue-tracker](http://sbml.org/Software/libSBML/issue-tracker) +[https://github.com/sbmlteam/libsbml/issues](https://github.com/sbmlteam/libsbml/issues) Thank you for your interest in libSBML! diff --git a/docs/historical/README_OLD.txt b/docs/historical/README_OLD.txt index f57a230172..88d71386b2 100644 --- a/docs/historical/README_OLD.txt +++ b/docs/historical/README_OLD.txt @@ -15,7 +15,7 @@ http://sbml.org/Software/libSBML Please report problems with libSBML using the tracker at - http://sbml.org/Software/libSBML/issue-tracker + https://github.com/sbmlteam/libsbml/issues Mailing lists and online web forums for discussing libSBML are at http://sbml.org/Forums @@ -279,7 +279,7 @@ We invite you to report bugs and other problems using the issue tracker for libSBML on SourceForge. The following URL will take you there directly: - http://sbml.org/Software/libSBML/issue-tracker + https://github.com/sbmlteam/libsbml/issues You can also ask questions on the 'sbml-interoperability' mailing list, either over email or using the web forum interface (see below). diff --git a/docs/index.html.in b/docs/index.html.in index ddc25aa6eb..f7c4eaa71a 100644 --- a/docs/index.html.in +++ b/docs/index.html.in @@ -22,7 +22,7 @@

We are keenly interested in improving the libSBML documentation. If you find any errors or problems in these manuals, please report them!

-Report an issue.Report issue in the documentation +Report an issue.Report issue in the documentation

The latest release of libSBML, as well as the documentation and additional information, are always available online on SBML.org:

diff --git a/docs/src/common-text/libsbml-communications.html b/docs/src/common-text/libsbml-communications.html index d0d6b23d5c..eaf35da6db 100644 --- a/docs/src/common-text/libsbml-communications.html +++ b/docs/src/common-text/libsbml-communications.html @@ -6,7 +6,7 @@

Reporting bugs and other problems

Please report problems and other issues using the issue tracker for libSBML on SourceForge: http://sbml.org/Software/libSBML/issue-tracker. +href="https://github.com/sbmlteam/libsbml/issues">https://github.com/sbmlteam/libsbml/issues.

You can also report problems on the sbml-interoperability mailing list @@ -64,11 +64,3 @@

Notifications via RSS and Twitter

may want to follow sbmlnews on Twitter. - -

The SVN notification mailing list

- -

If you are obtaining your libSBML files directly from the SVN -repository on SourceForge, you may wish to subscribe to the mailing list -sbml-svn, to be apprised of changes to the SVN repository as soon as they -are committed. You can join the list by visiting the URL https://lists.sourceforge.net/lists/listinfo/sbml-svn. diff --git a/docs/src/common-text/libsbml-downloading.html.in b/docs/src/common-text/libsbml-downloading.html.in index 321afc72d4..811e2fbc93 100644 --- a/docs/src/common-text/libsbml-downloading.html.in +++ b/docs/src/common-text/libsbml-downloading.html.in @@ -10,16 +10,13 @@ your situation:

-
  • 3. C, C++, C#, Java, JavaScript, Perl, PHP or Ruby
  • -
  • 4. R +
  • 3. R
  • -
  • 5. Other languages
  • +
  • 4. Other languages
  • @@ -33,8 +30,8 @@ for all versions of MATLAB and all operating systems. The result is ready to only requires you tell MATLAB where you placed the files. Here are the steps:
    1. Download -the distribution archive from SourceForge. +href="https://github.com/sbmlteam/libsbml/releases/tag/v@PACKAGE_VERSION@">Download +the distribution archive from GitHub.
    2. Extract the archive somewhere on your local computer. @@ -77,7 +74,7 @@ whichever one you prefer.

      2.1 Using Conda

      We provide a distribution of the libSBML Python interface through Anaconda Cloud, +target="_blank" href="https://conda-forge.org/">Conda Forge, making it accessible through conda. To install it this way, follow these instructions: @@ -85,12 +82,12 @@ follow these instructions:

      • To get the stable version of libSBML:
        -conda install -c SBMLTeam python-libsbml
        +conda install -c conda-forge python-libsbml
         
      • To get the experimental version of libSBML:
        -conda install -c SBMLTeam python-libsbml-experimental
        +conda install -c conda-forge python-libsbml-experimental
         
      @@ -140,17 +137,6 @@ sudo pipversion install python-libsbml-
    -

    Note that in all cases, the process will take a long time -because it must install and build dependent libraries. If all goes well, -the steps above should result in pip eventually printing the -following message to tell you has it finished successfully: - -

    -[... much text omitted ...]
    -Successfully installed python-libsbml
    -Cleaning up...
    -
    -

    After this, you should be able to access the Python language interface for libSBML on your computer directly from your Python interpreter by importing it like any other Python module. In other words, @@ -158,117 +144,9 @@ importing it like any other Python module. In other words, Python interpreter. - -

    2.3 Using Linux's -apt-get or yum

    - -

    If you are running Linux, and you prefer to use the standard over-the-air -installation tools provided by your operating system (e.g., yum -and apt-get), you can take advantage of binary packages we -provide using the OpenSUSE Build System (OBS) for many -different flavors of Linux including CentOS, Fedora, Ubuntu, and others: - -

    - - -

    As an example, the following is a screenshot of the page currently found -at the -python-libsbml page. From this page, clicking on the name of an operating -system will display the instructions for what to do: - -

    - -Image of the OBS page Python stable installers -

    Screenshot of the OBS -python-libsbml page for different Linux systems.

    - -

    After following the instructions to install the appropriate binary -distribution on your computer, you should be able to access the Python -language interface for libSBML on your computer directly from your Python -interpreter. In other words, import libsbml should -work when typed into your Python interpreter. - - - -

    2.4 Using the Windows libSBML installer for Python

    - -

    You can take advantage of executable installers that we make available -for that platform. They can be found in a subdirectory named python -within each of the Windows subdirectories (stable -and experimental) -on SourceForge. There are different installers for different versions of -Python. The following screenshot shows an example. - -

    - -Image of SourceForge download page for the Windows libSBML installers -

    Screenshot of the SourceForge download -page for the 64-bit Windows stable libSBML installers. -

    - -

    After you download an appropriate .exe file for your system, -run the installer. The installer will lead you through the installation -process. - -

    3. C, C++, C#, Java, JavaScript, Perl, PHP or Ruby

    - - -

    The installation packages in the libSBML SourceForge download -site contain interfaces for C, C++, C#, Java, JavaScript, Perl, PhP, -Python, and Ruby in the same package. (However, there are better ways to get -the Python interface, as explained above.) The download area has two subdirectories: one -for stable releases of libSBML, and one for experimental releases. The -stable releases contain support for only the accepted parts of SBML, -while the experimental releases contain code for SBML Level 3 -packages still in development. - -

    - -Image of SourceForge download page for libSBML -

    Screenshot of the SourceForge download -page for libSBML. -

    - -

    Click on either stable or experimental, and then -navigate to a subdirectory matching your operating system platform. Download -the appropriate installer or package file for your platform, and use the -appropriate platform-specific approach to install the software. (E.g., if you -downloaded a Mac .dmg file, double-click the file in the Mac -Finder to mount the disk image, open the image contents in the Finder, -and finally, double-click the .pkg file contained inside.) - - - -

    4. R

    +

    3. R

    We provide installers for the stable version of the libSBML R language @@ -279,14 +157,8 @@ appropriate for your situation:
  • For Linux and Mac OS X: Download the libSBML -R source package from SourceForge. - -
  • For Windows: Download the 64-bit -version or the 32-bit -version of the binary installer for R. +href="https://github.com/sbmlteam/libsbml/releases/tag/v@PACKAGE_VERSION@">libSBML +R source package from GitHub. @@ -297,7 +169,7 @@ using a terminal/shell command. These approaches are explained below. -

    4.1 Using the R GUI

    +

    3.1 Using the R GUI

    From the R menu "Packages" or "Packages & Data" (depending on your operating @@ -308,7 +180,7 @@ archive file, and select the archive file for installation. -

    4.2 Using a shell command

    +

    3.2 Using a shell command

    Suppose that the path to the libSBML R archive on your computer is archive. Execute the following command in a @@ -350,7 +222,7 @@ libSBML R interface is probably installed correctly. -

    5. Other languages

    +

    4. Other languages

    If no installation package is available for diff --git a/macosx/resources/README.txt b/macosx/resources/README.txt index c82def56fb..cab5b02eb3 100644 --- a/macosx/resources/README.txt +++ b/macosx/resources/README.txt @@ -31,4 +31,4 @@ Detailed information about libSBML can be found at Please report problems with libSBML using the tracker at - http://sbml.org/Software/libSBML/issue-tracker + https://github.com/sbmlteam/libsbml/issues diff --git a/macosx/resources/package-conclusion.rtf b/macosx/resources/package-conclusion.rtf index ddfb1a0677..a997bf15af 100644 --- a/macosx/resources/package-conclusion.rtf +++ b/macosx/resources/package-conclusion.rtf @@ -19,7 +19,7 @@ Detailed information about libSBML can be found at\ {\field{\*\fldinst{HYPERLINK "http://sbml.org/Software/libSBML"}}{\fldrslt http://sbml.org/Software/libSBML}}\ \ Please report problems using the tracker at\ -{\field{\*\fldinst{HYPERLINK "http://sbml.org/Software/libSBML/issue-tracker"}}{\fldrslt http://sbml.org/Software/libSBML/issue-tracker}}\ +{\field{\*\fldinst{HYPERLINK "https://github.com/sbmlteam/libsbml/issues"}}{\fldrslt https://github.com/sbmlteam/libsbml/issues}}\ \ Thank you for your interest in SBML!\ } From 327ba639c934476c036157c36c712487fc474491 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 30 Mar 2023 12:03:18 +0200 Subject: [PATCH 25/31] - update links --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b4a38cea42..42b3bd60e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1060,10 +1060,10 @@ libSBML version ${PACKAGE_VERSION} ---------------------------------------------------------------------- More information and the latest version are available online at - http://sbml.org/Software/libSBML + https://sbml.org/software/libsbml/ Please report problems using the issue tracker at - http://sbml.org/Software/libsbml/issue-tracker + https://github.com/sbmlteam/libsbml/issues To contact the developers directly, email libsbml-team@googlegroups.com From 84ea56373ea2d9c33188d2916f56bea974727893 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 30 Mar 2023 12:10:13 +0200 Subject: [PATCH 26/31] - update supported to lv3v2r2 --- docs/src/common-text/libsbml-blurb.html | 2 +- docs/src/libsbml-csharp-reading-files.txt | 2 +- docs/src/libsbml-java-overview.html | 2 +- docs/src/libsbml-java-reading.html | 2 +- docs/src/libsbml-python-reading-files.txt | 2 +- docs/src/libsbml-reading-files.txt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/src/common-text/libsbml-blurb.html b/docs/src/common-text/libsbml-blurb.html index 46f411b203..814350ae5f 100644 --- a/docs/src/common-text/libsbml-blurb.html +++ b/docs/src/common-text/libsbml-blurb.html @@ -1,5 +1,5 @@

    LibSBML is an open-source library for writing and manipulating the Systems Biology Markup Language (SBML). This version of libSBML supports all releases of SBML up through Level 3 Version 2 Core -Release 1 (RC 2). For more information about +Release 2. For more information about SBML, please visit http://sbml.org on the Internet. diff --git a/docs/src/libsbml-csharp-reading-files.txt b/docs/src/libsbml-csharp-reading-files.txt index 1f01a80f2e..83adffddd6 100644 --- a/docs/src/libsbml-csharp-reading-files.txt +++ b/docs/src/libsbml-csharp-reading-files.txt @@ -187,7 +187,7 @@ whether it can be converted to SBML Level 3 Version 1, and returns the number of failures. If all the checks succeed, it returns @c 0. This release of libSBML supports Levels/Versions of SBML up through -Level 3 Version 2 Core Release 1 (RC 2). +Level 3 Version 2 Core Release 2. @section rf-writing Writing SBML diff --git a/docs/src/libsbml-java-overview.html b/docs/src/libsbml-java-overview.html index 0d5d63fd78..03229b75d0 100644 --- a/docs/src/libsbml-java-overview.html +++ b/docs/src/libsbml-java-overview.html @@ -28,7 +28,7 @@ LibSBML is an open-source library for writing and manipulating the Systems Biology Markup Language (SBML). This version of libSBML supports all releases of SBML up through Level 3 Version 2 Core -Release 1 (RC 2). +Release 2. For more information about SBML, please visit http://sbml.org on the Internet.

    diff --git a/docs/src/libsbml-java-reading.html b/docs/src/libsbml-java-reading.html index 0692cb3a3f..268a5dc09f 100644 --- a/docs/src/libsbml-java-reading.html +++ b/docs/src/libsbml-java-reading.html @@ -329,7 +329,7 @@

    The SBMLDocument container

    At the time of this libSBML release, the most recent release of SBML is -Level 3 Version 2 Core Release 1 (RC 2). +Level 3 Version 2 Core Release 2.

    Writing SBML

    diff --git a/docs/src/libsbml-python-reading-files.txt b/docs/src/libsbml-python-reading-files.txt index 87fcfbbab4..35b083855c 100644 --- a/docs/src/libsbml-python-reading-files.txt +++ b/docs/src/libsbml-python-reading-files.txt @@ -182,7 +182,7 @@ to SBML Level 3 Version 1, and returns the number of failures. If all the checks succeed, it returns 0. At the time of this release of libSBML, the most recent release of SBML is -Level 3 Version 2 Core Release 1 (RC 2). +Level 3 Version 2 Core Release 2. @section rf-writing Writing SBML diff --git a/docs/src/libsbml-reading-files.txt b/docs/src/libsbml-reading-files.txt index ebbb5e8bcd..3c782f51ff 100644 --- a/docs/src/libsbml-reading-files.txt +++ b/docs/src/libsbml-reading-files.txt @@ -192,7 +192,7 @@ to SBML Level 3 Version 1, and returns the number of failures. If all the checks succeed, it returns @c 0. At the time of this release of libSBML, the most recent release of SBML is -Level 3 Version 2 Core Release 1 (RC 2). +Level 3 Version 2 Core Release 2. @section rf-writing Writing SBML From 112bb05062084edb0044f0dd85172395223a8808 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 30 Mar 2023 12:16:38 +0200 Subject: [PATCH 27/31] - more sf -> github --- docs/src/common-text/libsbml-communications.html | 2 +- docs/src/common-text/libsbml-import-for-r.html | 2 +- docs/src/common-text/libsbml-installation.html.in | 8 ++++---- docs/src/common-text/libsbml-issues.html | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/src/common-text/libsbml-communications.html b/docs/src/common-text/libsbml-communications.html index eaf35da6db..b5f0fd7bbe 100644 --- a/docs/src/common-text/libsbml-communications.html +++ b/docs/src/common-text/libsbml-communications.html @@ -5,7 +5,7 @@

    Reporting bugs and other problems

    Please report problems and other issues using the issue tracker for -libSBML on SourceForge: https://github.com/sbmlteam/libsbml/issues.

    You can also report problems on the As described in the downloading instructions, we provide ready-built installers for the libSBML R language interface that you can download from our SourceForge download +href="http://github.com/sbmlteam/libsbml/releases/">GitHub download page. If you use one of the installers, you do not need to do anything more to set up and use libSBML for R on your system. diff --git a/docs/src/common-text/libsbml-installation.html.in b/docs/src/common-text/libsbml-installation.html.in index 7c552d4188..9bdc33b694 100644 --- a/docs/src/common-text/libsbml-installation.html.in +++ b/docs/src/common-text/libsbml-installation.html.in @@ -372,8 +372,8 @@ the possible options offered by configure.

    The libSBML distribution ships with certain interface files provided, so that you do not need to have the software necessary to recreate them. -However, if you obtained the libSBML distribution from the project SVN -repository on SourceForge, or you want to recreate the files deliberately, +However, if you obtained the libSBML distribution from the project +repository on GitHub, or you want to recreate the files deliberately, you may need to configure libSBML to use SWIG to regenerate the libSBML language interfaces. Please see the section below on using SWIG. @@ -867,8 +867,8 @@ downloading a copy of CMake version 2.8.4 or later from cmake.org.) Once you have CMake installed, also download and unzip the libSBML source code archive from the download -area on SourceForge.net and save the archive somewhere on your file +href="http://github.com/sbmlteam/libsbml/releases/">download +area on GitHub.net and save the archive somewhere on your file system, then unpack it.

    Before going further, an issue on Windows concerns the dependency diff --git a/docs/src/common-text/libsbml-issues.html b/docs/src/common-text/libsbml-issues.html index d65815bb07..023e8b9354 100644 --- a/docs/src/common-text/libsbml-issues.html +++ b/docs/src/common-text/libsbml-issues.html @@ -123,7 +123,7 @@

    Line/column numbers are not always acc

    Sometimes, the libsbml_wrap.cpp files are not recreated

    -

    Many of the language bindings in libSBML are created using SWIG, a language wrapper generator. The output of SWIG for libSBML is a file named libsbml_wrap.cpp in the respective language binding's subdirectory (e.g., src/bindings/java), sometimes in combination with other files, depending on the language in question. If you obtained your copy of libSBML as a distribution archive (e.g., from SourceForge), this file will already be present in the distribution. If, instead, you obtained your copy of libSBML from the SVN source tree, you will need to have SWIG available on your system in order to regenerate the libsbml_wrap.cpp file. In both cases, all things should work fine. +

    Many of the language bindings in libSBML are created using SWIG, a language wrapper generator. The output of SWIG for libSBML is a file named libsbml_wrap.cpp in the respective language binding's subdirectory (e.g., src/bindings/java), sometimes in combination with other files, depending on the language in question. If you obtained your copy of libSBML as a distribution archive (e.g., from GitHub), this file will already be present in the distribution. If, instead, you obtained your copy of libSBML from the SVN source tree, you will need to have SWIG available on your system in order to regenerate the libsbml_wrap.cpp file. In both cases, all things should work fine.

    If you modify the libSBML source files yourself (and in particular, files upon which the SWIG binding code depends), the makefile rules should always automatically cause the appropriate libsbml_wrap.cpp files to be recreated. However, sometimes the makefile rules do not regenerate the wrapper files when they should. This happens very rarely, and under conditions that the libSBML developers have had a very hard time reproducing consistently. In some versions of libSBML, it seemed to happen slightly more often under cygwin. From d9457d5af720a396fc240ee24d76172cf2266d52 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 30 Mar 2023 12:21:59 +0200 Subject: [PATCH 28/31] - missed one reference --- docs/src/common-text/libsbml-installation.html.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/common-text/libsbml-installation.html.in b/docs/src/common-text/libsbml-installation.html.in index 9bdc33b694..b68812c033 100644 --- a/docs/src/common-text/libsbml-installation.html.in +++ b/docs/src/common-text/libsbml-installation.html.in @@ -63,8 +63,8 @@ used to build the documentation. In all cases below, you will need to download the libSBML source code archive from the - download -area on SourceForge.net then unpack the archive somewhere on your computer. + download +area on GitHub then unpack the archive somewhere on your computer.

    1.1 Configuring using CMake

    From 41798e6bf07731d025c33d272d7d235c033b7fbe Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Thu, 30 Mar 2023 13:39:19 +0200 Subject: [PATCH 29/31] - fix astnode (broken by merge) --- src/sbml/math/ASTNode.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h index 0cf0c6aaea..20c9ccc735 100644 --- a/src/sbml/math/ASTNode.h +++ b/src/sbml/math/ASTNode.h @@ -2345,13 +2345,6 @@ setValue(value, 0); LIBSBML_EXTERN ASTNode* derivative(const std::string& variable); - // LIBSBML_EXTERN - // void printMath(unsigned int level = 0); - - /** @cond doxygenLibsbmlInternal */ - LIBSBML_EXTERN - void printMath(unsigned int level = 0); - /** @cond doxygenLibsbmlInternal */ LIBSBML_EXTERN XMLNamespaces* getDeclaredNamespaces() const; From f32a1e6cc1ed1b17422c1c473043c9a73e7c54f7 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Fri, 31 Mar 2023 11:37:25 +0200 Subject: [PATCH 30/31] - fix erata links --- docs/src/common-text/libsbml-group-comp-intro.html.in | 2 +- docs/src/common-text/libsbml-group-distrib-intro.html.in | 2 +- docs/src/common-text/libsbml-group-fbc-intro.html.in | 4 ++-- docs/src/common-text/libsbml-group-groups-intro.html.in | 2 +- docs/src/common-text/libsbml-group-layout-intro.html.in | 2 +- docs/src/common-text/libsbml-group-multi-intro.html.in | 2 +- docs/src/common-text/libsbml-group-qual-intro.html.in | 2 +- docs/src/common-text/libsbml-group-render-intro.html.in | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/src/common-text/libsbml-group-comp-intro.html.in b/docs/src/common-text/libsbml-group-comp-intro.html.in index 2fe2a0d3af..f157e466d2 100644 --- a/docs/src/common-text/libsbml-group-comp-intro.html.in +++ b/docs/src/common-text/libsbml-group-comp-intro.html.in @@ -51,7 +51,7 @@ we apologise that our known issues pages are under reconstruction. Hierarchical Model Composition package, Version @PACKAGE_COMP_VERSION@ Release @PACKAGE_COMP_RELEASE@ - + Errata page diff --git a/docs/src/common-text/libsbml-group-distrib-intro.html.in b/docs/src/common-text/libsbml-group-distrib-intro.html.in index 49f81e5f88..f82515ed69 100644 --- a/docs/src/common-text/libsbml-group-distrib-intro.html.in +++ b/docs/src/common-text/libsbml-group-distrib-intro.html.in @@ -37,7 +37,7 @@ we apologise that our known issues pages are under reconstruction. Hierarchical Model Composition package, Version 1 Release 1 - + Errata page diff --git a/docs/src/common-text/libsbml-group-fbc-intro.html.in b/docs/src/common-text/libsbml-group-fbc-intro.html.in index dac64818ce..1a281036b7 100644 --- a/docs/src/common-text/libsbml-group-fbc-intro.html.in +++ b/docs/src/common-text/libsbml-group-fbc-intro.html.in @@ -69,14 +69,14 @@ we apologise that our known issues pages are under reconstruction. Flux Balance Constraints package, Version @PACKAGE_FBC_V1_VERSION@ Release @PACKAGE_FBC_V1_RELEASE@ - + Errata page Flux Balance Constraints package, Version @PACKAGE_FBC_V2_VERSION@ Release @PACKAGE_FBC_V2_RELEASE@ - + Errata page diff --git a/docs/src/common-text/libsbml-group-groups-intro.html.in b/docs/src/common-text/libsbml-group-groups-intro.html.in index 4eece5271b..96c7f496d3 100644 --- a/docs/src/common-text/libsbml-group-groups-intro.html.in +++ b/docs/src/common-text/libsbml-group-groups-intro.html.in @@ -32,7 +32,7 @@ we apologise that our known issues pages are under reconstruction. Groups package, Version @PACKAGE_GROUPS_V1_VERSION@ Release @PACKAGE_GROUPS_V1_RELEASE@ - Errata page + Errata page diff --git a/docs/src/common-text/libsbml-group-layout-intro.html.in b/docs/src/common-text/libsbml-group-layout-intro.html.in index e4187884a7..72fd43861c 100644 --- a/docs/src/common-text/libsbml-group-layout-intro.html.in +++ b/docs/src/common-text/libsbml-group-layout-intro.html.in @@ -215,7 +215,7 @@ we apologise that our known issues pages are under reconstruction. Layout package, Version @PACKAGE_LAYOUT_VERSION@ Release @PACKAGE_LAYOUT_RELEASE@ - + Errata page diff --git a/docs/src/common-text/libsbml-group-multi-intro.html.in b/docs/src/common-text/libsbml-group-multi-intro.html.in index f41be4bf35..beaab9f33e 100644 --- a/docs/src/common-text/libsbml-group-multi-intro.html.in +++ b/docs/src/common-text/libsbml-group-multi-intro.html.in @@ -31,7 +31,7 @@ we apologise that our known issues pages are under reconstruction. Multistate, Multicomponent and Multicompartment Species package, Version @PACKAGE_MULTI_V1_VERSION@ Release @PACKAGE_MULTI_V1_RELEASE@ - Errata page + Errata page diff --git a/docs/src/common-text/libsbml-group-qual-intro.html.in b/docs/src/common-text/libsbml-group-qual-intro.html.in index ac418c5879..e93dbd5d3f 100644 --- a/docs/src/common-text/libsbml-group-qual-intro.html.in +++ b/docs/src/common-text/libsbml-group-qual-intro.html.in @@ -60,7 +60,7 @@ we apologise that our known issues pages are under reconstruction. Qualitative Models package, Version @PACKAGE_QUAL_VERSION@ Release @PACKAGE_QUAL_RELEASE@ - + Errata page diff --git a/docs/src/common-text/libsbml-group-render-intro.html.in b/docs/src/common-text/libsbml-group-render-intro.html.in index b4d1ce6152..728798939d 100644 --- a/docs/src/common-text/libsbml-group-render-intro.html.in +++ b/docs/src/common-text/libsbml-group-render-intro.html.in @@ -49,7 +49,7 @@ we apologise that our known issues pages are under reconstruction. Render package, Version @PACKAGE_RENDER_VERSION@ Release @PACKAGE_RENDER_RELEASE@ - + Errata page From e54f13bebb3cba45fa4cf719c6233afe8f5d2835 Mon Sep 17 00:00:00 2001 From: Sarah Date: Sun, 2 Apr 2023 11:59:34 +0100 Subject: [PATCH 31/31] add some NEWS --- NEWS.txt | 58 +++++++++++++++++++++----------------------------------- 1 file changed, 22 insertions(+), 36 deletions(-) diff --git a/NEWS.txt b/NEWS.txt index 6a193a459a..3cf55ed2ff 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,20 +1,29 @@  libSBML NEWS -- History of user-visible changes ==================================================================== -5.19.1 (Current development branch) +5.20.0 ==================================================================== -STABLE RELEASE + +Given the length of time since our last release the list of changes +and acknowledgements of contributions is incomplete. We apologise and +offer thanks to anyone who has been involved and those people who have +contributed their spare time to continuing maintenance and development. + +* Addition of support for the SBML Spatial package + + - Now that the first official version of the specification for the + SBML Level 3 Spatial package is available, the libSBML API for + 'spatial' is now included in the stable release of libSBML. + Thus a CMake build using '-WITH_STABLE_PACKAGES' will now include + the spatial package code. * New features - - - 'comp' package-specific updates: - - 'distrib' package-specific updates: - - 'fbc' package-specific updates: - - 'groups' package-specific updates: - - 'layout' package-specific updates: - - 'multi' package-specific updates: - - 'qual' package-specific updates: - - 'render' package-specific updates: + + - There is a new converter SBMLRateRuleConverter which will take + a model with RateRules and infer the corresponding reaction network. + This is still considered under development and we would really + appreciate any feedback. + * Bug fixes @@ -28,39 +37,16 @@ STABLE RELEASE updated for Python 3.10 changes. Thanks to Zbigniew JÄ™drzejewski-Szmek for submitting the changes. - - 'comp' package-specific bug fixes: - - 'distrib' package-specific bug fixes: - - 'fbc' package-specific bug fixes: - - 'groups' package-specific bug fixes: - - 'layout' package-specific bug fixes: - - 'multi' package-specific bug fixes: - - 'qual' package-specific bug fixes: - - 'render' package-specific bug fixes: - * Configuration/build system changes - Extensive continuous integration testing has been added to the GitHub repository. - * Miscellaneous + - Note there is now a Julia interface to libSBML available + at https://lcsb-biocore.github.io/SBML.jl/stable/ -EXPERIMENTAL PACKAGES - -* New features - - - 'arrays' package-specific updates: - - 'dyn' package-specific updates: - - 'req' package-specific updates: - - 'spatial' package-specific updates: - - * Bug fixes - - - 'arrays' package-specific bug fixes: - - 'dyn' package-specific bug fixes: - - 'req' package-specific bug fixes: - - 'spatial' package-specific bug fixes: ==================================================================== 5.19.0 (2020-11-27)