Skip to content

Releases: sbmlteam/jsbml

JSBML 1.6.1

10 Jan 10:47
Compare
Choose a tag to compare

This is a stable release of JSBML version 1.6.1. It comprises the two previously published snapshot releases, version 1.6 and version 1.6.1ɑ.

To access this version of JSBML via Maven, please use:

  <dependency>
    <groupId>org.sbml.jsbml</groupId>
    <artifactId>jsbml</artifactId>
    <version>1.6.1</version>
  </dependency>

New Features

  • biojava-ontology was bumped to version 6.0.4.
  • Convenient features, such as quick check for the presence of any specific SBase extension
  • Improvements to the documentation (JavaDoc, users' guide, and the project's README file)
  • Broader coverage of the offline validation capability
  • Improved support for constraint-based modeling in the ModelBuilder: automatic creation of common unit definition objects.

Bug Fixes

  • Update the dependency to log4j to version 2.17.0 after the announcement of a major security issue in the previous version.
  • JSBML core does no longer have dependencies to any of the packages
  • Preventing ASTNode.astNodeToTree from recursive calls
  • Correction of wrong comparisons with == where .equals() needs to be called for String comparison
  • Fixed Incorrect usage of model annotation
  • Fixed return type of createRenderCubicBezier method to RenderCubicBezier Thanks to @eikept for this fix!
  • Fixed incorrect unit derivation. Thanks to @eikept for this analysis!

When using JSBML, please cite:
☞ Rodriguez N., Thomas A., Watanabe L., Vazirabad I.Y., Kofia V. et al. JSBML 1.0: providing a smorgasbord of options to encode systems biology models. Bioinformatics (2015), 31(20):3383–3386. https://doi.org/10.1093%2Fbioinformatics%2Fbtv341

JSBML 1.6.1ɑ

10 Jan 10:13
85b23c0
Compare
Choose a tag to compare

This release fixes dependencies to third-party libraries. Changes to the code base itself are very minor. Updated are the Maven files (pom.xml) and included libraries (jar files):

  • log4j has been bumped to version 2.17.1
  • biojava-ontology was bumped to version 6.0.4.

To access this version of JSBML via Maven use:

<dependency>
 <groupId>org.sbml.jsbml</groupId>
 <artifactId>jsbml</artifactId>
 <version>1.6.1-SNAPSHOT</version>
</dependency>

JSBML 1.6

10 Jan 13:58
Compare
Choose a tag to compare

We are pleased to announce the release of JSBML-1.6, which is now available for download from GitHub and Maven.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

https://sbml.org/software/jsbml/

Major new features

  • Convenient features, such as quick check for the presence of any specific SBase extension
  • Improvements to the documentation (JavaDoc, users' guide, and the project's README file)
  • Broader coverage of the offline validation capability
  • Improved support for constraint-based modeling in the ModelBuilder: automatic creation of common unit definition objects.

Bug fixes

  • Update the dependency to log4j to version 2.17.0 after the announcement of a major security issue in the previous version.
  • JSBML core does no longer have dependencies to any of the packages
  • Preventing ASTNode.astNodeToTree from recursive calls
  • Correction of wrong comparisons with == where .equals() needs to be called for String comparison
  • Fixed Incorrect usage of model annotation
  • Fixed return type of createRenderCubicBezier method to RenderCubicBezier
  • Fixed incorrect unit derivation

Thank you for your interest and support of JSBML and SBML in general.

When using JSBML, please cite

The JSBML team.

JSBML 1.5

10 Jan 13:58
Compare
Choose a tag to compare

We are pleased to announce the release of JSBML-1.5, which is now available for download from GitHub and Maven.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

http://sbml.org/Software/JSBML

Major new features

  • Support the new SBML Level 3 Distributions (distrib) package, Version 1
  • Support the latest draft specification for the SBML Level 3 Spatial Processes (spatial) package
  • Validation for the spatial and the SBML Level 3 Rendering (render) packages

This release contain other features, improvements and bug fixes for SBML core and the SBML Level 3 packages. You can find a detailed list of the user-visible changes on the NEWS file.

Thank you for your interest and support of JSBML and SBML in general.

When using JSBML, please cite

The JSBML team.

JSBML 1.4

16 Aug 12:14
Compare
Choose a tag to compare

We are pleased to announce the release of JSBML-1.4, which is now available for download from GitHub (above) and from SourceForge.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

http://sbml.org/Software/JSBML

The main new feature in this release is the development of the offline validator. We have also started to write some converters that transform SBML documents. Some progress were made on the offline validator, you can get a detailed report of what is left to be done in a separate wiki page.

You can find a detailed list of the user-visible new features and bug fixes since JSBML version 1.3 on the NEWS file.

Thank you for your interest and support of JSBML and SBML in general.

The JSBML team.

JSBML-1.3.1

19 Dec 12:45
Compare
Choose a tag to compare

We are pleased to announce the release of JSBML-1.3.1, which is now available for download from GitHub (above) and from SourceForge.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

http://sbml.org/Software/JSBML

The main new feature in this release is the support for SBML Level 3 Version 2 and the development of the offline validator. We have also started to write some converters that transform SBML documents. In particular, a converter that expands function definitions that was requested several times by our community. Some very good progress was made on the offline validator, you can get a detailed report of what is left to be done in a separate wiki page. Since the last release, we made the offline validator more user-friendly by provided error messages similar to libSBML with a first part that explains the specification and a second part that describe the element and why it failed the rule. We hope to have the offline validator complete by the end of next year when it will be used by default.

You can find a detailed list of the user-visible new features and bug fixes since JSBML version 1.2 on the NEWS file.

Thank you for your interest and support of JSBML and SBML in general.

The JSBML team.

JSBML-1.3

13 Dec 14:39
Compare
Choose a tag to compare

We are pleased to announce the release of JSBML-1.3, which is now available for download from GitHub (above) and SourceForge.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

http://sbml.org/Software/JSBML

JSBML-1.2

13 Dec 12:17
Compare
Choose a tag to compare

We are pleased to announce the release of JSBML-1.2, which is now available for download from GitHub (above) and from SourceForge.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit the JSBML project home page:

http://sbml.org/Software/JSBML

The main new feature in this release is the support for SBML Level 3 Version 2 (RC2). This involved some changes in the class hierarchy of JSBML. A notable SBML change introduced in SBML Level 3 Version 2 is that every SBase object can have an id and a name attribute. In JSBML, for compatibility reasons, we did not change the NamedSBase interface, so not every SBase is a NamedSBase. Only SBML elements that had id and name in SBML Levels/Versions below L3V2 will extend NamedSBase. So, when implementing support for SBML L3V2, we recommend that developers try to avoid using NamedSBase and just use SBase instead. The same is true for the JSBML classes UniqueNamedSBase and UniqueSId. If you were using the UniqueNamedSBase class, please try to use UniqueSId instead. As part of the upgrade to support SBML L3V2, users should also consider checking how they access InitialAssignment, Rule and EventAssignment objects, as often the methods make use of the variable or symbol attribute instead of the id attribute.

We have upgraded the minimum JDK requirement to 1.7 for this release, to be able to use the latest versions of the third-party libraries needed by JSBML. As the number of third-party libraries having JDK 1.8 as a minimum requirement increases, we may need to increase the minimum JDK requirement to 1.8 for next year's JSBML releases. (Please let us know in advance if you think requiring JDK 1.8 will be a problem for you.)

The method toString() available on most JSBML classes has been replaced by a generic method, so you may find some differences in the output produced by the JSBML classes compared to previous versions. One method we did not change for now is ASTNode.toString(), because doing so could cause many side effects. As part of the upgrade to SBML L3V2 and JSBML 1.2, we advise users to make sure they use ASTNode.toFormula() when they want to show/store the infix formula representation of an ASTNode, and to not rely on the toString() method for that purpose. Don't hesitate to provide us with some feedback about this change. We tried to keep any significantly different toString() method under a different name, starting with print and followed by the class name, for example Unit.printUnit() will produce the same output as the Unit.toString() method in JSBML 1.1.

Since the time of the last JSBML release, we have moved the JSBML source code repository to GitHub. Although we provide the main download files from GitHub, we will continue to distribute the releases from SourceForge until we develop a suitable release replacement scheme using either GitHub or sbml.org.

You can find a detailed list of the user-visible new features and bug fixes since JSBML version 1.1 on the NEWS file.

Thank you for your interest and support of JSBML and SBML in general.

The JSBML team.

JSBML 1.2-β1

26 Oct 14:33
Compare
Choose a tag to compare

JSBML-1.2-beta1

We are pleased to announce the release of JSBML-1.2-beta1, which is now available for download from github below and from sourceforge.

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit

http://sbml.org/Software/JSBML

The main new feature in this release is the support for SBML Level 3 Version 2 (RC1). This involved some changes in the class hierarchy of JSBML. A notable SBML change introduced in SBML Level 3 Version 2 is that every SBase object can have an 'id' and a 'name' attribute. In JSBML, for compatibility reasons, we did not change the NamedSBase interface, so not every SBase is a NamedSBase. Only SBML elements that had 'id' and 'name' in SBML Levels/Versions below L3V2 will extend NamedSBase. So, when implementing support for SBML L3V2, we recommend that developers try to avoid using NamedSBase and just use SBase instead. The same is true for the JSBML classes UniqueNamedSBase and UniqueSId. If you were using the UniqueNamedSBase class, please try to use UniqueSId instead. As part of the upgrade to support SBML L3V2, users should also consider checking how they access InitialAssignment, Rule and EventAssignment objects, as often the methods make use of the 'variable' or 'symbol' attribute instead of the 'id' attribute.

We have upgraded the minimum JDK requirement to 1.7 for this release, to be able to use the latest versions of the third-party libraries needed by JSBML. As the number of third-party libraries requiring JDK 1.8 as a minimum requirement increases, we may need to increase the minimum JDK requirement to 1.8 for next year's JSBML releases. (Please let us know in advance if you think requiring JDK 1.8 will be a problem for you.)

The toString() method of most JSBML classes has been replaced by a generic method so you may find some changes in the output produced by the JSBML classes. One method we did not change for now is ASTNode.toString(), because doing so could cause many side effects. As part of the upgrade to SBML L3V2 and JSBML 1.2, we advise users to make sure they use ASTNode.toFormula() when they want to show/store the infix formula representation of an ASTNode, and to not rely on the toString() method for that purpose. Don't hesitate to provide us with some feedback about this change. We tried to keep any significantly different toString method under a different name, starting with 'print' and followed by the class name, for example Unit.printUnit() will produce the same output as the Unit.toString() method in JSBML 1.1.

Since the time of the last JSBML release, we have moved the JSBML source code repository to github.com. Although we provide the main download files from GitHub, we will continue to distribute the releases from SourceForge until we develop a suitable release replacement scheme using either GitHub or sbml.org.

You can find a detailed list of the user-visible new features and bug fixes since JSBML version 1.1 on the NEWS file.

Thank you for your interest and support of JSBML and SBML in general.

The JSBML team.

JSBML-1.0

23 May 12:46
Compare
Choose a tag to compare

JSBML-1.0

We are pleased to announce the final release of JSBML-1.0, which is now available for downloading from

 https://sourceforge.net/projects/jsbml/files/jsbml/1.0

JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

For more details, please visit http://sbml.org/Software/JSBML

At the end of this message, you can find a detailed list of the user-visible new features and bug fixes since 1.0-beta1 and 1.0-rc1.

The most important new feature of JSBML-1.0 is the support for the SBML Level 3 packages. The list below explains which ones are supported exactly and which ones are experimental. An experimental package support is provided when the SBML Level 3 package specifications have not yet been finalized, and the package implementations are themselves in a state of development and provided 'as-is' for experimental development only.

An other major change is that now the XML annotation element is read as an XMLNode object class instead of String. This will hopefully make it easier to manipulate nonstandard annotations.

Other notable changes include: the manipulation and merging of units have been significantly improved, the modules for CellDesigner plugins and libSBML input/output have been rewritten, bugs have been fixed in the cloning of whole SBMLDocument and their subcomponents, and bug fixes have been fixed in the notification of change listeners.

For people using jsbml-0.8, the link below will highlight the api changes since 0.8:

http://sbml.org/Special/Software/JSBML/1.0/doc/JSBML_API_changes_0.8_to_1.0/changes.html

Release plan: We will try to have shorter release from now on. We will start working on the support for SBML L3V2, L2V5 that should arrive quickly and we will soon merge into trunk the work done on refactoring the ASTNode class.

Thank you for your interest and support of JSBML and SBML in general.

The JSBML team.

Version 1.0 (09-12-2014)

  • New Features:
    • Added a new module that contains a tidy SBMLWriter that uses
      the jtidy library to correct the formatting of the XML file
      before writing it out.
    • Created a new class SyntaxChecker that corresponds to the class in
      libSBML and moved pattern matching for id comparisons and e-mail
      addresses into this class.
    • Updated JSBML to create identifiers.org URIs instead of URNs for
      units.
    • Support for SBML Level 3 'Dynamic Structures (dyn)' package:
    • First draft of JSBML implementation done (experimental).
  • Bug Fixes:
    • Solved error #82 in Unit.removeMultiplier. Thanks to Christian
      Thöns for pointing this out.
    • The registerChild method now returns a boolean value to indicate if
      the operation was successfully completed. This prevents users from
      adding duplicates to ListOf objects.
    • Improvements made to the java API documentation (javadoc).
    • Added a check to write only the necessary namespaces when writing
      CVTerm to XML.
    • Support for SBML Level 3 'Hierarchical Model Composition (comp)'
      package:
    • Registering SBaseRef correctly in the document. Corrected the clone
      constructor of SBaseRef that did not copy the recursive SBaseRef.
    • Added all the missing equals and hashCode methods in the comp
      package.
    • Support for SBML Level 3 'Arrays' package:
    • Several fixes and improvements in the validation code and the
      flattening code.

Version 1.0-rc1 (24-09-2014)

  • New Features:
    • Changed the default behaviour of the parsing of math infix formula.
      The methods concerned are JSBML#parseFormula and
      ASTNode#parseFormula.
      The changes include a different operator precedence, to match the
      one used in the L3 libSBML parser. The parsing is also case
      sensitive for mathML elements. Boolean operators are now
      differently interpreted: '&&' and '||' are used instead of 'and'
      and 'or'. Please consult the JavaDoc of those methods for more
      details, it is also explain there what to do if you want to keep
      the old behaviour.
    • Added two new BioModels.net qualifiers, bqmodel:isIntanceOf and
      bqmodel:hasInstance.
    • BioJava was updated to the latest version and the dependency is
      now to biojava3-ontology.
    • Added removeCVTerm methods in Annotation and SBase.
    • An IdManager interface has been introduced to help deal with the
      different id namespace in SBML core and in the different packages.
    • JSBML now provides a convenient ModelBuilder that can be used to
      create SBML models with a significantly lower number of lines of
      code for the end user.
    • Improved Java source code documentation (in particular CVTerm).
    • The SBMLDocument has now a convenient method to access all metaIds
      within the document in form of an unmodifiable Collection.
    • The SBO class provides more methods to access those terms that are
      of particular interest for SBGN displays.
    • A general Pair of arbitrary values now generalizes ValuePair.
    • The toString() methods in UnitDefinition and SpeciesReferences
      have been improved and are now more informative.
    • Internally, JSBML no longer creates Unit objects that lack
      required attributes when reading models. (However, this does not
      prevent users from creating new Unit objects without such
      attributes.)
    • Species and Compartment 'containsUndeclaredUnits' method has been
      overridden because in SBML L3 Species and Compartments can inherit
      a default unit from the Model. This is now considered. In this
      case, containsUndeclaredUnits will return false even if the object
      itself does not explicitly declare its unit. This is important
      because the unit of the element is not undefined.
    • Added some missing methods to manipulate EvenAssignment in Event
      and improved the JavaDoc of the Event class.
    • Added some missing getter in the L3 packages classes.
    • Support for SBML Level 3 'Arrays' package:
    • Arrays package implemented, version 05/05/14. Only selector and
      vector supported for now. Validations, flattening available.
    • Added support for vector and selector infix parsing to support the
      arrays package.
    • Support for SBML Level 3 'Layout' package:
    • Added missing methods to remove GeneralGlyph objects from a Layout
      object.
    • Added further missing remove or unset methods in the layout
      package.
    • Support for SBML Level 3 'Qualitative Models (qual)' package:
    • The class QualitativeModel in the qual package has been marked
      deprecated and should no longer be used. Aiming to achieve better
      compatibility to libSBML, the new class QualModelPlugin has been
      created to be used instead.
    • Support for SBML Level 3 'Spatial Processes (spatial)' package:
    • Updated to implement version 0.88 of the draft specifications.
  • Bug Fixes:
    • Corrected the method AbstractSBase#getExtensionCount that was
      always returning 0.
    • Corrected the SBMLWriter so that disabled packages are not written
      to XML any more (they are still cloned).
    • Corrected the method SBase.appendNotes that contained several
      problems.
    • Corrected a bug when cloning a text XMLToken.
    • Fixed the AbstractSBase equals method that could throw a
      NullPointerException in some cases and was not testing all fields.
    • Fixed the CVTerm.removeResource(String) method. Thanks to Camille
      Laibe who reported the problem (tracker item #80).
    • Corrected the method ASTNode.parseFormula so that they catch any
      Exception or Error and throw a ParseException instead.
    • Added the support for the 'root' function in the parsing of math
      formula.
    • The FormulaParserLL3 was not reading properly formula like
      'kf * S0 * S1'. Only two arguments were read instead of three or
      more. Thanks to Chris J. Myers for reporting this problem.
    • Corrected a bug in Event#setListOfEventAssignments method that
      prevented the listOfEventAssignments to be registered properly in
      the model (ids and metaids registered).
    • Corrected the removeFromParent method to make it working for
      SBasePlugin instances.
    • The ListOf.remove(String) will not throw a ClassCastException
      anymore when used on list that do not contain elements with id.
    • The static method JSBML.read(String) was not calling the right
      helper method.
    • ASTNode threw a NullPointerException when trying to un-set its
      variable.
    • The AbstractTreeNode recursive method
      removeTreeNodeChangeListener(TreeNodeChangeListener, boolean) was
      not actually recursive.
    • Solved source for potential NullPointerException in LaTeXCompiler.
    • Support for SBML Level 3 'Hierarchical Model Composition (comp)'
      package:
    • Fixed several issues when cloning 'comp' elements and L3 packages
      elements in general. Thanks to Chris J. Myers and the iBioSim team
      for their help to find and fix all issues.
    • Support for SBML Level 3 'Flux Balance Constraints (fbc)' package:
    • The required flag for the fbc package was set to true instead of
      false, thanks to Chris J. Myers for reporting this problem.
    • Support for SBML Level 3 'Layout' package:
    • The implementation of the layout package contained unnecessary
      classes that all represented a Point object (Start, End, Position,
      BasePoint1, BasePoint2). In order to avoid confusion and to
      simplify the implementation, those classes have all been deleted.
    • Corrected the method Layout#setListOfAdditionalGraphicalObjects to
      avoid the warnings when cloning the list and to avoid to create a
      new list when not needed.
    • Support for SBML Level 3 'Qualitative Models (qual)' package:
    • The SBML qual attribute Output.outputLevel was not read properly
      from XML.
    • Support for SBML Level 3 'Rendering (render)' package:
    • Fixed severals bugs in the experimental render package. Renamed
      the Group class to Re...
Read more