ISB Logo

ISBJava Version History

CompBio Group, Institute for Systems Biology

Group Logo

This document contains the version history for the ISBJava software product.

Version Date Comments
2.4.4 2006/09/28
  • Fixed a bug in org.systemsbiology.util.ClassRegistry that caused a ClassCastExcption for certain Windows installations; it appears to be something appearing in the classpath that is neither a directory or a JAR file. Inserted defensive code to check before casting, and to ignore the case where the URLConnection cannot be cast to a JarURLConnection. Thanks to Patrick Grant for reporting this bug.
  • Fixed a bug in org.systemsbiology.chem.TimeSeriesOutoutFormat that resulted in localized numbers being output, which in Germany means that a comma is used as the symbol for the decimal place. This was causing problems for Matlab interpreting the "matlab output" file format. Thanks to Steffen Waldherr (Univ. Stuttgart) for pointing out this bug, and for providing a bug fix.
  • Fixed a bug in org.systemsbiology.chem.SimulatorStochasticGibsonBruck, that was preventing reactions whose propensities are an explicit function of time, from having their next "firing time" updated after each iteration of the algorithm. Thanks to Dominique Chu (University of Kent, UK) for reporting this bug.
2.4.3 2006/04/18
  • Fixed a bug in org.systemsbiology.chem.sbml.ModelBuilderMarkupLanguage, in handling a species concentration rule in an SBML model. Thanks to Nguyen Van Tam (JMI, New Delhi) for submitting this bug report, and the bug fix.
  • Fixed a bug in org.systemsbiology.chem.SimulatorStochasticGibsonBruck, that was preventing reactions whose propensities are an explicit function of time, from having their next "firing time" updated after each iteration of the algorithm. Thanks to Dominique Chu (University of Kent, UK) for reporting this bug.
2.4.2 2006/01/26
  • Installed the new version of SBWCore.jar, for compatibility with the Systems Biology Workbench (SBW) version 2.5.0.
2.4.1 2005/08/11
  • Fixed a bug in org.systemsbiology.chem.app.EditorPane, where a NullPointerException was occurring when the user attempted to run "Tools->Simulate" on a model that did not have a filename associated with it yet, in the editor pane.
2.4.0 2005/07/08
  • Added a new class org.systemsbiology.chem.ModelExporterCommandLanguage, which saves a Model in Chemical Model Definition Language (CMDL) format.
  • Added a new method org.systemsbiology.chem.SymbolEvaluationPostProcessor.modifySymbol(), which will replace a species symbol name with the ratio "sym/com" where "sym" is the species symbol name, and "com" is the compartment name. This is used by the org.systemsbiology.chem.ModelExporterCommandLanguage for exporting a SBML model to CMDL. Implemented this method in the subclass org.systemsbiology.chem.sbml.SymbolEvaluationPostProcessorChemMarkupLanguage.
  • Changed method org.systemsbiology.chem.ModelBuilderCommandLanguage.getDefaultCompartment() to be package visible, and removed an unneeded assertion within the method. The method is called by org.systemsbiology.chem.ModelExporterCommandLanguage, from outside the class.
  • Added a new method org.systemsbiology.math.Expression.Element.isAtomic(), which returns true if the Element is either a symbol or a numeric element. This is used in the new org.systemsbiology.chem.ModelExporterCommandLanguage class.
  • Fixed a bug in the org.systemsbiology.chem.app.ModelExporter class, where the current working directory was not being set when the file browser is opened, to select the output file for exporting a model.
  • Refactored the current directory code, so that only the org.systemsbiology.chem.app.MainApp has a mCurrentDirectory field. The mCurrentDirectory field was removed from the EditorPane class, and the latter class now uses the field from the MainApp class.
2.3.0 2005/07/01
  • Removed all classes in org.systemsbiology.chem.sbw, and added three classes ISimulationDriverService, SimulationDriverModule, and SimulationDriverService to that package. These implement a Systems Biology Workbench (SBW) Analysis service, that will process a model description in either SBML or CMDL, and display a org.systemsbiology.chem.app.SimulationLauncher window for running simulations on the model.
  • Added fields and methods to org.systemsbiology.util.AppConfig, for the application copyright string and the application maintainer's full name.
  • Modified org.systemsbiology.chem.app.AboutDialog to display the copyright string contained in the AppConfig.xml configuration file, obtained through the AppConfig class.
  • Updated the external library SBWCore.jar to version 2.3.0, in order to get a bug fix related to non-Windows platforms; this allows the removal of OS-specific workaround code that had been used in the org.systemsbiology.chem.sbw.SimulationDriverModule class.
2.2.2 2005/06/19
  • Modified org.systemsbiology.chem.sbw.SimulationService and ISimulationService to add the method loadCMDLModel(), which allows remote invocation of the SBW simulation services by passing the model definition text in CMDL format.
  • Created a test program org.systemsbiology.chem.sbw.tp.TestCMDLBuilder, which connects to the SBW broker and passes the text of a model, in CMDL format, to the org.systemsbiology.chem.sbw.GibsonBruckService simulation service.
  • Added some operating-system-specific initialization code to the main() method of org.systemsbiology.chem.sbw.SimulationModule, to work around a bug in SBWCore.jar on non-Windows platforms. (Thanks to Frank Bergmann for supplying this patch.) The bug causes clients to fail to connect to the SBW broker on non-Windows systems with newer versions of SBW.
  • Modified org.systemsbiology.chem.ModelBuilderCommandLanguage to allow a null IncludeHandler to be passed to buildModel(). This state indicates that file inclusion is not allowed in processing the model text, for security reasons. This feature is used by the loadCMDLModel() method in the SBW service class org.systemsbiology.chem.sbw.SimulationService.
2.2.1 2005/06/15
  • Fixed a bug in org.systemsbiology.chem.app.MainApp.updateMenus(), where the "File->Close" menu item was not being enabled after the user loads a zero-length file into the edit buffer.
  • Updated the SBWCore.jar library distributed in the lib subdirectory. The new version of SBWCore.jar is taken from version 2.2.1 of the Systems Biology Workbench (SBW) software distribution, and is compatible with SBW versions 2.2.1 and newer. This fixes an incompatibility with the 2.X.X versions of SBW, that was causing an exception when the org.systemsbiology.chem.sbw.SimulationModule program was executed.
2.2.0 2005/04/05
  • Updated org.systemsbiology.inference.SignificancesData and org.systemsbiology.inference.ObservationsData to require a BufferedReader object instead of a File object in their loadFromFile() methods, thus allowing defining a data object based on an alternative type of data stream, other than a file.
  • Added a new data normalization class, org.systemsbiology.inference.DataNormalizer. A graphical user interface driver is included, org.systemsbiology.inference.DataNormalizerDriver.
  • Added a new data management class, org.systemsbiology.inference.DataManagerDriver, which is essentially a spreadsheet program adapted for manipulating multi-evidence biological systems data. Data merging, sorting, and (evidence-specific) subselection are supported.
  • Added a writeToFile() method to the org.systemsbiology.inference.ObservationsData class.
  • Modified org.systemsbiology.inference.SignificancesData.loadFromFile() so that it will interpret a cell containing the string "null" (and not in the first row or first column of the data file) as an empty cell.
  • Added the org.systemsbiology.inference package, which has code for inferring a set of affected network elements from multiple evidence types.
  • Fixed a NullPointerException that was occurring when a call to org.systemsbiology.chem.ISimulator.initialize() failed (i.e., threw an exception), and when the exception was handled and initialize() was called again. This was causing unexpected behavior in org.systemsbiology.chem.app.SimulationLauncher when the model initial conditions validation (i.e., the call to org.systemsbiology.chem.SimulatorStochasticBase.checkDynamicalSymbolsInitialValues()) failed. Thanks to Vincent Rouilly for submitting the bug report.
  • Improved the error message in the exception thrown by the org.systemsbiology.chem.SimulatorStochasticBase.checkDynamicalSymbolsInitialValues() method, called indirectly by the org.systemsbiology.chem.Simulator.initialize() method, hen one of the species has an initial population value that exceeds the maximum allowed for stochastic simulations. The error message now gives the offending species name and the initial population value.
  • Refactored org.systemsbiology.chem.IModelBuilder so that the getBufferedReader() method is now turned into a readModel() method. Added a writeModel() method to the same interface. This creates a set of symmetric methods which decode/encode a model from/to a byte stream, respectively.
  • Fixed a potential problem with org.systemsbiology.chem.app.EditorPane where the saveEditBufferToFile() method was implicitly calling String.getBytes() on the contents of the edit buffer, which means that the file is being written with the platform's default character encoding. This meant that (in the case of SBML models) the encoding specified in the XML header was being ignored, and (in the case of CMDL models) the model would not be written in the UTF-8 encoding on platforms whose default encoding is not UTF-8. This means that on certain platforms, the saveEditBufferToFile method would end up writing a file that does not conform to published character encoding specifications for SBML and CMDL.
  • Fixed a bug in org.systemsbiology.chem.app.SimulationLauncher where the "secs remaining" text field would show too many significant digits when the number of estimated seconds remaining is very large.
  • Modified org.systemsbiology.chem.app.EditorPane so that it no longer uses the platform-default character encoding when translating a model into a byte stream that is passed to the org.systemsbiology.chem.IModelBuilder. This was causing unexpected behavior because different platforms have different default character encodings. The solution was to add a writeModel() method to the IModelBuilder interface, so that the EditorPane can transparently write the model to a byte stream that can be understood by the IModelBuilder. This fixed a bug whereby a SBML model with UTF-8 character encoding loaded into the EditorPane, and then subsequently passed to the IModelBuilder, would cause a SAXParserException on the Macintosh OSX platform. Thanks to Vincent Rouilly for submitting this bug report.
  • Fixed a bug in org.systemsbiology.util.DebugUtils.describeSortedObjectList() where the separator string was not being printed in every case that it should have.
  • Fixed a bug in org.systemsbiology.math.SymbolEvaluator.getValue() that was causing inconsistent results in subsequent calls to getValue() when the model is an SBML model with "substance" units of "mole" and when expression-value caching is enabled. Thanks to Vincent Rouilly for submitting the bug report.
  • Fixed a bug in org.systemsbiology.chem.app.EditorPane that was causing the editor to fail to "forget" the org.systemsbiology.chem.IModelBuilder when the edit buffer is cleared.
  • Modified org.systemsbiology.chem.SimulatorStochasticBase to call org.systemsbiology.chem.SimulatorStochasticBase.checkDynamicalSymbolsValues() to check all dynamical symbols to see if any species value exceeds the maximum allowed for stochastic simulations (approximately 9.0771993e+15), just before addRequestedSymbolValues() is called. This ensures that the stochastic simulators will continuously check to see if any species values exceed the maximum allowed species value, throughout the course of the simulation.
  • Changed main() method of org.systemsbiology.chem.app.MainApp, to "final".
  • Added a static factory method org.systemsbiology.util.AppConfig.get(), which finds the application configuration file and instantiates an AppConfig object containing the configuration data loaded from the file. Refactored org.systemsbiology.chem.app.MainApp and all four main programs in org.systemsbiology.inference (EvidenceWeightedInferer, SignificanceCalculator, DataNormalizer, and DataManager) to use this new method.
  • Created a two-argument constructor for org.systemsbiology.util.ExceptionNotificationOptionPane. This allows passing a message text to be included in the body of the dialog box.
  • Refactored classes SimulationLauncher, MainApp, and EditorPane in org.systemsbiology.chem.app, to use the two-element constructor for org.systemsbiology.util.ExceptionNotificationOptionPane.
  • Added a static method org.systemsbiology.math.probability.Normal.cdf(), which is simply a wrapper to a call in the Colt library .
  • Fixed bug in org.systemsbiology.chem.app.SimulationLauncherCommandLine where the command-line simulation launcher was not obtaining the defualt relative and absolute error tolerances for the simulator, so the user would get an error if both tolerances were not explicitly specified on the command-line.
  • Modified org.systemsbiology.chem.app.ModelViewerCytoscape so that the NetX start-up dialog box does not appear at application start-up. The dialog box asks you where to store your JNLP cache. After this modification, the dialog box should only appear the first time you actually use the "Tools -> View... -> cytoscape" feature.
2.1.1 2005/02/18
  • Added an enumeration class defining the three allowed states of graphical user inferface table column sorting status, org.systemsbiology.gui.SortingStatus.
  • Added a scrubIdentifier() method to the org.systemsbiology.data.DataFileDelimmiter class, which takes a string identifier and converts any instances of the DataFileDelimiter object's delimiter character (or string) into the "_" (underscore) character.
  • Modified org.systemsbiology.gui.HelpBrowser to cache the HelpBroker, which may help speed up the initialization process for the help browser.
  • Removed cytoscape.jar that was mistakenly being included in the ISBJava.tar.gz distribution.
2.1.0 2005/02/04
  • Renamed org.systemsbiology.gui.DataColumnSelector to org.systemsbiology.gui.TableFrame.
  • Moved the org.systemsbiology.chem.SymbolEvaluationPostProcessorChemMarkupLanguage class to the org.systemsbiology.chem.sbml package.
  • Made org.systemsbiology.chem.LoopIndex an inner class of org.systemsbiology.chem.ModelBuilderCommandLanguage.
  • Fixed a bug in org.systemsbiology.util.ClassRegistry, where certain JRE problems were causing a NoClassDefFoundError which was not being properly handled. This was causing the application to abort, when a warning message to STDERR would suffice. Now, when this error occurs, a warning message is printed, and the JRE does not abort.
  • Fixed an XML syntax error in the boilerplate application configuration resource file org.systemsbiology.chem.app.AppConfig.xml.
  • Removed the org.systemsbiology.pointillist package from the JavaDoc documentation, because it is still under development.
  • Fixed a problem with the build script build.xml, where the resource JAR files for external libraries were not included in the compilation classpath for compiling the test programs.
  • Moved the org.systemsbiology.math.MathFunctions static functions that implement vector arithmetic, to the new class org.systemsbiology.math.DoubleVector. Updated all classes that depend on these functions, to reference the new class name.
  • Added code to set the org.systemsbiology.chem.ReservedSymbolMapper in the test programs in the org.systemsbiology.chem.tp package. This code change is not necessary for the programs to work properly, but it is useful from a pedagogical standpoint, since most uses of the API will want to be able to access the reserved symbols defined in the CMDL.
  • Defined a package of probability distribution functions, org.systemsbiology.math.probability.
  • Changed org.systemsbiology.chem.SimulationAccuracyException to org.systemsbiology.math.AccuracyException.
  • Improved some parser error messages in org.systemsbiology.chem.ModelBuilderCommandLanguage.
  • Fixed a NullPointerException that was occurring in org.systemsbiology.chem.app.EditorPane, when a parser error occurred in a parsing model text when there is no filename associated with the editor buffer.
  • Refactored org.systemsbiology.chem.app.ParserPicker so that it now has two methods, selectParserAliasFromFileName() and selectParserAliasManually(). The latter method no longer displays a confirmation dialog, when the user cancels the parser selection dialog (it is left up to the calling method to detect the null return value and issue the confirmation dialog).
  • Fixed a bug in org.systemsbiology.chem.app.EditorPane where the current directory was not being set, when "save as" operation is performed.
  • Fixed a bug in org.systemsbiology.chem.ModelBuilderCommandLanguage that was disallowing parenthetic mathematical expressions within a loop definition statement. Refactored some code in same class, to ensure more consistent mathematical expression parsing in various contexts. Modified same class to allow for a comma character to appear within a mathematical expression, in preparation for allowing the min(a,b) and max(a,b) functions within the org.systemsbiology.math.Expression class.
  • Modified org.systemsbiology.math.Expression to permit two-argument functions in general, and the min() and max() functions in particular. Thanks to Adam Duguid for submitting the source code patch.
  • Fixed a bug in the cdf() method of the org.systemsbiology.math.probability.Maxwell class, in which the asymptotic limit of large argument was returning an incorrect value (greater than 1.0).
  • Added code to the org.systemsbiology.math.probability.DistributionPrinter.print() method to print the cumulative distribution function (CDF), in addition to the probability distribution function (PDF).
  • Added a file filter regular expression and a default file extension, to each instance of the org.systemsbiology.data.DataFileDelimiter class.
  • Updated the org.systemsbiology.data.MatrixString class to accept a org.systemsbiology.data.DataFileDelimiter as a delimiter, instead of a String delimiter. Fixed a potential bug for the case of a space delimiter and a column-aligned data file.
  • Fixed a bug in org.systemsbiology.math.ScientificNumberFormat.format() that was resulting in a negative argument always being formatted in scientific notation.
  • Changed the org.systemsbiology.data.DataFileDelimiter.forName() method to get().
  • Fixed some incorrect error messages in org.systemsbiology.chem.SimulatorDeterministicRungeKuttaFixed, for the case of an org.systemsbiology.math.AccuracyException.
  • Modified org.systemsbiology.util.CommandLineApp to permit passing the string "null" as an argument modifier, to obtain a null modifier for a command-line argument.
  • Modified org.systemsbiology.chem.app.SimulationLauncher and org.systemsbiology.chem.app.SimulationLauncherCommandLine to allow disabling error checking for the fixed-stepsize Runge-Kutta integrator.
  • Modified the org.systemsbiology.chem.Simulator.checkSimulationParametersForDeterministicSimulator method to allow a null parameter for the maxRelativeError and maxAbsoluteError fields of the org.systemsbiology.chem.SimulatorParameters class. This change required some modifications to several of the org.systemsbiology.chem.Simulator subclasses.
2.0.1 2004/11/18
  • Fixed a bug in org.systemsbiology.gui.DataColumnSelector, which was causing a NullPointerException when the "save" button is clicked, when the selector object was constructed using the parameterized constructor.
  • Refactored org.systemsbiology.chem.app.ModelExporter to minimize back-references to org.systemsbiology.chem.app.MainApp.
  • Refactored org.systemsbiology.chem.app.SimulationLauncher to minimize back-references to org.systemsbiology.chem.app.MainApp.
  • Changed org.systemsbiology.util.AppConfig.getProperty() method so that it is now public.
  • Modified org.systemsbiology.util.ClassRegistry to cache the set of class names for classes implementing org.systemsbiology.util.IAliasableClass. This way, we are only searching the tree of all packages and classes once. This dramatically speeds up invocations of buildRegistry() for the second and all subsequent instances of ClassRegistry.
  • Created org.systemsbiology.chem.IModelViewer as an interface for classes that implement a model-vizualization capability, whether graphical or textual. Moved org.systemsbiology.chem.app.CytoscapeViewer to org.systemsbiology.chem.app.ModelViewerCytoscape, which implements this interface. Modified org.systemsbiology.chem.app.ModelViewerHumanReadable to implement this interface. Modified org.systemsbiology.chem.app.MainMenu to have a "View" sub-menu containing the aliases of all classes implementing IModelViewer.
  • Modified org.systemsbiology.chem.app.MainMenu to have a "Export" sub-menu containing the aliases of all classes implementing IModelExporter.
  • Moved the org.systemsbiology.chem.app.MainApp.handleWindowsArgumentMangling() method to the fixWindowsCommandLineDirectoryNameMangling() method in the org.systemsbiology.util.FileUtils class..
  • Created org.systemsbiology.pointillist.IAction, which is now the interface implemented by all "Action" classes in Pointillist.
  • Moved the GUI part of org.systemsbiology.pointillist.EditPreferencesAction to a new class, org.systemsbiology.pointillist.EditPreferencesFrame.
  • Fixed a bug in NetworkIntegrationcAction, NormalizeAction, and StatisticalTestsAction that was causing a NullPointerException when the output file already exists, and the user decided to cancel the operation at the confirmation dialog box.
  • Modified org.systemsbiology.pointillist.App so that it keeps track of all open DataColumnSelector frames for data files, and when someone attemps to re-open a file that is already open, it simply raises the correponding DataColumnSelector frame. This required changes to the org.systemsbiology.pointillist.FileOpenAction class also.
  • Modified org.systemsbiology.pointillist.MatlabConnectAction to set the wait cursor, while the MatlabConnectionManager.connect() method is being called.
  • Removed the org.systemsbiology.util.BrowserLauncher class, because it is hacky, it is not being used, and it no longer works on Unix-type systems that do not have Netscape installed.
  • Deleted unused class org.systemsbiology.math.ISymbolValueMap.
  • Added a line counter feature to org.systemsbiology.chem.app.EditorPane.
2.0.0 2004/11/12
  • Fixed a bug in org.systemsbiology.chem.app.SimulationResultsTable, which was causing the table window to not be resizable.
  • Fixed a bug in org.systemsbiology.chem.app.EditorPane in which the Tools->Simulate menu item was not being enabled after the first character was typed in the editor text area.
  • Changed the org.systemsbiology.util.URLUtils class into the org.systemsbiology.util.FileUtils class. Added getExtension() and a removeExtension() methods.
  • Restructed the GUI-related classes in org.systemsbiology.chem.app and org.systemsbiology.util, to move the commonly used GUI classes to org.systemsbiology.gui. This includes org.systemsbiology.util.FramePlacer, org.systemsbiology.util.ImageTransferHandler, org.systemsbiology.chem.app.FileChooser, org.systemsbiology.chem.app.RegexFileFilter, org.systemsbiology.chem.app.SimpleTextArea, org.systemsbiology.chem.app.ExceptionDialogOperationCancelled
  • Modified org.systemsbiology.util.ExceptionUtility to allow passing any Throwable to getStackTrace(), instead of only the Exception subclass.
  • Moved the code that disables double-clicking on a Swing component, from org.systemsbiology.gui.FileChooser to a new class org.systemsbiology.gui.ComponentUtil.
  • Renamed the org.systemsbiology.util.ExceptionUtility class to org.systemsbiology.util.ExceptionUtils.
  • Renamed the org.systemsbiology.gui.ComponentUtil class to org.systemsbiology.gui.ComponentUtils.
  • Fixed a bug in org.systemsbiology.math.SignificantDigitsCalculator, for case of NaN and Infinity input to the calculate() method.
  • Modified org.systemsbiology.chem.ISimulator to add a canComputeFluctuations() method. Implemented this method in org.systemsbiology.chem.Simulator. Modified the org.systemsbiology.chem.app.SimulationLauncherCommandLine to check this method and issue an error message, if the simulator returns false and the user has requested -computeFluctuations.
  • Added a new class org.systemsbiology.gui.DataColumnSelector.
  • Refactored the org.systemsbiology.gui.FileChooser class, to remove unnecessary methods that were provided adequately by the superclass. In particular, the show() was removed, in favor of the showOpenDialog(), showSaveDialog() and showDialog() methods in the superclass.
  • Modified org.systemsbiology.math.ScientificNumberFormat class to allow for overriding the default symbols for not-a-number and infinity. Modified org.systemsbiology.chem.TimeSeriesOutputFormat to define the symbols for not-a-number and inifity, for the different output file formats.
  • Fixed a bug in org.systemsbiology.chem.ModelBuilderCommandLanguage, which was occurring when a macro reference is embedded within another macro definition. The bug was causing an exception for an undefined symbol.
  • Fixed bug in org.systemsbiology.chem.app.EditorPane in which the file dirty bit was being set, when a file was closed. This was prompting a needless dialog box about saving changes to the editor buffer, the next time the user attempted to load a model definition file.
  • Modified org.systemsbiology.math.Expression to enable parsing of floating-point numeric literals in scientific notation.
  • Added a new class org.systemsbiology.data.DataFileDelimiter, for enumerating the possible delimiters for text data files.
  • Added a new class org.systemsbiology.data.MatrixString, for loading a data file into a matrix of String objects.
  • When processing model definition files, the default locale encoding is now ignored, to ensure that model processing is consistent in all locales. Fixed bug in org.systemsbiology.chem.ModelBuilderCommandLanguage that was using different encodings on different platforms. This class now uses UTF-8 encoding on all platforms, for interpreting the CMDL model description from the byte stream. Files loaded with an "include" directive in any model builder, will now be processed in the same character encoding as the parent file. Thus, in a CMDL file, when processing a "#include", the included file is required to be in UTF-8 encoding.
  • Moved the org.systemsbiology.util.Queue class and all subclasses, as well as org.systemsbiology.util.AbstractComparator to the org.systemsbiology.data package. Also moved the SlidingWindowTimeSeriesQueue class to the org.systemsbiology.data package.
  • Moved the org.systemsbiology.chem.app.HelpBrowser and the classes ExHelpSearchNavigator and ExHelpSearchNavigatorUI to the org.systemsbiology.gui package. Added some new mutator methods to the HelpBrowser class, to make it more flexible.
  • Added method addSuffixToFilename() to the org.systemsbiology.util.FileUtils class.
  • Fixed a potential bug in org.systemsbiology.chem.sbml.ModelBuilderMarkupLanguage where SBML files were being read in the default locale encoding for text files, and not in the encoding specified in the XML file header.
  • Moved the processModel method of the org.systemsbiology.chem.app.ModelProcessor class into the org.systemsbiology.chem.app.EditorPane class.
  • Fixed a bug (reported by Alex Kowald) in the CMDL in which an exception is thrown, if a quoted string is embedded within a deferred-evaluation mathematical expression. This prevents referencing a symbol name that contains an integer (e.g., an index) obtained from a mathematical expression, within the context of a deferred-evaluation mathematical expression. This bug potentially affects models in which the loop construct is used, in conjunction with reaction definitions with complex (deferred-evaluation) kinetic rate expressions.
  • Renamed the Ant target compiletests to compileTests.
  • Included the first version of the source code for Pointillist application, in the package org.systemsbiology.pointillist
  • Added new class org.systemsbiology.util.MatlabInterface for communicating with the Matlab console via a TCP/IP bridge. This class is used by Pointillist for executing Matlab function calls..
  • Modified org.systemsbiology.gui.HelpBrowser so that it initially sets the size of the frame to never more than 800x600.
1.8.0 2004/10/11
  • Fixed a bug in the build file that was preventing the source code from being included in the source distribution archives ISBJava.tar.gz and ISBJava.zip.
  • Modified the chemical model definition language to disallow user definition of a symbol that begins with an underscore character. This ensures that user-defined symbols will not conflict with the names of automatically defined symbols (such as automatically defined chemical reaction names).
  • Refactored Model.java, Simulator.java, and ModelBuilderCommandLanguage.java so that the internal symbol prefix does not appear as a quoted string in these classes, but is abstracted to a String field variable of the org.systemsbiology.chem.Model class.
  • Modified org.systemsbiology.chem.Model so that internal symbols are never displayed in the listbox of symbols in the org.systemsbiology.chem.app.SimulationLauncher window, and the org.systemsbiology.chem.app.SimulationLauncherCommandLine text output.
  • Modified build system to enable optimization during compilation, by default.
  • Modified org.systemsbiology.math.Expression so that the log() command in the CMDL has been changed to the ln() command. This was done for consistency with standard computer science notation, in which ln() represents the natural logarithm, and log() represents the logarithm base 10.
  • Added an initialize() method to org.systemsbiology.util.SlidingWindowTimeSeriesQueue, separate from the constructor, which can be used to re-initialize the data structure with a different number of data points.
  • Added method containsDelayedOrMultistepReaction() to the org.systemsbiology.chem.Model class, so that the org.systemsbiology.chem.app.SimulationLauncher can query whether a Model contains a delayed or multi-step reaction. This enables the simulation launcher to decide whether or not to display the "number of history bins" text field.
  • Added a new text field "number of history bins" to the org.systemsbiology.chem.app.SimulationLauncher user interface panel. This field is only displayed if the org.systemsbiology.chem.Model contains a delayed or multi-step reaction.
  • Added a new command-line option "-numHistoryBins" to the org.systemsbiology.chem.app.SimulationLauncherCommandLine class. This option enables the specification of the number of bins that are to be used to store the past values of a species that participates in a delayed or multi-step reaction. Added a new parameter numHistoryBins to org.systemsbiology.chem.SimulatorParameters, for passing this information to the simulator. Modified org.systemsbiology.chem.DelayedReactionSolver to allow changing the number of bins for storing the species value history.
  • Removed the parameter minNumSteps from the org.systemsbiology.chem.SimulatorParameters class, and all of the org.systemsbiology.chem.Simulator subclasses that depend on this parameter. This parameter was replaced with a floating-point parameter stepSizeFraction, which specifies the initial step size (as a fraction of the total time of the simulation) in the case of a deterministic/ODE simulator, and specifies the minimum number ratio of the reaction time to the leap time, in the case of the Tau-Leap simulators.
  • Changed the variable flagGetFinalSymbolFluctuations in org.systemsbiology.chem.SimulatorParameters to computeFluctuations, for consistency with the parameter name in the user interface class org.systemsbiology.chem.app.SimulationLauncherCommandLine.
  • Added a new method checkSimulationParameters to the org.systemsbiology.chem.ISimulator interface. This allows validating a set of parameters, without actually running a simulation. If the simulation parameters are determined to be invalid, an exception is thrown.
  • Added the option testOnly to org.systemsbiology.chem.app.SimulationLauncherCommandLine. This option instructs the simulation launcher to process the model definition file, validate the simulation parameters, and then exit. It can be used to test a model and simulation parameters for correctness, without having to execute a simulation.
  • Removed the intermediate species history storage in org.systemsbiology.chem.DelayedReactionSolver, for performance reasons, since it was not being used by the computeRate() method.
  • Refactored the code for validating simulator parameters to a method checkSimulationParameters() in org.systemsbiology.chem.Simulator. This method calls an abstract method checkSimulationParametersImpl that must be provided by each Simulator subclass, in order to allow the subclass to perform its own simulator-specific simulation parameter validation.
  • Modified org.systemsbiology.chem.app.SimulationLauncherCommandLine to print out the average number of iterations per second, during the last status statistics-collecting interval.
  • Fixed a serious inefficiency in org.systemsbiology.chem.Simulator in which the clearExpressionValueCaches() method was looping over an array of all non-dynamic symbols, including those symbols that were not expressions. Modified to loop only over an array of non-dynamic symbols that are expressions. Changed the aforementioned method to be non-static, so that the subclasses of Simulator do not have to pass the array data structure to the method.
  • Changed the "print" output type so that it now is called "table", in the org.systemsbiology.chem.app.SimulationLauncher dialog box. In the same dialog, changed the output type "file" to "store". Add a org.systemsbiology.chem.app.SimulationResultsTable class that displays the simulation results in a JTable.
  • Changed org.systemsbiology.chem.app.Plotter into org.systemsbiology.chem.app.SimulationResultsPlot, and made it extend JFrame. The class now displays the model name, date/time, and simulator alias in a JLabel outside the plot image.
  • Modified org.systemsbiology.chem.app.SimulationLauncher to keep a JList of past simulation results, and to allow re-generating a plot or simulation results table, from the past simulation results. This list is re-initialized each time the model is re-processed.
  • Added classes org.systemsbiology.math.SignificantDigitsCalculator and org.systemsbiology.math.ScientificNumberFormat, which are used to display a floating-point number with the number of significant digits calculated from specified absolute and relative error tolerances.
  • Added a function log10() to the org.systemsbiology.math.MathFunctions class. This is used by org.systemsbiology.math.SignificantDigitsCalculator.
  • Added new methods placeInCascadeFormat() and placeInCenterOfScreen() to org.systemsbiology.util.FramePlacer, that accept a JFrame as an argument. These are used in org.systemsbiology.chem.app.SimulationLauncher for placing the SimulationResultsTable and SimulationResultsPlot frames. Modified the method call in org.systemsbiology.chem.app.MainApp, accordingly.
  • Moved generateSimulationResultsLabel() method from org.systemsbiology.chem.app.SimulationLauncher to org.systemsbiology.chem.SimulationResults class, so that applications using the programmatic org.systemsbiology.chem.ISimulator API will have access to the simulator results label, for display purposes. Added the model name to the SimulationResults class as a data member.
  • Fixed a potential bug in org.systemsbiology.chem.Simulator and org.systemsbiology.chem.SimulatorStochasticTauLeapBase so that the maximum allowed relative error cannot be greater than unity.
  • Modified SimulationLauncherCommandLine to use the org.systemsbiology.math.ScientificNumberFormat class, for formatting the floating point values that it prints out.
1.7.0 2004/06/08
  • Added the capability to detect the "substance" units in an SBML model, to the SBML-parsing library, SBMLReader. Modified the ModelBuilderMarkupLanguage to use this capability to configure the SymbolEvaluationPostProcessorChemMarkupLanguage to auto-convert species symbols appearing in formulas, from molecules to molar concentration.
  • Fixed a bug in the org.systemsbiology.util.ClassRegistry such that the registry was not working properly, when an application using ISBJava is deployed using Java Web Start. The ClassRegistry class was not using the correct method to obtain the current user-space class loader.
  • Overhauled the org.systemsbiology.util.Queue class so that it is now an abstract base superclass for IndexedPriorityQueue, PriorityQueue, and ListQueue. This enables the alternate use of PriorityQueue and ListQueue within org.systemsbiology.chem.DelayedReactionSolver, for storing the expected times for a delayed reaction to produce product molecules.
  • Made org.systemsbiology.math.SymbolEvaluationPostProcessor cloneable, which is necessary because some of the post processor class implementations are stateful and therefore need to be cloned by the org.systemsbiology.chem.Simulator before they can be used. Each Simulator needs to have its own separate copy of the applicable SymbolEvaluationPostProcessor object. Otherwise, models loaded from SBML with substance units of "mole" will not function properly in any but the first simulator selected in the simulation controller window.
  • Modified the org.systemsbiology.chem.sbml.ModelExporterMarkupLanguage so that it preserves the substance units that the model originally had when it was imported, when exporting a model to SBML.
  • Modified the org.systemsbiology.chem.odetojava.SimulatorOdeToJavaBase so that it takes a smaller initial step size, when there are delayed reactions in the model.
  • Modified the org.systemsbiology.chem.sbw.SimulationModule so that it prints out a message indicating that the simulators have been registered or initiated.
  • Fixed potential ArrayIndexOutOfBoundsException in org.systemsbiology.chem.app.SimulationLauncher if there is a class loading problem, and the ClassRegistry does not discover any org.systemsbiology.chem.ISimulator classes in the classpath.
  • Modified the org.systemsbiology.chem.TimeSeriesSymbolValuesReporter class so that it prints symbol values in scientific notation.
  • Fixed a bug in org.systemsbiology.chem.SymbolEvaluatorChem.getExpressionValue() where it was not finding symbols in the local symbols map. This was causing a NullPointerException when an SBML model with local reaction parameters, is simulated using the org.systemsbiology.chem.SimulatorStochasticTauLeapComplex simulator.
  • Moved the org.systemsbiology.chem.Reaction.computeRatePartialDerivative() method to the org.systemsbiology.chem.Simulator class, in order to fix a bug where SBML models with local parameters were not being simulated correctly.
  • Modified the org.systemsbiology.chem.DelayedReactionSolver so that multistep and delayed reactions are handled completely separately. Fixed some problems with how delayed reactions were being numerically solved in the ODE simulators.
1.6.4 2004/04/05
  • Added the IVisitor interface to the org.systemsbiology.math.Expression class, which makes it possible to call some user-constructed code on every node of a parsed expression tree. This was needed in order to fix some inefficiencies in the Gibson-Bruck simulator, as described below.
  • Refactored the ReactionParticipant inner class code from the org.systemsbiology.chem.Reaction class to become a separate class. This makes it less cumbersome for the Simulator class to refer to the ReactionParticipant.Type enumerations.
  • Moved all of the data structures used by the Simulator class tree, out of the org.systemsbiology.chem.Reaction class, and into the org.systemsbiology.chem.Simulator class.
  • Fixed an inefficiency in the SimulatorStochasticGibsonBruck, where reaction rates for reactions with custom reaction rate expressions, were being recomputed after every iteration. Now, the Expression.IVisitor interface is used to build a dependency tree of the reaction rate expression. The reaction rate is then recomputed only when one of the dynamical elements it is dependent upon, has changed.
  • Split the SimulatorStochasticGillespieTauLeap into two separate simulators, SimulatorStochasticTauLeapComplex and SimulatorStochasticTauLeapSimple. This allows for using different algorithms for calculating the leap time, for complex and simple models.
  • Modified the updateSymbolValuesForReaction() method in the SimulatorStochasticBase class, in order to improve speed.
  • Changed the org.systemsbiology.chem.DelayedReactionSolver class so that it is no longer a subclass of org.systemsbiology.math.Expression. Fixed a problem with the org.systemsbiology.chem.DelayedReactionSolver.computeValue() where the delay was artificially long in some cases, and renamed the method computeRate().
1.6.3 2004/03/26
  • Fixed a bug in org.systemsbiology.chem.sbml.ModelBuilderMarkupLanguage, that was reported by Adam Margolin. This bug would cause an error in some cases, where there are more boundary species than dynamical species in a model.
  • Improved the speed of the SimulatorStochasticGillespieTauLeap simulator, for large models with complex reaction rate expressions.
  • Made some speed improvements to org.systemsbiology.math.Expression.computeValue()
1.6.2 2004/03/22
  • Implemented expression value caching for the deterministic simulators. This improves simulation performance for complex models containing nested sub-expressions. Removed the usesExpressionValueCaching() method from the org.systemsbiology.chem.Simulator class and its subclasses. Refactored clearExpressionValueCaches() from the simulator subclasses to the Simulator parent class, and made this method a static method to improve performance.
  • Modified the SimulatorStochasticBase so that if the initial value for a dynamic species is not an integer, it will use the random number generator to select the nearest integer, in a weighted fashion, so that on average the initial value is equal to the floating-point value specified.
  • Fixed a bug in org.systemsbiology.chem.app.SimulationLauncherCommandLine, such that the output file format specified on the command-line was being ignored.
  • Modified org.systemsbiology.chem.Reaction.computeRate() so that it correctly handles fractional species populations for non-dynamic (boundary) species, for the case of stochastic simulations.
1.6.1 2004/03/12
  • Fixed some instability problems with the org.systemsbiology.chem.SimulatorStochasticGillespieTauLeap simulator.
  • Optimized the org.systemsbiology.chem.SimulatorStochasticGillespieTauLeap simulator.
1.6.0 2004/03/10
  • Added a new stochastic simulator, org.systemsbiology.chem.SimulatorStochasticGillespieTauLeap.
  • Made some performance improvements to the org.systemsbiology.util.Queue class, and added a new peekNext() method that is now used by the org.systemsbiology.chem.DelayedReactionSolver.
  • Made several speed improvements to the org.systemsbiology.util.PriorityQueue class, which also required a slight change to the org.systemsbiology.util.IndexedPriorityQueue class.
  • Added the getExpressionValue() method to the org.systemsbiology.math.Value class and the org.systemsbiology.math.SymbolEvaluator class.
  • Changed several classes to type final, to improve run-time performance.
  • Added several new methods to the Expression class: add(), multiply(), subtract() divide(), negate(), and square(). These new methods are used by the SimulatorStochasticGillespieTauLeap simulator, and the Reaction class.
  • Changed the simulate() method to return a SimulationResults object, to allow for different and more complex types of simulation results.
  • Switched the org.systemsbiology.chem.DelayedReactionSolver to using a faster Queue data structure, instead of the slower PriorityQueue data structure.
  • Added a feature whereby the Simulator classes are now capable of computing the fluctuations of dynamical symbols (species), at the final time point of the simulation. For stochastic simulators, a direct ensemble average calculation is done to obtain the fluctuations, in org.systemsbiology.chem.SimulatorStochasticBase.. For ODE simulators, the Jacobian of the model is used to obtain an estimate of the fluctuations, in org.systemsbiology.chem.SteadyStateAnalyzer.
  • Refactored the org.systemsbiology.math.SymbolEvaluator class and subclasses, to improve modularity and performance. This resulted in the creation of the org.systemsbiology.chem.ReservedSymbolMapperChemCommandLanguage class, and the org.systemsbiology.chem.SymbolEvaluationPostProcessorChemMarkupLanguage class, and the removal of the org.systemsbiology.chem.SymbolEvaluatorChemCommandLanguage class and the org.systemsbiology.chem.SymbolEvaluatorChemMarkupLanguage class.
  • Fixed a bug in org.systemsbiology.chem.ModelBuilderCommandLanguage where a symbol defined within an included file, would never appear as a species in the containing model, even if it is included as a participant in a reaction.
  • Fixed a bug in org.systemsbiology.chem.odetojava.SimulatorOdeToJavaBase where the initial step size was too large, in the case of large stopTime, in models with a delayed reaction with a large delay time. Fixed a similar bug in org.systemsbiology.chem.SimulatorDeterministicBase, so that it correctly calculates the initial step size, for cases of a delayed single-step reaction.
  • Fixed a problem in the org.systemsbiology.chem.Reaction class, that was causing stochastic simulations with a non-integer initial value for species populations, to become unstable.
1.5.2 2004/02/25
  • Modified the org.systemsbiology.math.Expression class so that it is possible to use a custom SymbolPrinter class to print symbols in any format desired. This is used by the org.systemsbiology.chem.sbml.ModelExporterMarkupLanguage to export a model built from CMDL, into SBML.
  • Fixed bugs in org.systemsbiology.chem.sbml.ModelExporterMarkupLanguage, so that it now exports correct kineticLaw formulas in the case where the model was originally built from a CMDL description.
  • Removed the SpeciesRateFactorEvaluator class and subclasses, for performance reasons.
  • Created a new SymbolEvaluatorChem class and subclasses, to handle the different ways that Species symbols are interpreted in models built from SBML and CMDL.
  • Fixed a problem whereby formulas in SBML models were not being interpreted correctly by the simulator; species symbols were not being interpreted as representing a concentration.
1.5.1 2004/02/24
  • Fixed a bug in how the "secs remaining" text field in org.systemsbiology.chem.app.SimulationLauncher behaves when the "Pause" button is pressed, to pause the simulation.
  • The progress bar and "secs remaining" text field in org.systemsbiology.chem.app.SimulationLauncher are now always visible, rather than only when a simulation is running.
  • Fixed a bug in how the "secs remaining" text field in org.systemsbiology.chem.app.SimulationLauncher behaves when the "Cancel" button is pressed, to cancel the simulation.
1.5.0 2004/02/13
  • Major reorganization of the source code tree. This will make it easier to compile the tree without optional external libraries, such as odeToJava and SBMLReader. It will also make it easier to reuse certain classes that have been refactored to the org.systemsbiology.util and org.sytemsbiology.chem packages.
  • Changed the org.systemsbiology.math.SymbolEvaluator abstract class and its derived classes, in order to increase the speed of the SymbolEvaluator.getValue(Symbol) method.
  • Changes to the org.systemsbiolgoy.math.MutableDouble class, for performance improvement.
  • Refactored the getIndexedValue() and getIndexedValueWithCaching() methods of the org.systemsbiology.math.Symbol class to the org.systemsbiology.math.SymbolEvaluator class, which is the more appropriate place for this functionality. Also made all data field members of the Symbol class package-visible. This will also improve speed by preventing unnecessary function calls in the dominant-case of processing a SymbolEvaluator.getValue(Symbol) invocation.
  • Removed the unneeded initialize() method on the org.systemsbiology.chem.DelayedReactionSolver class.
  • Renamed the checkIfCancelled() method of the org.systemsbiology.chem.SimulationController class to handlePauseOrCancel method. Made all methods of this class final, which may improve speed.
  • Created a org.systemsbiology.chem.SimulationProgressReporter class that gives periodic updates (with a customizable interval) on the progress of the simulation (fraction complete, number of iterations, and timestamp of the update.
  • Updated the org.systemsbiology.chem.Simulator to use a customizable update interval for both the check of the SimulationController status (for pause or cancel) as well as status updates through the SimulationProgressReporter. Added an abstract method isStochasticSimulator() to the Simulator class, and removed the method from the ISimulator interface, so that independent ISimulator class implementations do not need to implement this method.
  • Created a new class org.systemsbiology.chem.TimeSeriesOutputFormat to replace the inner class org.systemsbiology.chem.TimeSeriesSymbolValuesReporter.OutputFormat. This makes it somewhat easier to use the TimeSeriesSymbolValuesReporter class.
  • Removed needless call to clearExpressionValueCaches in org.systemsbiology.chem.SimulatorStochasticGillespie and in org.systemsbiology.chem.SimulatorStochasticGibsonBruck. This gives a small increase in the speed of these two simulators.
  • Made the ISimulator.initialize() method no longer take SimulationController as an argument. Instead, the simulation controller (if desired) is set using the setController() method on the ISimulator interface.
  • Added a new progress bar control to the org.systemsbiology.chem.app.SimulationLauncher.
  • Changed the org.systemsbiology.chem.app.SimulationLauncherCommandLine to allow for optionally printing out progress information to stderr, including the expected "time to completion" of the simulation, in seconds.
  • Modifided the org.systemsbiology.chem.app.SimulationLauncher to show the expected "time to completion" of the simulation, in seconds.
  • Fixed a problem in the jfreechart.jar archive that was causing error messages on start-up of the org.systemsbiology.chem.app.MainApp class.
  • All external libraries needed in order to compile the ISBJava library, are now included in the downloadable installer for ISBJava. The external libraries are installed as JAR files into the "extlib" subdirectory of the user-selected installation directory.
1.4.4 2004/02/10
  • Fixed a bug in org.systemsbiology.chem.SimulatorOdeToJavaBase, in which the simulator was failing to delete the temporary file containing the simulation results. This was cluttering up the temporary files directory with old (unneeded) data files.
1.4.3 2004/02/06
  • Created a new program org.systemsbiology.chem.app.SimulationLauncherCommandLine that runs a simulation in batch mode, saving the results to a file that the user specifies.
  • Fixed a bug in org.systemsbiology.util.CommandLineApp regarding arguments with short string lengths, causing problems in the method checkAndHandleHelpRequest.
  • Refactored the string org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage.NAMESPACE_IDENTIFIER to the org.systemsbiology.chem.Model class.
  • Added new method getIterationCounter() to the org.systemsbiology.chem.ISimulator interface. This allows users of the simulators to obtain the number of iterations in the previously run simulation.
  • Converted integer simulation parameters in org.systemsbiology.chem.SimulatorParameters to type "long".
  • The org.systemsbiology.chem.SimulatorStochasticBase simulators now keep track of the total number of iterations across the entire ensemble average.
  • Removed all assert() statements from performance-critical code sections within the org.systemsbiology.chem.SimulatorStochasticGillespie and the org.systemsbiology.chem.SimulatorStochasticGibsonBruck simulators, to increase runtime speed.
1.4.2 2004/02/05
  • Fixed a bug in org.systemsbiology.chem.app.EditorPane where if the user had made a change to the model definition editor buffer, and then selected "open" to open a new file, the system would disregard the user's answer to the confirmation dialog box. If the user answered "no" to the prompt for whether to proceed, the system would still open the file and discard the previous edits to the buffer.
  • Modified the org.systemsbiology.chem.Simulator class and the org.systemsbiology.chem.SimulatorDeterministicBase class, and the org.systemsbiology.chem.SimulatorOdeToJavaBase class, so that the initializeDynamicSymbolAdjustmentVectors() method is only called for deterministic (not stochastic) simulators. This prevents huge unnecessary memory allocations when performing purely stochastic simulations of models with a very large number of reactions and species.
  • Fixed problem where an OutOfMemoryError occuring within the org.systemsbiology.chem.Simulator.initialize() method was not being caught and handled properly.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher so that the org.systemsbiology.chem.Simulator.initialize() method is no longer called on the AWT event thread. Instead, it is called from the org.systemsbiology.chem.app.SimulationLauncher.SimulationRunner thread.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher to rename the "stop" button to the "pause" button.
  • Modified the org.systemsbiology.chem.SimulatorDeterministicBase so that it calls the org.systemsbiology.chem.DelayedReactionSolver.update() directly, rather than implicitly through the DelayedReactionSolver.computeValue() method. This increases stability of the numeric integrator, as well as speed.
  • Refactored the interation counter to the org.systemsbiology.chem.Simulator class, from the SimulatorStochasticBase and SimulatorDeterministicBase classes. The new method is Simulator.incrementIterationCounterAndCheckForCancellation().
  • Modified the SimulatorOdeToJavaBase and SimulatorOdeToJavaRungeKuttaAdaptive classes, to permit pause/cancel of the running simulation via the SimulationController class.
  • Modified the SimulatorOdeToJavaBase class to call the DelayedReactionSolver.update() method after each successful iteration of the integrator.
  • Modified the org.systemsbiology.math.Expression class to add the computePartialDerivative() method, which computes the symbolic partial derivative of a given Expression, with respect to a given Symbol.
  • Removed support for the functions gammaln() and rand() in mathematical expressions. The rand() function causes problems with the expression value cachying feature introduced in version 1.4.0, and the gammaln() code is likely encumbered with license issues.
1.4.1 2004/02/02
  • Fixed a bug in org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage where an exception is thrown if an include directive occurs after a symbol definition.
  • Modified the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage so that it gives a more comprehensible error message if the user attempts to define a symbol name that is reserved for a default model element.
1.4.0 2004/01/30
  • Optimized the org.systemsbiology.chem.Reaction.computeRate() method.
  • Rewrote the org.systemsbiology.math.Expression.valueOfSubtree() method, to improve speed.
  • Optimized the accessor/mutator methods in the org.systemsbiology.math.MutableDouble class.
  • Added a caching feature for expression values in the org.systemsbiology.math.Value class.
  • Optimized the org.systemsbiology.math.Symbol class, and modified it to use the caching feature added to the org.systemsbiology.math.Value class.
  • Modified the stochastic simulators org.systemsbiology.chem.SimulatorStochasticGillespie and org.systemsbiology.chem.SimulatorStochasticGibsonBruck to use the expression value-caching feature in the Value class.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher so that it remembers the directory of the last output file selected, when the output type is set to "File".
  • Modified the org.systemsbiology.chem.app.SimulationLauncher so that the Cancel/Stop/Resume buttons are disabled in the OdeToJava simulators, which do not allow interruption by the org.systemsbiology.chem.SimulationController.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher and the org.systemsbiology.chem.TimeSeriesSymbolValuesReporter so that different CSV output file formats are supported, for saving simulation results to a file. This also makes it more clear that the choice of "File" output type, refers to a comma-separated-value file format.
  • Modified the org.systemsbiology.chem.app.MainApp and .MainMenu classes so that they now support the "view model in human-readable format" feature. Created a new org.systemsbiology.chem.scripting.ModelExporterHumanReadable model exporter, to allow for saving a model description in human-readable format.
  • Modified the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage to fix a hard-to-understand error message that occurs when there is a syntax error inside nested loops.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher to permit the user to specify a texual label that is added as a subtitle to the simulation results plot.
  • Fixed a bug in org.systemsbiology.chem.app.ExHelpSearchNavigatorUI where the search hit index was not getting re-set to zero for a subsequent search.
  • Added a text area to the org.systemsbiology.chem.app.ExHelpSearchNavigatorUI, that explains the "jump to the next search hit" feature.
1.3.1 2004/01/27
  • Fixed a bug in the ModelBuilderCommandLanguage for the case where a macro definition contains a loop construct.
  • Fixed a bug in the ModelBuilderCommandLanguage for the case where a reaction definition statement comes after a loop construct.
  • Modified the ModelBuilderCommandLanguage to allow the value of a SymbolValue to be redefined, as long as the symbol has not been promoted to a Species, Reaction, Parameter, or Compartment at the point where the value of the symbol is redefined. The purpose of this feature is to permit the user to define a template definition with an "output" parameter.
1.3.0 2004/01/26
  • Added a template feature to the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage.
  • Refactored the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage class to use the java.io.StreamTokenizer for initial tokenization pass. Improved syntax error detection by rewinding the token stream completely to the beginning of the statement, before calling the handler function for a statement.
  • Fixed a bug in the org.systemsbiology.chem.scripting.ModelBuilderMarkupLanguage where it was not catching the case of a parameter defined without any value (or parameter rule) being provided. This was leading to a NullPointerException within the org.systemsbiology.chem.Model class.
  • Added support to the org.systemsbiology.chem.scripting.ModelBuilderMarkupLanguage for reading an SBML model containing a reaction with an intrinsic time delay.
  • Added a function isFunctionName() to the org.systemsbiology.math.Expression class, that is used to determine if a given string matches any known built-in mathematical function names.
  • Moved the isValidSymbol() method from the org.systemsbiology.math.Symbol class to the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage, which moves the naming policy out of the base Symbol class and into a more appropriate layer; this change was also to facilitate the template definition feature in the CMDL.
  • Modified the org.systemsbiology.math.SymbolEvaluatorHashMap to add a new protected getValue(String) method, which is used by the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage class in processing template references.
  • Improved error handling in the org.systemsbiology.chem.app.MainApp class, by adding debugging code to standard error in cases of exceptions. Removed an unneeded exit() method from same class.
  • Fixed the org.systemsbiology.chem.app.ModelProcessor so that it no longer calls System.exit() when an error is detected.
  • Removed some unneeded code from org.systemsbiology.chem.Simulator, pertaining to the handling of multi-step or delayed reactions.
  • Modified the org.systemsbiology.chem.scripting.ModelExporterMarkupLanguage so that it translates illegal "::" characters in symbol names, to permitted "__" characters. Fixed a bug where delayed reactions were not being written to the kineticLaw field using the "delay(species,time)" construct.
  • Modified the org.systemsbiology.chem.scripting.ModelExporterMarkupLanguage so that it can properly export a model containing a reaction with an intrinsic time delay.
  • Fixed a potential NullPointerException in the org.systemsbiology.math.SymbolEvaluatorHashMap class, in the case where a SymbolValue object does not have a Value object defined.
1.2.0 2004/01/13
  • Fixed a bug in the layout of the org.systemsbiology.chem.app.SimulationLauncher control screen, where the full text of the "select all" button was not being displayed.
  • Fixed a bug in the org.systemsbiology.chem.app.SimulationLauncher where the simulation was not being cancelled, in the case where the user selects too many symbols for displaying on a plot.
  • Fixed a bug in the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage where the org.systemsbiology.chem.app.ModelProcessor was getting an unexpected IllegalArgumentException when the model definition file contains a mathematical expression that has invalid syntax.
  • Fixed a bug in the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage where parsing errors in the model definition file were resulting in the exception class name being unnecessarily included in the message part of the exception.
  • Changed the org.systemsbiology.chem.app.Plotter class so that the vertical axis label is the more generally applicable "value" rather than "populations".
  • Added a new SBW simulation service, the org.systemsbiology.chem.sbw.GibsonBruckService.
  • Modified the class (org.systemsbiology.chem.sbw.SimulationModule) that registers the various org.systemsbiology.chem.sbw.SimulationService simulation services with the SBW broker, to add the DeterministicService and the GibsonBruckService services to the list of services offered by this module.
  • Fixed a bug in the org.systemsbiology.util.ImageTransferHandler, where the createTransferableImage() method was returning a Transferable object that was failing to properly set the "transfredSuccessfully" flag in some cases.
  • Fixed a bug in the error-handling code in the org.systemsbiology.chem.app.MainApp class, for the case of when a syntactially invalid model is processed and a null pointer is passed to the org.systemsbiology.chem.app.CytoscapeViewer class.
  • Extended the org.systemsbiology.chem.scripting.ModelExporterMarkupLanguage so that it is capable of exporting SBML Level 1, versions 1 and 2. Previously it was only capable of exporting version 2. The version 1 export is needed for the org.systemsbiology.chem.app.CytoscapeViewer to export a model to Cytoscape.
  • Fixed a bug in org.systemsbiology.chem.app.MainApp where the MainMenu.MenuItem.FILE_SAVE_AS menu item was not being enabled under the correct conditions.
  • Fixed a bug in org.systemsbiology.chem.app.SimulationLauncher where model reloading (into the simulation launcher window) was not working properly.
1.1.1 2004/01/05
  • Modified the org.systemsbiology.util.SlidingWindowTimeSeriesQueue so that the internal average variable is recalculated from scratch, each time numTimePoints number of points has been inserted into the queue.
  • Fixed bug in org.systemsbiology.chem.app.ParserPicker pertaining to case where the model builder fails to construct the model from the model definition file.
  • Modified org.systemsbiology.chem.app.SimulationLauncher to dump a stack backtrace to STDERR if a Throwable (but not an Exception) condition is detected.
  • Changed org.systemsbiology.chem.MultistepReactionSolver into org.systemsbiology.chem.DelayedReactionSolver, to permit phenomenological modelling of reaction processes with an intrinsic time delay.
  • Changed org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage for extensions to the chemical model definition language (CMDL) for specifying a multistep or delayed reaction.
  • Fixed bugs in org.systemsbiology.chem.app.MainApp and org.systemsbiology.chem.app.Plotter, where window resizing was not working correctly on the Windows platform.
1.1.0 2003/12/22
  • Added a reload menu item to the org.systemsbiology.chem.app.MainMenu class, which is used for loading a new org.systemsbiology.chem.Model into the org.systemsbiology.chem.app.SimulationLauncher.
  • Fixed a bug in org.systemsbiology.chem.app.SimulationLauncher where it was still calling handleOutput() even when the simulation was cancelled.
  • Made simulation plot window (org.systemsbiology.chem.app.Plotting.Plot) a separate class, which is now dynamically resizable.
  • Made the main editor pane (org.systemsbiology.chem.app.EditorPane) dynamically resizable.
  • Added a setModel() method to the org.systemsbiology.chem.app.SimulationLauncher, so that an application can dynamically change the model loaded in the simulation launcher.
  • Added a addListener() method to the org.systemsbiology.chem.app.SimulationLauncher, so that an application can provide a callback method to detect when the simulation launcher is closed.
  • Fixed bug where the org.systemsbiology.chem.scripting.ModelBuilderCommandLanguage was rejecting model definition files that ended with whitespace.
  • Added an "append" check-box to the org.systemsbiology.chem.app.SimulationLauncher window, which allows for specifying that the output file should be appended to, rather than overwritten.
  • Added a "save as PNG image" button to the org.systemsbiology.chem.app.Plotter.Plot class window, which is used to save the plot as a PNG image file.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher to display all symbols (not just org.systemsbiology.chem.Species) in the list-box of symbols that can be displayed in the simulation results.
  • Modified the org.systemsbiology.chem.app.SimulationLauncher to allow for hiding the Output Type controls, and added a callback mechanism to return the simulation results to the calling application as a org.systemsbiology.chem.SimulationResults object, on a queue; this entailed a change to the SimulationLauncher constructor.
  • Added a org.systemsbiology.util.Queue data structure.
  • Added support for copying the org.systemsbiology.chem.app.Plotter.Plot image to the system clipboard, on operating systems that support image transfer to the clipboard.
  • Added full-text search capability for online help, in the org.systemsbiology.chem.app.HelpBrowser class.
  • Refactored the code that sets locations for new JFrames, to the org.systemsbiology.util.FramePlacer class.
  • Added "select all symbols" feature to the org.systemsbiology.chem.app.SimulationLauncher class.
1.0.0 2003/12/08
  • Added new deterministic (ODE) simulators to the org.systemsbiology.chem package, based on the "odeToJava" library for numerical solution of ODEs. This library includes a Dormand-Prince 4/5 Runge-Kutta solver with adaptive step-size control, and an implicit/explicit Runge-Kutta solver with adaptive step-size control (for models with a high degree of stiffness).
  • Modified the org.systemsbiology.chem.scripting.ModelBuilderMarkupLanguage to permit inclusion of "rules" in SBML models
  • Modified the org.systemsbiology.chem.scripting.ModelExporterMarkupLanguage to export models in SBML level 1, version 2.
  • Fixed a bug in org.systemsbiology.chem.app.MainApp when model-building fails after the user selects "Export" from the "Tools" menu.
  • Created separate fields in org.systemsbiology.chem.app.SimulationLauncher for specifying the matximum allowed relative and absolute errors
  • Fixed a bug in org.systemsbiology.chem.Parameter, in which a clone() implementation was not provided, leading to incorrect behavior of the simulator when a parameter is defined with a deferred-evaluation expression
0.0.8 2003/11/21
  • Created a new org.systemsbiology.chem.SimulatorParameters mechanism to pass simulator-specific parameters to the simulator object.
  • Modified the fixed-stepsize deterministic simulator, so that it can detect when the step-size is insufficient.
  • Fixed an error-handling bug in the org.systemsbiology.chem.app.Plotter class.
  • Modified the SimulationLauncher so that default simulator-specific parameters are auto-filled, and are updated when the simulator selection is changed.
0.0.7 2003/11/07
  • Modified org.systemsbiology.chem.app.EditorPane so that it "remembers" the directory of the last file opened in the editor. The default directory for the org.systemsbiology.chem.app.FileChooser for the next "Open" command, is set to this directory.
  • Adjusted the default vertical dimension of the org.systemsbiology.chem.app.EditorPane for the model editor, to 40 characters.
0.0.6 2003/10/22
  • In org.systemsbiology.chem.app.SimulationLauncher, make plotting the default output mode
  • Redefined how the stochastic simulators compute reaction rates for dimerization reactions, for model interchangability with the ODE simulators.
0.0.5 2003/10/20
  • Fixed a bug in the GibsonSimulator initialization code, for the case of a boundary reactant species.
  • Fixed a bug in the ModelBuilderCommandLanguage tokenizer, so that it can now accept a tab character as valid whitespace in a model definition file.
  • Modified the SBMLValidate package so that it can process SBML Level 1, Version 2 model definition files.
  • Modified org.systemsbiology.chem.app.MainApp class, to work around a limitation of DOS shell command-line argument processing.
0.0.4 2003/08/28 Modified the Cytoscape bridge to use JNLP, so Cytoscape does not have to be bundled with Dizzy.
0.0.3 2003/08/26 Added the ability to simulate a multistep chemical reaction as a single composite reaction.
0.0.2 2003/08/06 Added the ability to display a model in a Cytoscape window.
0.0.1 2003/08/04 First version of the library. It is an alpha version, intended only for internal use at Institute for Systems Biology.


Last updated: 2006/09/28 21:08:12

Please e-mail comments or corrections regarding this document to: isbjava NOSPAM at NOSPAM systemsbiology.org