Releases: sbmlteam/moccasin
Version 1.3.0
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()
orones()
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
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 insetup.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
Version 1.1.1 – Bugfix release
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
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
This release fixes a couple of small problems:
-
Travis builds were failing due to some package authentication errors.
-
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
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
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
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.