Skip to content

Releases: sbmlteam/moccasin

Version 1.3.0

19 Jun 03:54
Compare
Choose a tag to compare

This release fixes a few bugs, but the most important new development is the introduction of self-contained executables of MOCCASIN: users no longer need to install or interact with Python at all, because MOCCASIN is now available in a form that is like any other ordinary program.

Enhancements:

  • We have successfully built self-contained, standalone executable versions of MOCCASIN so that users do not need to install wxPython or other dependencies—or even have Python installed on their computers at all. This has been made possible through the use of PyInstaller. A downside to this approach is that the executables are specific to operating system versions and we must distribute copies for specific OS versions (and not simply for OS families).

  • The keyboard shortcut for running conversions has been changed to control-r instead of control-c, to avoid confusion with a common editing shortcut.

Bug fixes:

  • The GUI interface no longer throws an error if you try to type in the file path text box.

  • The converter no longer generates an error if it encounters uses of MATLAB zeros() or ones() that employ variables instead of numbers.

  • Some aesthetic inconsistencies in the GUI layout have been fixed.

  • Other miscellaneous bugs have been fixed.

Version 1.2.0

13 May 18:22
Compare
Choose a tag to compare

There are three important changes in release 1.2.0 of MOCCASIN. The first is a massive improvement to the speed of parsing MATLAB files compared to recent performance. The second is the elimination of the separate moccasin_CLI and moccasin_GUI entry points in favor of a single program, moccasin, that can be used either to start the GUI or perform actions via the command line. The third is corrections of errors in the installation scripts so that setup.py now correctly installs dependencies, thus making installation much easier than before for most users.

Enhancements:

  • New command-line driver interface called, simply, moccasin. It features a revised set of command-line options, snazzy colors, spinners and more!

  • A past enhancement to setup.py caused it to stop being able to install dependencies normally, with the consequence that users had to install dependent Python packages by hand. This was problematic in many cases because the packages were not always easily installed. The errors in setup.py have been corrected.

  • The installation instructions have been updated and improved.

  • The GUI interface has been enhanced. In addition, the GUI interface now provides (hopefully) more helpful dialogs in error situations.

  • Huge performance improvements.

Bug fixes:

  • #49 Fixed extreme slowness of MATLAB parser.

  • #46 Fix for moccasin GUI not launching.

  • #51 Fixed bugs in checking whether MATLAB input is translatable, and add support for use of element-wise operators such as .* when they are not actually being used on matrices.

  • #52 Fixed bug in writing out very large numbers. Thanks to user @willigott for reporting the issue.

  • #53 Biocham currently seems to mistranslate unary negation, at least in some situations. MOCCASIN now has a workaround that replaces expressions of the form -x with -1 * x, which works better when passed to Biocham. This is hopefully temporary, until Biocham has a chance to address whatever the underlying issue is. Many thanks to user @willigott for reporting the issue and suggesting the workaround.

Version 1.1.2 – Bugfix release

01 Sep 15:18
Compare
Choose a tag to compare

Release 1.1.2 fixes an important bug that caused MOCCASIN to fail on some scripts lacking an enclosing function, and also adds a missing example file. Issues resolved: #19, #20.

Version 1.1.1 – Bugfix release

22 Aug 01:53
Compare
Choose a tag to compare

MOCCASIN release 1.1.1 fixes issue #15 and allows MOCCASIN to work with wxPython version 4.0.0. It also adds a missing AUTHORS.md file.

Version 1.1.0

23 Jun 22:00
Compare
Choose a tag to compare

This release features a major overhaul of the underlying MATLAB parser, as well as a substantial rewrite of the SBML/XPP converter code. The new system is much more robust in the face of a greater range of MATLAB inputs, although the types of MATLAB models it recognizes and can convert are still relatively limited.

The new MATLAB parser correctly parses much more of the MATLAB syntax, thus eliminating many previous parsing errors and failures. There are now hundreds of new test cases for different syntactic forms of MATLAB. The known cases of MATLAB syntax that are not yet handled are only the following:

  • user-defined classes are not yet supported at all
  • cell arrays are parsed in a limited way, and in particular, nested cell array references will fail
  • commas and spaces cannot be mixed in a row of an array: e.g., [1, 2 -3 +4] will fail to parse as expected
  • comments inside arrays are discarded
  • comments after continuations are discarded
  • continuations (i.e., ...) inside strings will cause the strings to be mangled
  • continuations in shell commands are not handled correctly

The MATLAB parser also implements a weak, heuristic form of "kind" analysis to try to disambiguate function calls from array references (which in MATLAB are syntactically identical). The inability of MOCCASIN to access the user's MATLAB environment makes it impossible for MOCCASIN to ever be able to do full kind analysis, but the heuristics take it very far for many use-cases in MOCCASIN's domain.

The updated converter is more robust for more cases, and reports many more errors and failures of conversion. It takes advantage of more features of the XPP input syntax handled by BIOCHAM, allowing the final converted SBML output to be a more faithful representation of the input model. However, the scope of models it can convert has only widened slightly – the converter is not yet able to convert a greater range of MATLAB models than it did before. Handling a wider range of MATLAB inputs will require implementing solutions to such things as handling loops, handling if statements, loading .mat files, and converting array variables into scalar variables so that they can be expressed in SBML (which does not yet support array variables).

Despite these limitations, the converter is able to convert significant real-world models. As an example of the capabilities of MOCCASIN 1.1.0, it was used to convert model BIOMD0000000608 in BioModels Database. The original MATLAB model is 770 lines long and the converted form has 140 SBML reactions.

Version 1.0.3 -- Bugfix release

20 Sep 21:12
Compare
Choose a tag to compare

This release fixes a couple of small problems:

  1. Travis builds were failing due to some package authentication errors.

  2. The previous version number update failed to update the version number stored inside XPP test files written by MOCCASIN, which caused all the XPP ODE file tests to fail.

Version 1.0.2 -- Bugfix release

07 Aug 17:58
Compare
Choose a tag to compare

The only change in this release is that the version number in moccasion/version.py has been updated. (It was not updated in the last release, leading to confusion about which version is current.)

Version 1.0.1 -- bugfix release

03 Aug 04:13
Compare
Choose a tag to compare

This fixes a bug reported by Sebastien Moretti, wherein users would get an import error if they supplied the full path to the moccasin_CLI.py or moccasin_GUI.py interfaces rather than executing them from within the moccasin directory.

This also checks for the version of wxPython and complains if it's less than 2.9. This is needed because the GUI code relies on wx.html2, which was introduced in 2.9.

Version 1.0.0

01 Apr 21:12
Compare
Choose a tag to compare

This is a first, fully functional release of MOCCASIN, with both a GUI and a command line interface. Its scope is limited – the types of MATLAB input it understands is very constrained. However, it is still fair to call this a complete version 1.0.0 release.