Release Notes

From BioNetWiki

Jump to: navigation, search


BioNetGen 2.3 releases

More information coming soon (Sep-8-2017)

BioNetGen 2.2 releases


2015 June 22

New Language Conventions

  • Whitespace is no longer allowed in rule names.
  • All labels and BNG objects (except for bonds and states) must begin with a letter or underscore character.
  • Labels must now be followed by a colon (':') with no intervening whitespace.
    • Example: RuleX: A(s~0) -> A(s~1) k
  • Leading indices in the molecule types, observables, and energy patterns blocks have been deprecated.
    • Note: These are not yet formally deprecated for the parameters, species, and functions blocks because they exist within BNG-generated NET files, which can be read in using readFile. Deprecating them completely will thus require changing the format of NET files.
  • Unnamed rules are now given automatic names beginning with "_R" followed by a digit (e.g., "_R1", "_R2", etc.).
  • Reverse rules are now named by prepending "_reverse_" to the forward rule name (e.g., "_reverse_Rule1").
Actions & Arguments
  • Added a new argument, par_scan_vals, to the parameter_scan action to allow parameter scans over unevenly spaced intervals.
    • Example: parameter_scan({method=>"ode", t_end=>20, parameter=>"k1", par_scan_vals=>[1,5,20]})
    • NOTE: If par_min, par_max, and n_scan_pts are all defined, they will take precedence over par_scan_vals if it is defined.

Minor Changes

  • Both the BioNetGen version and codename (e.g., "2.2.6-stable") are now included in the headers of files written with writeBNGL (e.g., NET files).
  • now ignores trailing comments in file comparisons.
  • The run_network and sbmlTranslator executables no longer contain the architecture they are built for within the file name definition.

Bug Fixes

  • An error is now thrown if an unrecognized block name is encountered.
  • An error is now thrown if duplicate rule names are detected.
  • Fixes a case where synthesis rules in cBNGL would fail if the product used the compartment prefix notation.


2015 March 3

New Features

SBML-to-BNGL Translator
  • The SBML-to-BNGL translator can perform both a "flat" (one-to-one) translation of an SBML model in terms of unstructured species and an "atomized" translation that recovers the implicit molecular structure (binding sites and states) of the species within the model. The translator can be accessed in the following three ways:
  1. Using the readFile() BioNetGen action: The 'atomize' argument specifies whether a flat or atomized translation is to be performed (default is flat, i.e., atomize=>0). The translated model is written to [sbml_filename].bngl, which is then read and loaded into memory. This allows additional actions [e.g., simulate(), parameter_scan()] to be performed on the model if desired. See the BioNetGen Actions & Arguments Guide for a comprehensive listing of all actions and arguments, including readFile().
  2. Running the [BNGPATH]/bin/sbmlTranslator executable directly: This provides the functionality described above along with additional customization flags. Run ./sbmlTranslator --help for a complete list of options with descriptions.
  3. As a standalone web application at

For further information, see the SBML-to-BNGL documentation.

Visualization Tools
  • Visualization tools can be accessed by calling the visualize() action in a BNGL model file or by running the script included in [BNGPATH]/Perl2/Visualization. The output is generated in Graph Modeling Language (GML) format, which can be processed by graph editors such as yEd ( and Cytoscape ( Currently supported visualizations are:
    • Model visualization as a contact map: visualize({type=>"contactmap"})
    • Model visualization as a regulatory graph: visualize({type=>"regulatory"})
    • Rule visualization as a Petri net: visualize({type=>"ruleviz_pattern"})
    • Rule visualization using graph operations: visualize({type=>"ruleviz_operation"})

For further information, call visualize({help=>1}) or run ./ --help.

Actions & Arguments
  • Added a 'reset_conc' argument to parameter_scan() that suppresses the call to resetConcentrations() if set to 0 (default value is 1). This allows simulations in the scan to be started from the end point of the previous simulation (used in bifurcate(); see below).
  • Added a new bifurcate() action that takes the same arguments as parameter_scan() (except 'reset_conc'). The method automatically runs two scans, one from 'par_min' to 'par_max' and the other in the reverse direction. Each simulation in the scans starts from the end point of the previous simulation by passing reset_conc=>0 to parameter_scan(). Output files are then generated for each observable containing the parameter values vs. final observable values for both forward and reverse directions.
  • Modified readFile() to allow specific model blocks to be read using the 'blocks' argument.
    • Example: readFile({file=>"mymodel.bngl",blocks=>["parameters","seed species"]})
  • Added support for method=>"nf" in simulate(). This allows NFsim to be used in parameter_scan() and bifurcate() as well.
  • Added support for compartments in writeSBML() and upgraded the supported version of SBML to Level 2 Version 3.

Minor Changes

  • Upgraded muParser to version 2.2.4 (
  • Modified parameter_scan() to set get_final_state=>0 if reset_conc=>1 (the default). This prevents BNG from unnecessarily reading in the final species populations at the end of NFsim simulations if they are going to be reset anyway. This is important as the read step can be extremely expensive for models with high degrees of symmetry.
  • Modified setConcentration() to retain parameter names in expressions (rather than evaluating to a number). This allows setConcentration() to be used with parameter_scan(). However, observables and functions are still evaluated to numbers.
  • Modified NET file output to list all rules that generate a given reaction in the comment following each line of the reactions block. This is useful when a reaction is generated by multiple different rules. Often this is unintentional and can be problematic since BNG multiplies the rate constant by the number of duplicates generated. Listing all rules that generate a reaction can help identify and debug situations like this.
  • Added a default PLA configuration for simulate(method=>"pla"). If the 'pla_config' argument is not defined, the configuration is set to fEuler|pre-neg:sb|eps=0.03, i.e., a standard tau-leaping method (1st order) with species-based preleap tau calculations, negative-population postleap checking, and error control parameter 'eps' of 0.03.
  • Modified to only report a stochastic validation failure if the validation fails twice in a row.
  • Added functionality to readFile() to convert forward slashes (/) to back slashes (\), and vice versa, in relative paths, depending on the OS. This improves cross-platform portability and makes it easier to share models.

Bug Fixes

  • An error is now thrown if zero-order synthesis products do not have compartments.
  • BNG will no longer switch to "compartmental" mode if the compartments block is empty.
  • Expressions for compartment volumes are now correctly evaluated when generating a BNG-XML file.
  • Fixed an inconsistency where forward referencing of parameters/observables was allowed for functions defined in the functions block but not in the reaction rules block.
  • Fixed a bug where in rare cases a function defined in the reaction rules block would be typed as a 'ConstantExpression'. This would cause simulation to fail since it would be placed in the parameters block of the generated NET file.
  • Fixed a bug in the handling of 'max_stoich' constraints. In versions 2.2.3, 2.2.4, and 2.2.5, the constraints were sometimes ignored during network generation and complexes larger than the maximum specified could be constructed. Also added code to check that molecule names passed in the argument are valid. This is useful since users often specify patterns, such as 'A()', rather than the actual molecule name 'A'. Without an error message this can cause confusion.
  • Fixed a bug where BNG was not passing to NFsim the random seed that it was generating when the 'seed' argument was not explicitly set by the user. This made it difficult to debug problems in NFsim since it was not outputting a random seed in the error messages.


2013 July 30

New Features

BioNetGen-to-MCell Converter

The converter creates spatial MCell models from BioNetGen. It is called by adding "writeMDL()" to the actions of a BioNetGen model file. It also requires a geometry input file externally created using CellBlender, an addon to the Blender software for creating MCell geometries. Execution of a BioNetGen model integrates the reaction network and geometry information and creates a MCell model file (.mdl). Alternatively, "writeMDL()" enables direct execution and import of BioNetGen models from CellBlender. The imported BioNetGen model can be integrated with geometries created in CellBlender and exported from CellBlender as MCell model files.


AutoHPP automates the construction and simulation of Hybrid Particle/Population systems. AutoHPP profiles species populations during a test simulation, identifies species with average population graater than a threshold, and then constructs and simulates an HPP system where the identified species are treated as lumped populations. Auto HPP is implemented in the "" script found in the "Perl2" subfolder (requires NFsim).

Minor changes

  • If "" is called without a model argument, the help menu is printed to STDOUT. (In prior releases, exited silently.)
  • When parsing a global function ratelaw, BNG will not create a reference to the function in the parameter table unless the function call is part of an inline math expression. (Note that use of inline expressions within ratelaws is advised against, since this is not supported by NFsim.)
  • Modified the behavior of the 'prefix' argument. Previously, the argument was assumed to be an absolute path. Now, it is checked using File::Spec->file_name_is_absolute() to determine whether or not it is an absolute path. If it is not an absolute path, then the output directory remains the current working directory and only the model name is modified.

Bug Fixes

  • Fixed bug in Network3 code that caused an error if an "if()" function was used in the parameters block. This situation arises when a local function is defined that includes an "if()" function. Thus, logical local functions are now supported for network simulations.
  • Fixed bug that caused simulations of HPP models containing global functions to fail after loading from file. The problem was fixed by tracking global functions directly rather than creating a reference in the parameter table.
  • Fixed "--check" command line option (i.e., parse model, but do not execute actions).


2014 November 4 A bug was discovered in the handling of max_stoich constraints. In some cases, the constraints will be ignored during network generation, and complexes larger than the maximum specified may be constructed. (Fixed in 2.2.6)


2013 May 20


2013 July 30 A bug was discovered in the handling of max_stoich constraints. In some cases, the constraints will be ignored during network generation, and complexes larger than the maximum specified may be constructed. (Fixed in 2.2.6)

2013 July 24 The "--check" command line switch is broken in this version. BNG will parse the model and execute actions regardless of the switch.

2013 July 22 HPP models with global functions fail to simulate in NFsim after loading from file. The problem can be circumvented by simulating the HPP model immediately after construction by passing the "execute=>1" argument to "generate_hybrid_model()".

New Features

Modular model source files

BNG now supports multiple and recursive calls of the readFile() action. This allows modular assembly of BNGL models from multiple source files. For example, the model definitions can be stored in one file and parameter values in a second file.

Changes to BNG action commands

  • Complex bookkeeping option, "complex", is now enabled by default in the simulate_nf() action, i.e. "complex=>1".
  • Default value for option 'get_final_state' for simulate_nf() action has been changed to TRUE. Consequently, the final state of a NF simulation will be loaded into the BNG by default. However, to avoid the slow process of canonically labeling massive complexes, any species composed of more than 20 molecules will be labeled using a quasi-canonical method. If this is still too slow, set the option to FALSE (0).

New Example and Validation Models

  • Added catalysis.bngl to Models2 directory. This model demonstrates the implementation of energy consuming reactions in energy BNGL.

Bug Fixes

  • Fixed minor bug that caused unnecessary retention of temporary labels in HPP rules. This bug did not cause errors per se, but did result in a lot of unnecessary warning messages.
  • Fixed minor bug in HNauty labeling method that led to failure for species graphs with bond wildcards. Note that this bug only affected pattern labels (used in HPP) and not proper species.

Code refactoring

  • Command line argument parsing in is now handled by the core module GetOpts::Long. This change should result in more robust parsing and reduced maintaince in the future.


2013 March 31


2013 July 30 A bug was discovered in the handling of max_stoich constraints. In some cases, the constraints will be ignored during network generation, and complexes larger than the maximum specified may be constructed. (Fixed in 2.2.6)

2013 April 10 The original release notes for 2.2.4-testing stated that the simulate_nf() action enabled complex bookkeeping by default. However, the implementation of this change was flawed! 2.2.4-testing still defaults to complex bookkeeping disabled. To enable complex bookkeeping, add the option "complex=>1". This will be corrected in the next release.

2013 April 10 The original release notes for 2.2.4-testing stated that the time() function is available for use in any math expression. This is incorrect. The time() function is only available in math expressions defined in the functions block of BNGL model.

Hardware and Operating System Support

Mac OS/X run_network executable is now compiled for x86_64

The run_network Mac executable distributed with BioNetGen was previously compiled for i686 architecture (32-bit). In this and future distributions, Mac OS/X executables will be compiled for x86_64 (64-bit). If a 32-bit executable is required, browse to the "Network3" subdirectory and follow the compilation instructions.

New Features

Empty species symbol "0" supported for compartmental BNGL

We introduced the new symbol "0" in 2.2.3 for representing an empty pattern or species. This is useful anywhere BNG expects a pattern or species but the modeler wants the empty set. For example, "0" may be used on the LHS of a reaction rule for zero-order synthesis, or the RHS for degradation rules. This feature is now supported in compartmental BNGL

NOTE: Compartmental BNGL adopts the convention that zero order synthesis rate constants are given as intensive units (conc/time or counts/vol/time). Hence, the total rate of synthesis depends on the rate constant AND the volume of the compartment.

Energy BNGL (testing)

Energy modeling is a new approach to rule-based modeling where kinetics are derived from changes in free-energy and activation barriers. This approach was pioneered by J. Ollivier, et al. (PLoS Comp. Bio. 2010) and generalized by Vincent Danos. Energy modeling has a number of advantages, including: detailed balance is guaranteed, reaction rules are simplified, and allostery/cooperativity easily implemented. A simple example of energy modeling, 'energy_example1.bngl' was added to the Models2 directory. Keep an eye out for more documentation and examples of energy modeling in BNG.

Time-dependent functions (testing)

Implemented a special function "time()" that refers to the current time in a simulation. The time function may be used in any mathemetical expression. CORRECTION: The time() function is only recognized in math expressions defined in the functions block. This is useful for ratelaws or events that depend on time. Time is recognized by run_network but not (presently) by NFsim.

CAUTION: Discontinuities in rate laws may cause problems for ODE integrators. If a timed event causes a discrete change in a rate law, it is best to stop and restart the simulator.

CAUTION: Time-dependent rates in SSA simulations may introduce substantial error if the relative rate change is fast in time. Advanced methods exist for managing time-dependent rates accurately; however, these methods are not currently implemented in run_network.

Molecule-scoped local functions

Added support for local functions evaluated on the scope of a tagged molecule. This feature was already supported by NFsim, but is now available for network generation and network simulation. See the NFsim manual (chapter 7) for examples of moelcule-scoped local functions.

Improvements to Existing Features

On-the-fly network generation is fixed

run_network supports on-the-fly network generation again. However, the implementation is not very efficient. NFsim is recommended for applications with large networks.

Added support for functional rate laws in SBML export

Fixed SBML export for functional rate laws. Global functions are now output in the same way as parameter expressions. Local functions are NOT output to SBML because they are evaluated down to a number by BNG during network generation so they're unnecessary. Note that the "Group_" prefix has been removed from the SBML IDs of observables so that they can be easily referenced in function expressions. This is not a problem because parameters and observables occupy the same namespace so there's no possibility of conflicts.

Better handling of mathematical expression in output

BioNetGen now exports mathematical expressions by default, rather than evaluating to a number. This preserves the original math when models or networks are written to file. Support for mathematical expressions in the parameters block was added to run_network.

Upgrades to MATLAB export via writeMfile()
  • Improved error capture when calling MATLAB's ODE23s integrator.
  • Support for "if" functions: "if(cond,val1,val2)" is translated to "(cond~=0)*val1 + (cond==0)*val2". This isn't a perfect solution since it requires that val1 and val2 both evaluate to finite numbers. Unfortunately, MATLAB does not support the ternary conditional (a better solution).
  • Eliminated redundancy of expression evaluation, resulting in better run-time efficiency.

Bug Notices

  • run_network fails to parse math expressions properly if a parameter name in the expression begins with a number. We recommend that parameter names begin with a letter character. Parameter names beginning with numbers will likely be deprecated in a future release.

Bug Fixes

  • Fixed bug where parameters beginning with "and" or "or" were confused with the logical operations. The problem was traced to the muParser library. Upgrading to muParser v2.2.3 solved this problem.
  • Fixed bug where setConcentration (and potentially other actions) fail to parse arguments that contain species definitions with compartmental syntax.
  • Fixed bug in BNG math expression parser where unary operators were parsed incorrectly in some circumstances.
  • Fixed bug where run_network reported incorrect line number in error message.
  • Fixed potential bug in isomorphic detection method, where BNG attempts to access undefined nodes if graphs have unequal size. This is prevented by checking the size of the graphs prior to comparison.
  • Fixed bug that caused generate_network() action to return an error if no seed species are defined. This fix permits network generation for models with 0-order synthesis but no seed species.
  • Fixed bug where generated invalid scripts if the BNGL model file does not end with a new line.

Minor Syntax Changes

  • Deprecated use of fixed quantity flag "$" within reaction rules. The fixed quantity flag should only be used in the seed species block.
  • Use of "fake" species such as "NULL", "TRASH", or "SINK" as placeholders in reaction rules with zero reactants and products is now deprecated. We advise the use of the special symbol "0" instead.
  • Labels (strings or integers) are now permitted before definitions in all BNGL blocks.

Changes to BNG action commands

  • Complex bookkeeping option, 'complex', is now enabled by default in the simulate_nf() action, i.e. 'complex=>1'. CORRECTION: The implementation of this change was flawed. The 2.2.4-testing release still defaults to complex bookkeeping disabled. To enable complex bookkeeping, add the option complex=>1.
  • Complex bookkeeping option, 'complex', is now enabled by default in the simulate_nf() action, i.e. 'complex=>1'.
  • The 'exact' option for generate_hybrid_model() was renamed to 'safe'. This avoids confusion over whether the standard method is exact. Indeed, both methods are exact if population lumping is instantaneous. However, only the 'safe' method is exact for finite lumping rates. The default is 'safe=>0'. The old 'exact' option will be supported up to (and including) the next stable release.

Error and Warning Message Changes

  • Useless {MatchOnce} attribute in species definitions are now detected and reported.
  • Improved detection of illegal dangling bonds and wildcards in reaction rules.
  • Improved clarity of error messages for unrecognized BNG version strings and missing rate law arguments.
  • utility reports an error if the BNGL model does not contain an "end model" directive.
  • run_network will now allow commented lines in the functions block of the NET file.
  • run_network no longer complains if there are no parameters in the model as long as there are functions. An error is thrown if neither parameters nor functions are defined.

New Example and Validation Models

  • Added gene_expr_func.bngl and localfunc.bngl to Models2 directory. NOTE: these models were previous distributed as validation models.
  • A simple example of energy modeling, 'energy_example1.bngl', was added to the Models2 directory.
  • Adding two new validation files: (1) isingspin_energy.bngl implements an ising spin model on a 3x3 toroidal lattice using the energy approach, (2) isingspin_localfcn.bngl implements the ising spin model (same topology) using local functions. Both models test the SSA equillibrium distribution. Model 2 also tests the NF equillibrium distribution. NOTE: the energy approach is not supported in NFsim, hence this version won't scale to a larger lattice.

Code refactoring

  • Enabled strict and warning pragmas in
  • Migrated to muParser 2.2.3 (from v134) for parsing math expressions in run_network. Implemented static "If()" function in network.h that gets called as "if()" in muParser [parser.DefineFun("if",If) in network::read_functions_array()]. This should solve the problem of if() being deprecated in muparser_v2_2_3. Also modified run_network.cpp and network.cpp to no longer replace "&&" with "and" and "||" with "or".
  • Reformulated generate_network so that observables and energy patterns are updated as species are generated, rather than after an iteration of network generation completes.
  • The Expression type "FUN" was renamed as "FunctionCall". The original type name caused some confusion as to whether the expression was a function definition or a function call. To clarify, the type was renamed FunctionCall. The Function object holds the definition (RHS) for a function. For further reference: the Param type Function associates a name to a Function object. A function without an associated Param is anonymous (i.e. cannot be found in the ParamList).


2012 December 31

2013 July 30 A bug was discovered in the handling of max_stoich constraints. In some cases, the constraints will be ignored during network generation, and complexes larger than the maximum specified may be constructed.

New Features

Empty species symbol "0"

We introduced the new symbol "0" for representing an empty pattern or species. This is useful anywhere BNG expects a pattern or species but the modeler wants the empty set. For example, "0" may be used on the LHS of a reaction rule for zero-order synthesis, or the RHS for degradation rules.

Changes to BNG action commands

  • A new option, 'exact', was added to the generate_hybrid_model() action. If the 'exact' option is enabled, the partial network expansion algorithm does not discard the original reaction rule, which ensures the method yields exact results, even when the lumping rate is finite. The default is exact=>0. NOTE: in 2.2.4-testing, this option was renamed to 'safe'.

Code refactoring

  • Refactored symmetry handling in hybrid model generation. The new method pre-calculates rule symmetry rather than relying on post-detection of canonically identical reactions.
  • Refactored rule expansion methods to improve modularity. As part of this refactoring, the CrossProduct module was renamed as CartesianProduct, which is more technically correct. This change should not affect users of BioNetGen.

Other Changes?

See the repository at for complete details.


The current stable release (4 Sep 2012). This release patches a substantial bug in the PLA simulator. There are no new features in this release.

bug fixes

  • Fixed a major bug that was causing incorrect stoichiometries to be stored in Reaction objects in Network3. This meant that species populations were sometimes being updated incorrectly when reactions fired. This only affected PLA simulations, not ODE or SSA.


The previous stable release (20 Aug 2012). This release fixes a number of bugs and adds some minor features. No major features in this release. A significant bug exists in the PLA simulator. Upgrade to 2.2.2 is recommended for PLA users.

known issues

  • A substantial bug exists in the PLA simulator. This problem did NOT affect ODE or SSA simulations. Please upgrade to 2.2.2 if you are running PLA simulations.

notable features

  • Added support for defining a stopping condition (a logical function) for ODE, SSA, and PLA simulations. Example usage: simulate_ssa(t_end=>50,n_steps=>500,stop_if=>"(X>1000)&&(Y<100)"). Note that the condition check is exact in the SSA but approximate in the ODE and PLA simulators. This is because the check is performed after a completed CVODE or PLA step, which may overshoot the condition. This can be improved in the future.
  • Modified to allow simulators other than CVODE to be used. Define the simulator that you want by using the "--method" option. For example, to scan using the SSA use "--method ssa". The default method is still "ode". To use the PLA, the method argument much be followed by a simulation configuration, e.g., "--method pla fEuler|sb|pre:post|eps=0.03".
  • Global functions values written to .gdat file if 'print_functions=>1" option is passed to simulate() action.

minor features

  • Modified to allow for PLA-specific output to be generated. This can be invoked using the '--pla_output' argument (which will be ignored if method not set to 'pla').
  • Updated the help message to include the --method option. Also modified the script to allow MAX=MIN if NPTS=1. Previously this caused a divide-by-zero error (delta = (MAX-MIN)/(NPTS-1). Now, delta is just set to zero if MAX==MIN.
  • Implemented a 'print_on_stop=>0/1' argument for specifying whether or not to print to file when a logical stopping condition is met (specified with the 'stop_if' argument). The default is to print when the condition is met so this argument only needs to be defined if one wants to override this behavior (e.g., when evenly-spaced outputs are required for Fourier analysis).
  • Added parsing support for FunctionProduct ratelaw type. This allows for ratelaws consisting of a product of two local functions. Each local function term may only depend on one reactant. XML output supports this ratelaw type, but not other output formats. Also added an option to simulate_nf for disabling complex-scoped local functions: 'nocslf'. NOTE that FunctionProduct is not yet supported in network simulators.
  • Implemented "pla_output=>0/1" argument for printing PLA-specific simulation data. Currently, the only such data are the reaction classifications. These are output to a file with the suffix "_classif.pla".

bug fixes

  • Fixed a small error in readFile action that caused BNG to always print "Read 0 group(s)" when reading in a NET file. The error was superficial, BNG was reading in the groups just not reporting it properly.
  • Fixed flaw in reaction rule error checking that overlooked certain types of illegal dangling bonds. The illegal dangling bonds led to subsequent Perl run-time errors. There are 3 types of illegal dangling bonds in product graphs: 1) the corresponding reactant had a complete bond, 2) the molecule containing the dangling bond is new, 3) the corresponding reactant did NOT have a bond. The old logic detected invalid types 1 and 2, but not 3. Note that dangling bonds in products are only valid if the corresponding reactant also had a dangling bond.
  • Couple of small changes to address warnings and errors seen when compiling on Mac OS/X 10.7.
  • Fixed problem with simulate_nf get_final_state option.
  • Fixed problem that led to warnings when a dangling bond is compared to a proper bond.
  • Fixed problem where BNG ignored BNGPATH environment variable.
  • Fixed a bug in the PLA that was allowing ES tau's to be zero. This was causing "post:post" simulations to hang. The problem was due to sample random numbers on the closed unit interval, rather than the open unit interval.
  • Fixed a bug in the Gillespie simulator that allowed a_tot to become negative when populations got very small.
  • Fixed a bug in the PLA where exact-stochastic reaction times were being calculated as -INFINITY if the rate is -0.0 (negative zero).
  • Fixed a bug in rateElementary.cpp that was setting the reaction type string incorrectly. Also fixed divide-by-zero problems in fEulerPreleapSB_TC.cpp and g_Getter.cpp. (PLA-specific)

et cetera

  • Added Repressilator.bngl to the Models2 directory.
  • Cleaned up Models2 directory to increase conformity with "best practices" standards. This includes including a 'begin model/end model' and replacing all 'simulate_ode()' and 'simulate_ssa()' calls with 'simulate({method=>xxx,...})' calls.
  • Added some arguments to simargs.txt, including 'continue' which was mistakenly omitted previously.
  • Small change to prevent printing to CDAT file when simulation doesn't run (i.e., t_start = t_end) and CDAT printing has been suppressed ('print_CDAT=>0'). When CDAT printing is suppressed only the final system state is printed to file. Previously this happened even if the simulation didn't run.
  • Changed the way that t_start >= t_end is handled. Previously, BNG would throw an error and quit. Now, BNG throws a warning that the simulation won't run and then calls run_network as usual, which prints the initial concentrations and then quits normally.
  • Modified simulate action so it reads t_end from the CDAT file. This is useful when a network simulation reaches a stop condition prior to the user defined t_end.
  • Changed run_network to allow identical sample times. This is useful if t_start==t_end. Previously this would result in an error. Now it just leads to a null run.
  • Changed the way sample times are handled. Elements smaller than t_start and greater than t_end are now removed in run_network rather than in In, the sample_times array is first ordered and then t_end is appended (even if there are elements >= t_end). This avoids the possibility of passing fewer than 3 sample times to run_network which will cause an error.
  • Modified simulate action so that sample times that are smaller than t_start are discarded prior to calling run_network.
  • Changed the way that t_start >= t_end is handled. Previously, BNG would throw an error and quit. Now, BNG throws a warning that the simulation won't run and then calls run_network as usual, which prints the initial concentrations and then quits normally.
  • Added default values for most of the PLA configuration parameters. This should make using the method much simpler. Now, the only parameter that must be defined is 'eps'. For example, "fEuler|sb|post:post|eps=0.3" is a valid configuration. Default values for the other parameters are: apx1=3, gg1=100, p=0.5, pp=0.8, q=1.5, and w=0.75. If you don't know what these mean you probably shouldn't change them.
  • Changes to CMakeLists.txt and Makefile.cmake to account for recent revamp in code structure.
  • Added simulation step to PLA classifications output.


The previous stable version. Upgrade from 2.1.8 is recommended.

pre-compiled binaries

Included with the distribution:

  • GNU/Linux for x86 and x86_64 architectures
  • Mac OS/X for x86 architecture (compiled under 10.5/Leopard)
  • Windows for x86 architecture (compiled in Cygwin environment and distributed with Cygwin DLL).

Available for download, but not part of distribution:

  • Mac OS/X for x86_64 (compiled under 10.7/Lion)

run_network v3, stable release

  • Full support for rate laws defined as functions of model observables (aka "global functions").
  • Partitioned-leaping algorithm (PLA) for accelerated stochastic simulations (L.A. Harris & P. Clancy, J. Chem. Phys. 125, 144107 (2006)).
  • New option: suppress species trajectory output (print_CDAT=>0). Useful if the volume of output data is prohibitively large.
  • New option: optional function output (print_functions=>1).
  • New option: write output after every Nth simulation step (output_step_interval=>N, N is an integer).
  • Autotools build system (autoconf/automake/libtools).
  • Removed GSL dependency (faster compilation, smaller distribution).

new actions

See the BNG actions and arguments guide for complete and up-to-date documentation of BioNetGen actions, options and arguments. Actions new to version 2.2.0 are briefly described below:


  • Add concentration to a species.
  • SPECIES is a string specifying the species.
  • VALUE is an expression describing the amount to add. VALUE may be a mathematical expression using numbers, parameters and observables. Use quotes unless it is a pure number. Negative values will result in reduction of concentration (be careful to avoid negative concentrations).
    • e.g. add second dose of ligand to system: addConcentration("Ligand(r)","L0")


  • Save the current parameter values.
  • Optional LABEL argument assigns a label to the saved parameters (square braces indicate an optional argument).


  • Restore saved parameters.
  • Optional LABEL argument specifies the label of the parameter set to be restored.


  • Set the model name.
  • NAME will become the basename for all output files unless overridden with the suffix option.


  • Simulate reaction network using the partitioned-leaping algorithm (PLA), an accelerated stochastic simulation method.
  • See PLA documentation for full details.


  • All-purpose action for reaction network simulation.
  • Mandatory option: method => "ode"|"ssa"|"pla"
  • Accepts all options available in simulate_ode, simulate_ssa, and simulate_pla.


  • All-purpose method for writing models to file (used by writeModel and writeNetwork).


  • Write model blocks to file: parameters, molecule types*, compartments*, seed species, observables, functions, reaction rules. (* if defined).


  • Write reaction network blocks to file: parameters, species, functions, reactions, groups.

new options for existing actions


  • Optional LABEL assigns a label to the set of saved species concentrations.
  • Multiple sets of species concentrations may be saved with different labels.


  • Optional LABEL gives a name to the species concentration set that will be restored.


  • BOOL=0,1 (default=1). If BOOL=1, species trajectories are written to CDAT file at ALL time points, otherwise species trajectories are written to CDAT file ONLY at first and last time point.


  • BOOL=0,1 (default=0). If BOOL=1, values of global functions are written to the file <output_basename>.fdat at each output step.


  • N=0,1,2,.. (default=N/A). Write observable values and species concentrations (if enabled) after every N simulation steps (can be used with all simulators, ODE included, although only applicable in a meaningful way to stochastic simulations).

improved Windows OS support

  • portable path and file names using File::Spec Perl module.
  • Validation script,, now fully supported on Windows.
  • Parameter scan script,, now fully supported on Windows.

improved validation suite

  • Statistical tests for equillibrium distribution of stochastic simulations (isomerization.bngl, gene_expr.bngl, gene_expr_func.bngl).
  • Simplified process for adding new validation models.
  • Added tests for add/set/resetConcentration actions (test_setconc.bngl).
  • Added tests for fixed species in stochastic simulations (gene_expr_simple.bngl).
  • Added tests for reading/writing reaction network files (michment.bngl, michment_cont.bngl).

various improvements

  • Parameter block is now included in the <prefix> file written by run_network. This file is now suitable for initiating network simulation from the end of a prior simulation.
  • BNG attempts to stop child processes upon receipt of an interrupt or termination signal (Mac, Linux only). This prevents the consumption of hardware resources by abandoned simulations running in the background.
  • BNG can find the bin directory when called through a symbolic link (this confused previous versions).
  • Improved syntax error messages: detects illegal dangling bonds in reaction rule products.
  • BNG will now read groups from a reaction network file without observable definitions. Previous versions refused to load groups without corresponding observables.

fixed bugs

  • Observable expressions passed as arguments to setConcentrations or addConcentrations are now evaluated correctly.
  • Fixed species property ("$") is now respected in stochastic simulations (SSA, PLA) in all cases. Previously, the population of a fixed species could change in stochastic simulations if the species appeared as a reactant (but not a product) in a reaction.
  • BNG will save and load models with relaxed typing (e.g., no molecule types block) without error. Previous versions wrote an incomplete molecule types block, leading to problems when the file was reloaded.
  • Fixed rate law multiplier calculation: incorrect multiplier was calculated for rules with 2 or more identical reactant patterns that do not contain reaction center (i.e., not transformed by the reaction rule). Examples of affected rules:
    • synthesis reaction driven by symmetric interaction: X + X -> X + X + Y k
    • tri-molecular transformation with symmetric reactants and assymetric products: X + X + X -> X + X + Y k

known issues

  • simulate_nf with option "get_final_state=>1" fails to load system state at end of simulation.
  • M-file script generated by writeMfile action will abort abruptly if MATLAB ode23s integrator fails but does not throw an exception (MATLAB issues warning instead of error).
  • Rare parsing error in functions block forced BNG abort. Parsing error is alleviated (for unknown reason) if the optional "=" operator is placed between the function name and definition.
  • Network-based simulations do not support molecule-scoped local functions. At present, this functionality is NFsim-only.
  • Functions do not accept numerical arguments. At present, function arguments are limited to species and molecule tags.
    • See NFsim manual, chapter 6, for full details. The NFsim manual can be obtained by registering for NFsim and downloading the distribution.
  • won't respect BNGPATH environment variable (fortunately BNG2 is pretty good about finding its own path).
  • Perl may issue "uninitialized value in numerical comparison" warning during network generation for rules combining molecule deletion and binding. This warning may be safely ignored.
  • CMakeLists.txt file not properly configured so CMake build currently will not work.

BioNetGen 2.1 releases

version 2.1.8

This release is no longer in active development. Revision 597 was the last update.

Revision Notes: 597 (final 2.1.8 release)

  • BUG NOTICE (fixed in 2.2.0): Incorrect ratelaw multiplier is calculated for rules with 2 or more identical reactant patterns that do not contain reaction center (i.e. not transformed by the reaction rule). Upgrade to 2.2+ is recommended if your model contains rules with higher-order reactions (molecularity>2). Examples of affected rules:
    • synthesis reaction driven by symmetric interaction: X + X -> X + X + Y k
    • tri-molecular transformation with symmetric reactants and assymetric products: X + X + X -> X + X + Y k
  • fixed bug that caused a fatal error when setParameter action is called with an unquoted parameter name.
  • fixed bug that, under certain conditions, resulted in failure to update .net file prior to simulation.

Revision Notes: 549

  • BUG NOTICE (fixed in 597): a fatal error is produced if the setParameter action is called with an unquoted parameter name. This error can be avoided by adding quotes to the parameter name. The parameter scanning script '' is affected by this bug. A quick fix is possible by commenting out the "use strict" pragma in Perl2/
  • BUG NOTICE (fixed in rev597): under certain conditions the .net file is not updated prior to simulation. This occurs when an old .net file already exists with the same name and the UpdateNet flag is false. Deleting the old NET file will resolve the issue.
    • The main BioNetGen executable script '' has been relocated to the root directory. This may cause temporary incompatibility with RuleBender.
  • Output files are now written to the current working directory by default. Previously the default path was the directory containing the model. The default path may be changed by calling with the argument '-outdir PATH'. Alternatively, passing the 'prefix' option to BNG actions will override default path and filename prefix.
  • Fixed a bug in writeSBML() that caused failure when writing derived parameters.
  • Fixed bug in Network3 simulator that caused failure of some SSA simulations with functional ratelaws.
  • Fixed a bug in handling rate multiplicities of symmetric reactions with multiple component tags (uncommon).
  • Minor improvements to output actions writeMfile() and writeMexfile() with regards to MATLAB plot asthetics and filename handling.
  • New test feature: BNGconsole. Execute ' -console' to start a simple interactive console. This is a sandbox feature and is not yet fully developed.
  • Thanks to extensive user feedback, we have greatly expanded our set of validation models. This should improve reliability of future releases.

New features

  • Trajectory continuation: Extended simulation results may be appended to a previous output file by passing the argument continue=>1 to simulate_ode() or simulate_ssa(). If the argument t_start appears in conjunction with continue, then the value of t_start must equal t_end from the previous simulation. The continue feature is useful for generating trajectories from multi-stage simulations.
  • New species statistics for on-the-fly simulations with Network2: An auxilliary output file named [model_prefix].jdat contains 4 data fields: time, number of populated species, number of species that have been populated at some point in the current simulation, and number of species in the current network (including edge species). Auxillary output is enabled by pasing the argument print_n_active_species=>1 to simulate_ssa().
  • Molecule type checking for observable declarations: BNG will produce an error at parse time if observable patterns contain molecules, components or states not defined in the molecule types block (if defined).
  • Updated rule parsing method detects component state changes from a wildcard in the reactant to a specific state in the product. Previous versions of BNG ignored state changes when a wildcard appeared in the reactant side.
  • Network3, a new simulator with support for functional ratelaws (see section below).

Development features

  • Local function expansion for network models: Local functions are evaluated for each reaction instance created during network generation. The resulting network model can be simulated in Network3 (see section on Network3 below), which supports function ratelaws. Simulation results are equivalent to NFsim. LIMITATIONS: molecule tags are not currently supported in local function evaluations. This feature may appear in a future release if there is sufficient demand. (see NFsim documentation for more info on local functions.)
  • Symmetry corrections for Molecule observables: This release implements methods that correct molecule observable counts with respect to symmetry. For example, the observable A(b,b) overcounts matches by a factor of two. This feature is especially useful when higher order symmetries confuse the interpretation of observable counts. UPDATE: To preserve backward compatibility, symmetry corrections are disabled in this version. A future version will include a option for symmetry correction. If there is demand for this feature, implementation will be given high priority.
  • New action: generate_hybrid_model. This action partially expands a reaction network around a set of population species specified in the optional blocks population types and population maps. This feature creates a transformed BNGL model that may be simulated using a hybrid particle-population method in NFsim. This is useful for combinatorially complex models that contain a few species with high populations. See full documentation for details.
  • New blocks: population types and population maps. See action generate_hybrid_model.
  • New molecule types attribute: PopulationType. This attribute flags a molecule as a population type. NOTE: population type molecules may not contain components. NFsim recognizes this attribute and treats the molecule as a population variable. See action generate_hybrid_model.

Core BioNetGen updates and bug fixes

  • Updated writeMfile(): M-file code generation was updated to provide interface compatibility with writeMexfile(). The code generated by either method can be substituted in any MATLAB routine without modifying the input or output arguments. See complete notes on Mex code generation.
  • Use of special ratelaw Sat with more than R+1 arguments, where R is the number of reactants, will produce an informative error at parse time.
  • Use of special ratelaw MM with non-bimolecular or symmetric reaction rules will produce an informative error at parse time.
  • Use of special ratelaw MM with fewer or more than 2 arguments will produce an informative error at parse time.
  • Fixed parsing bug that caused an infinite loop when a “.” appeared in a list of components.
  • Patterns and species with duplicated bond labels will produce an informative error at parse time.
  • Minor changes to whitespace formatting in NET and BNGL file outputs. This may affect downstream processing if parses are not robust with respect to whitespace. NOTE1: spaces, multiple spaces and tabs should all be treated identically. Continuing a BNGL line past a newline character requires a "\". Whitespace at the beginning or end of a line is ignored. Whitespace should not appear within a pattern or species. NOTE2: These changes caused trouble in the RuleBender parser, so some of these changes were rolled back.
  • Minor changes to reaction rule processing: Remove bond transformations are ignored if one or both molecules participting in the bond are deleted by other transformations. NOTE: this saves a little effort when firing reactions in NFsim. This also simplified NFsim logic by avoiding situations where a bond removal was attempted on a deleted molecule.
  • Internal code restructuring: Improved modularity of reaction rule application. Created copy constructor methods for all classes.
  • Improved function parser in BNG: functions now have a private namespace so that argument names do not conflict with global parameter names. This permits arbitrary nesting of functions (although cyclical dependencies are forbidden).

Network2 simulator updates and bug fixes

  • Fixed bug that potentially led to observable count errors in Network2 on-the-fly simulation. BNG added edge species to observables immediately, while Network2 assumed observables were updated only after species were populated. This led to errors in some cases. NOTE: this bug was not present in any numbered releases, but did appear in a distribution packaged with NFsim. This bug had no effect on the accuracy of simulations performed with NFsim.
  • Fixed handling of higher-order reaction symmetries in Network2. Previously, only bimolecular symmetry was handled correctly.
  • Fixed bug in Network2 implementation of SSA where fixed species (constant population) were handled incorrectly. In the typical case, fixed species were permitted to vary. In rare cases this resulted in fixing species that should be permitted to vary. NOTE: this bug did not affect ODE simulations or NFsim.
  • Fixed bug in Network2 where reactions with zero products caused the simulation to fail before start. NOTE: reactions with zero products occur when one the products are flagged as fixed species either globally or with respect to the reaction.
  • Changes to Network2 output formats: CDAT file now has 12 digit precision for time and species. GDAT file has 8 digit precision for time and observables. NOTE: prior versions had 16 digit precision in the CDAT file, this resulted in fluctuation of the least significant digit due to numerical precision limits. While the fluctations were numerically insignificant, this caused problems in post processing scripts that compared values without a tolerance bound.
  • Changes to special ratelaws Sat, MM and Hill: Network2 calculates discrete corrections to reaction propensities due to symmetric reactants. NOTE: prior versions allowed symmetric reactions to fire when only one copy of the reactant was present in the system.
  • Added libmathutils.a to the makefile clean script.

Network3 development release

  • Network3 is a development version of the BioNetGen Network Simulator. Network3 supports global function ratelaws. Global function ratelaws define the elementary rate constants in terms of constant parameters and global observables. NOTE: Network2 is still the default network simulation in this release. The user must compile Network3 by entering the Network3 subdirectory and executing make. LIMITATIONS: Argument passing is not yet supported. On-the-fly network generation is broken.

NFsim compatibility

  • Added optional TotalRate keyword for rate laws. TotalRate instructs NFsim to treat a global function as the overall reaction rate, rather than the usual interpretation as per reactant set. Network simulations do not support this syntax.
  • Symmetry factor calculation: A symmetry factor based on reaction center symmetries is calculated while processing each reaction rule. The symmetry factor is written to XML with id “symmetry_factor”. In the future, this will permit full compatibility between NFsim and Network simulations with respect to complex symmetries.

et Cetera

  • New example model in Models2 subdirectory: Trivalent Ligand--Bivalent Receptor (TLBR).
  • Improved collection of validation models: Validation models help us indentify bugs earlyin the development process. Improved validation will increase the reliability of BioNetGen releases.
  • Organized third party libraries in [BNG_root]/libsource directory.
  • Updated Makefile: Compile Network3 by calling “make network3” from the BNG root directory. Gets third party libraries from libsource directory, rather than an internal subdirectory.

Known Issues

  • Network3 simulator does not support true function arguments.
  • On-the-fly network generation is not supported in Network3 (please use Network2).
  • Infinite loop encountered in Makefile if "clean" recipe is executed while subdirectories are missing (ctrl-c will terminate the loop).

version 2.1.7

  • BUG NOTICE a problem with random number seeding causes about 50% of SSA simulations to be performed with the same random number stream. This results in skewed statistics. Please upgrade to the testing distribution!
  • Fixed Bug from v2.1.6 related to molecule and species deletion.
  • New model simulation feature: writeMEXfile().
    • Simulate ODE network models from the MATLAB interpreter through the MEX interface.
    • Compilation depends on Sundials CVODE library and the MATLAB MEX compiler.
    • Very fast.
    • Supports global functions.
    • Useful for post-simulation analysis in MATLAB.
    • This feature is in beta testing! Your feedback is appreciated.

version 2.1.6

  • This version has a serious bug related to molecule and species deletion. Upgrade to 2.1.7 is highly recommended. Results generated should be re-checked and verified if the model contains any deletion rules.
  • Successfully translates a given BioNetGen model to SSC model.
    • The translator does not handle rules with more than two reactants. However, it can handle any number of operations on the reactants.
    • Rules containing non-equivalent SSC features like, '?', exclude_reactants, include_reactants, exclude_products or include_products, MatchOnce, labels '%' and Compartments will be omitted and commented in the translated file. A warning will also be generated specifying that rule.
    • SSC cannot use patterns where connectivity is not specified.
    • As SSC does not handle molecules with same component names, the translator translates the rule but does not provide any combinatorial expansion of the rule. And thus, when compiling, SSC will complain about the rule with molecule with same component name.

version 2.1.5

  • Implements all compartmental features described in the Winter Simulation Conference paper.
    • location of synthesized molecules is inferred, if not specified explicitly.
    • species location context in binding/unbinding rules is now permitted.
  • Binaries are not compiled: after opening the archive file, type "make" in the root directory.
  • Some output formats supported for compartments: BNGL, Matlab M-file, and XML. (Note that rule models, but not reaction networks, are supported in XML. This is true for compartmental and non-compartmental models.) SBML is not currently supported for compartmental models.
  • Saturation, Michaelis-Menten, and Hill-type rate laws are implemented for non-compartmental models, but these rate laws will not work correctly in a compartmental model (fix coming soon).
  • Older versions of Motivating_example_cBNGL.bngl have a slight incompatibility (please download the latest version here): abstract molecules used as sinks or sources must have a compartment location, even if it is irrelevant.
  • If reactant patterns in a rule have partial overlap, the symmetry factor for reaction rates may be calculated incorrectly. E.g. R(a) + R(a,b~pY) -> R(a!1).R(a!1,b~pY) will be handled incorrectly when the first reactant also matches the second pattern. This is a legacy issue--the problem exists in all previous versions. This type of rule is not very common, so most models are unaffected.

version 2.1.4

  • Fixed bug in symmetry handling in synthesis reactions.
  • Some improvements to the NFsim interface (NFsim is not yet included in the public distributions).

version 2.1.3

  • Added Hill rate law (usage is Hill(k,K,n), which gives a rate of k*x1^n/(K^n+x1^n)). This rate law works only with simulate_ode and simulate_ssa, and not with NFsim, Matlab, or XML output. Here is an example file the demonstrates use of the Hill function.

version 2.1.2

  • Fixed non-elementary rate laws.

version 2.1.1

  • Bug notice: Non-elementary rate laws are broken in this version. This bug is fixed in the next release (2.1.2). Support for these rate law types is considered legacy and users are encouraged to switch to using Function notation, which will be introduced at the time NFsim is released.

version 2.1.0

  • Implements compartmental BNGL (cBNGL), see Wsc09.
  • -log option to automatically generates log file without redirect.
  • Improved Matlab output.
  • Outputs XML format that is compatible with NFsim and GetBonNie.
  • Resolves reaction center and context to alleviate symmetry issues (some issues remain - multiple ways to satisfy rule context no longer multiples the reaction rate, but symmetries in rule context are not counted correctly).
  • Doesn't include binaries, which have to be made from source (type 'make' in the root directory of the distribution).
  • Default compartment location for molecule synthesis not yet implemented. At present, all synthesized molecules must have an explicit compartment location included in the product side of the rule.
  • SBML output does not support compartments.
  • The "$" operator and a species location prefix "@C:" cannot be used together on a reactant or product in a rule.
  • Bug notice: This version does not correctly handle symmetry in the context of a rule that is not broken by application of the rule, as in the example

R(l)+L(r,r,r) -> R(l!1).L(r!1,r,r) kp1, km1. The correct multiplicity of this reaction is 3 (if R is monovalent), but BNG 2.1.0 gives the reaction a multiplicity of 3/2. This problem is fixed in version 2.1.1. For now, the fix is to manually correct the multiplicity by adding multiplicative factors in the rate law. For the example above, the correct rate constants would be 2*kp1 and 2*km1.

BioNetGen 2.0 releases

version 2.0.48

  • run_network executable under Mac OS X is not optimized for performance on Intel processors. Recompile by typing 'make' in distribution directory.

version 2.0.46

  • run_network executable under Mac OS X is not optimized for performance on Intel processors. Recompile by typing 'make' in distribution directory.
  • Stable version that allows component state mapping but retains checks for incomplete molecule specifications.

--Faeder 00:16, 6 July 2007 (MDT)

version 2.0.45

  • This is an ALPHA release. It provides a temporary fix for an issue that prevents use of rules that map component states from reactant onto product molecules, which are required for metabolic label tracing.

--Faeder 09:28, 6 June 2007 (MDT)

version 2.0.44

  • Optional syntax changes
    • Enclose model block in begin/end model
    • Omit rate constants in reaction rules – automatically generated. DEPRECATED in 2.1.7+
    • Use arbitrary math expressions for initial concentrations and rate constants (not rate laws).
  • Define observables based on stoichiometry of a single component.
  • Ability to use HNauty for graph isomorphism checking using setOption command.

--Faeder 09:55, 28 March 2007 (MDT)

version 2.0.41

  • Improved recognition of OS specific binaries using the $Config{myarch} variable in Perl.
  • Fixed model naming in SBML files (path header is removed).

--Faeder 10:36, 8 November 2006 (MST)

version 2.0.40

  • Now includes RuleBuilder GUI interface to BioNetGen.
  • Back end executables for Linux, Mac, and Windows also provided in the default distribution.

version 2.0.39

  • Fixes small bugs in reading of Expressions from parameter block.

version 2.0.38

  • Fixes bug that appeared starting in 2.0.36 that reading of Reactions from a .NET file was broken. It also marks the first version to use the new module, which allows the use of simple math expressions in the parameter block. This version may be somewhat unstable due to incomplete testing of the and other related changes. --Faeder 21:31, 27 September 2006 (MDT)

version 2.0.37

  • Fixes deleteMolecules bug. Also introduces stricter Molecule Type checking. If the Molecule types block is used, only molecules matching defined types will be allowed as seed species, in observables, or in reaction rules. You will also note that Compartments are now defined in the .net file. There is now a partial implementation of Compartments, but the next release will fully implement these capabilities, and will be accompanied by documentation of the new syntax.

--Faeder 11:13, 13 September 2006 (MDT)

version 2.0.36

  • Fixes Sat/MM bug involving reactions that use MM and Sat RateLaws in which reactant order was not preserved in the generated reactions.

version 2.0.35

  • Fixed the Dimer dissociation bug, which resulted from improper checking of product connectivity when molecules were deleted in a reaction. The bug could only arise in a rule in which a molecule is deleted, but it is otherwise difficult to anticipate. Updating to this version is therefore strongly recommended.

--Faeder 00:53, 27 July 2006 (MDT)

version 2.0.34

  • Fixed bug in handling of include/exclude directives that allowed reactions that should have been excluded. A test input file that demonstrates the bug is here.
  • Added a java plotting utility called PhiBPlot for plotting CDAT and GDAT files.

--Faeder 12:11, 11 July 2006 (MDT)

(starting with version 2.0.34)

Personal tools