Skip to content

Releases: ReactionMechanismGenerator/RMG-Py

RMG-Py v3.1.0

11 May 19:36
Compare
Choose a tag to compare

RMG-Py Version 3.1.0

Date: April 23, 2021

We recommend creating a new conda environment using the latest environment.yml
as many dependencies have changed, and upgrading an existing environment is
always troublesome.

  • RMG-Py

    • Added support for Bromine
    • Added improved method to calculate temperature dependent solvation free energy
    • Made Rank 1 accuracy correspond to 0.2 kcal/mol instead of 0 kcal/mol
    • Improvements to Group Additivity comments, in particular adding missing group comments
    • Added support for trimolecular units in ArrheniusBM fits
    • Improvements to profiling
    • Use kekulized structures for transport estimation
    • Automatic tree generation script improvements
    • Properly short circuit is_isomorphic when strict=False
    • Added block for specifying species tuples to react when starting an RMG run
    • Improve ArrheniusBM fitting to a single reaction
    • Improvements in bidentate thermochemistry estimation
    • Added new surface attributes for metals and facets
    • Added support for Phosphorus
    • Enable use LSRs to scale thermo from different metals and enable proper
      use of training reactions from different metals
    • Added maximumSurfaceSites constraint
  • Arkane

    • Added frequency scaling factors for apfd/deef2tzvp and wb97xd/def2svp
    • Kinetics and pdep sensitivities additionally saved in YAML format
    • Enable automatic isodesmic reaction generation
    • AECs, BACs and frequency scaling factors moved from Arkane to RMG-database
    • Added functionality for Petersson and Melius BAC fitting using Arkane and
      the reference database
    • Enabled two parameter Arrhenius fit option
    • Added functionality for fitting AECs
    • Added classes to standardize model chemistry definitions
    • Use adjlists instead of smiles when saving
  • Bugfixes

    • QMTP updated to work with g16 executable
    • Fixed various Sticking Coefficient bugs
    • Fixed issues with Surface Arrhenius reactions written in the reverse being converted
      to ArrheniusEP instead of SurfaceArrheniusBEP
    • Fixed NaN handling in the explorer tool's steady state solve
    • Fixed determine_qm_software for Orca
    • Fixed bug where elementary_high_p library reactions with more than the maximum number of atoms for pdep
      never entered the edge
    • Fixed bug related to pdep networks having sources not contained in the core
    • Fixed various profiling bugs
    • Fixed issue with indexing when merging models
    • Fixed bug with ranged liquid reactors
    • Fixed bug with loading of autogenerated trees in Arkane
    • Fixed bug related to collision limit violation checks in LiquidReactor
    • Fixed bug related to Pmin and Pmax definition in SurfaceReactor
    • Fixed bugs in global uncertainty analysis for LiquidReactor
    • Fixed bug related to the units of reverse rate constants for reactions involving surface species
    • Fixed bug in Molecule isomorphism where it would simply assume the given initial map was correct
    • Remove deprecated matplotlib warn keyword
    • Fixed bug related to reading Chebyshev forms in Chemkin files
    • Fixed reference concentration for surface species when calculating Kc
    • Fixed issue with the reaction generation using the reversee of Surface_ElleyRideal_Addition_MultipleBond
    • Fixed bug with adjlist multiplicitly line being mistaken as the species name
    • Fixed bug with the library to training notebook
    • Remove temporary seed mechanisms if they exist from a previous run
  • Miscellaneous

    • Modified find_parameter_sources_and_assign_uncertainties to regenerate chem.inp as needed
    • Added option to save atom order when labeling template reactions
    • Added option to ignore atom type errors when creating molecule objects
    • Enable use of critical_distance_factor in from_xyz
    • Improved SIGINT handling when calling lpsolve
    • Enable H-bond drawing
    • Improvements to debug messages
    • Updated dependencies cclib and OpenBabel

Note that the upgrade to OpenBabel v3+ will change the interpretation
of some ambiguous SMILES strings that use the lower-case aromatics notation.
Although we think the new interpretation is not wrong, it might be different
from previous versions, so take care.

RMG-Py v3.0.0

17 Dec 05:00
756c968
Compare
Choose a tag to compare

This release represents a major milestone in RMG development and includes many backwards-incompatible changes, most notably Python 3 compatibility and major API changes. Users switching to RMG 3 will need to create new conda environments and update any scripts which access the API. We recommend using the futurize script from python-future for updating scripts for Python 3 and the provided rmg2to3.py script for updating scripts for RMG 3.

Python 3 #1724

  • RMG is now compatible with Python 3.7 and newer
  • RMG v2.x versions will no longer be supported
  • API changes
    • Method, function, and argument names have been standardized to use snake_case across RMG and Arkane
    • Input file related code was not changed, in order to continue support for existing syntax
    • Conversion script has been provided to aid transition (scripts/rmg2to3.py)
    • Standardized submodule names in the rmgpy.tools module #1794
  • Accompanying changes
    • Reduction and scoop_framework modules have been removed
    • New/updated hash and comparison methods for Species/Molecule/Atom/Bond classes
    • DDE thermochemistry estimator has been replaced by chemprop
    • Update example IPython notebooks #1735
    • Update global uncertainty module to work with MUQ 2 and Python 3 #1738
  • Miscellaneous clean up and bug fixes following transition #1741, #1744, #1752, #1759, #1785, #1802, #1798, #1799, #1808

Arkane

  • Improvements and refactoring of job output file creation and content #1607
  • Fix kinetics fitting bug #1672
  • Improvements to automatic network exploration tool #1647
  • Support for ND classical and semi-classical rotor calculations #1640, #1849
  • Support for 2D quantum mechanical rotor calculations using Q2DTor #1640
  • Support for providing absolute file paths #1685
  • Output RMG-style libraries #1769
  • Check for error termination in Gaussian log files #1766
  • Support for parsing Orca log files #1749
  • Support for parsing MP2, double hybrid DFT, CCSD, and CCSD(T) energies from Gaussian log files #1815
  • Support for TeraChem log files #1788
  • Miscellaneous bug fixes #1810

New features and other additions

  • Additional options for heterocycles in MLEstimator #1621
  • Automatic tree generation algorithm implementation completed #1486, #1675, #1848
  • New simulation restart approach using seed mechanisms (old pickle-based method removed) #1641
  • Added new MBSampledReactor type for simulating molecular beam experiments (does not support model generation) #1669
  • Improvements to group additivity thermo estimates for aromatics and sulfur species #1731, #1751
  • Improvements to solvation correction determination with multiple resonance structures #1832
  • Add support for reading and writing extended element syntax in Chemkin NASA polynomials #1636
  • Add support for fitting negative Arrhenius rates (found in MultiArrhenius data) #1834

Bug fixes

  • Fix numpy rcond usage to restore support for older numpy versions #1670
  • Fix bug with duplicate library reactions when using RMG generated seed mechanisms #1676
  • Move parse_command_line_arguments to facilitate importing in binary package #1717
  • Fix issues with is_identical_to methods of kinetics models #1705
  • Fix cython issue with make_object definitions #1817
  • Fix issue with estimating solvation corrections for radicals #1773
  • Fix parsing of certain types of RMG generated reaction comments #1842
  • Fix identifier generation for surface species using OpenBabel #1842
  • Fix mole fraction normalization for SimpleReactor #1809
  • Fix permissions error when writing seed mechanisms in WSL #1796
  • Fix issue with restarting from job without reaction filters #1847

Other

  • Improvements to mergeModels.py script #1649
  • Miscellaneous performance improvements #1677, #1765,
  • Raise errors when NaN is encountered in solver #1679
  • Allow sulfur species to have valence 12 in resonance algorithm #1751
  • Add support for maxproc argument to generate_reactions module #1780
  • Display atom index when drawing groups #1758
  • Update sensitivity example #1805
  • Update commented input file #1806
  • Generate reverse reaction recipes in reverse order of the forward recipe #1829
  • Add iodine to Chemkin elements list #1825
  • Remove unnecessary duplicate checking for seed mechanisms #1824
  • Organize examples for running RMG scripts #1840
  • Increase RDKit version requirement to avoid memory leak #1851
  • Logging changes #1721, #1755
  • Documentation updates #1680, #1709, #1767, #1781, #1784, #1807, #1845

Thanks to all contributors: ajocher, alongd, amarkpayne, cgrambow, dranasinghe, hwpang, kspieks, goldmanm, mazeau, mjohnson541, mliu49, oscarwumit, rwest, rgillis8, sarakha, sudoursa, xiaoruiDong, yunsiechung, zjburas

RMG-Py v2.4.1

23 Jul 18:49
af0ef48
Compare
Choose a tag to compare
  • Bugfixes

    • Improve error handling in NASA as_dict method #1630
    • Fixes to Fluorine atomtypes #1656
    • Fix pressure dependent network generation #1658
    • Add support for reversing PDepArrhenius with MultiArrhenius rates #1659
  • Arkane

    • Implement ZPE scaling factor #1619
    • Refactor infrastructure for bond additivity corrections #1605
    • Add frequency scale factors for wb97xd/def2tzvp and apfd/def2tzvpp #1653
    • Fix frequency scale factors in example files #1657
    • Get element counts from conformers #1651
  • Miscellaneous

    • Update conda environment files #1623, #1644
    • Output RMS (Reaction Mechanism Simulator) format mechanism files #1629
    • Properly clean up files after running tests #1645
    • Documentation fixes #1650
    • Improve as_dict and make_object by making them recursive #1643

RMG-Py v2.4.0

14 Jun 22:32
Compare
Choose a tag to compare
  • Heterogeneous catalysis!
    • RMG-cat fork has been merged #1573
      • Introduce SurfaceReactor
      • Thermo estimation for adsorbed species
      • Surface reaction generation and kinetics estimation
    • Introduce Van der Waals bonds (order 0) and quadruple bonds (order 4) #1542
  • Arkane
    • Automatically detect rotor symmetry #1526
    • Introduce new YAML files for storing and loading species statmech data #1402, #1551
    • Don't create species dictionary file if there are no structures #1528
    • Improvements to network explorer tool #1545
    • Improved class inheritance for quantum log file classes #1571
    • Automatic determination of optical isomers and symmetry using symmetry package #1571
    • Parse CCSD(T) energies from Molpro output #1592
    • Automatically determine molecule linearity #1601
    • Determine frequency scaling factor based on geom/freq method rather than sp method #1612
    • Improve logging related to energy barriers #1575
    • Ensure that translational mode is calculated for atoms #1620
  • Miscellaneous features
    • New enumerate_bonds method of Molecule to generate dictionary of bond types #1525
    • Introduce RMGObject parent class to support YAML dumping and loading #1402, #1540
    • Add support for fluorine atomtypes #1543
    • Introduce ArrheniusBM class for Blower-Masel kinetics #1461
    • Allow defining and using co-solvents for solvent libraries #1558
    • Introduce strict option to perform isomorphism between species/molecules while ignoring electrons and bond orders #1329
    • Molecule and Species objects can be instantiated by providing SMILES or InChI argument directly, and the identifiers can be accessed via the SMILES and InChI attributes #1329
    • Parallelization has been completely refactored using Python multiprocessing module in replacement of scoop, currently supports parallel reaction generation and QMTP #1459
    • Improvements to usability of uncertainty analysis functionality #1593
  • Bug fixes
    • Various fixes for supporting mono-atomic molecules in Arkane #1513, #1521
    • Ensure keras_backend is set consistently #1535
    • Fix handling of disconnected graphs in VF2 isomorphism algorithm #1538
    • Ignore hydrogen bonds when converting to RDKit molecule #1552
    • Other miscellaneous bugs #1546, #1556, #1593, #1600, #1622
  • Backward incompatible changes
    • Hydrogen bonds are now order 0.1 (instead of 0) #1542
  • New dependencies
    • pyyaml (required) #1402
    • scikit-learn (required) #1461
    • textgenrnn (optional) #1573
  • Other
    • Windows binaries are no longer officially supported. The new recommended way to use RMG on Windows computers is via a virtual machine or through the Linux subsystem. See documentation for updated installation instructions. #1531, #1534
    • Documentation updates #1544, #1567
    • Logging/exception improvements #1538, #1562
    • PEP-8 improvements #1566, #1592, #1596
    • Solver output files (png/csv) now report moles instead of mole fractions #1542
    • Replace global RMGDatabase object if the database is reloaded #1565
    • Print ML generated quote upon completion of RMG jobs #1573
    • Infrastructure for automatically generated reaction rate trees #1461
    • Testing related changes #1597, #1599
    • Updates to example Jupyter notebooks #1541, #1593

RMG-Py v2.3.0

21 Dec 20:19
Compare
Choose a tag to compare
  • Arkane (formerly CanTherm):

    • CanTherm has been renamed to Arkane (Automated Reaction Kinetics And Network Exploration)
    • New network exploration functionality using RMG-database
    • Support for all elements has been added for reading quantum output files
    • New supporting information output file with rotational constants and frequencies
    • Known thermo and kinetics can be provided in addition to quantum information
    • Improve general user experience and error handling
  • New machine learning thermo estimator

    • Estimate species thermochemistry using a graph convolutional neural network
    • Estimator trained on quantum calculations at B3LYP and CCSD(T)-F12 levels
    • Currently supports C/H/O/N, with an emphasis on cyclic molecules
  • Resonance:

    • New pathways added for lone-pair multiple-bond resonance, replacing
      two pathways which were more specific
    • New pathways added for aryne resonance
    • Aromatic resonance pathways simplified and refactored to use filtration
    • Kekule structures are now considered unreactive structures
  • Miscellaneous changes:

    • Isotope support added for reading and writing InChI strings
    • New branching algorithm for picking up feedback loops implemented (beta)
    • Global forbidden structure checking is now only done for core species for
      efficiency, which may lead to forbidden species existing in the edge
    • Minor improvements to symmetry algorithm to fix a few incorrect cases
  • Bug fixes:

    • Fixed issue where react flags were being reset when filterReactions was
      used with multiple reactors, resulting in no reactions generated
    • File paths for collision violators log changed to output directory
    • Fixed bug in local uncertainty introduced by ranged reactor changes
    • Fixed bug with diffusion limitation calculations for multi-molecular reactions
    • Various other minor fixes

RMG-Py v2.2.1

23 Jul 23:56
Compare
Choose a tag to compare

This release is minor patch which fixes a number of issues discovered after 2.2.0.

  • Collision limit checking:

    • RMG will now output a list of collision limit violations for the generated model
  • Fixes:

    • Ambiguous chemical formulas in SMILES lookup leading to incorrect SMILES generation
    • Fixed issue with reading geometries from QChem output files
    • React flags for reaction filter were not properly updated on each iteration
    • Fixed issue with inconsistent symmetry number calculation

RMG-Py v2.2.0

16 Jul 02:22
Compare
Choose a tag to compare
  • New features:

    • New ring membership attribute added to atoms. Can be specified in group adjacency lists in order to enforce ring membership of atoms during subgraph matching.
    • Reactors now support specification of T, P, X ranges. Different conditions are sampled on each iteration to optimally capture the full parameter space.
    • New termination type! Termination rate ratio stops the simulation when the characteristic rate falls to the specified fraction of the maximum characteristic rate. Currently not recommended for systems with two-stage ignition.
    • New resonance transitions implemented for species with lone pairs (particularly N and S containing species). A filtration algorithm was also added to select only the most representative structures.
    • Formal support for trimolecular reaction families.
    • New isotopes module allows post-processing of RMG mechanisms to generate a mechanism with isotopic labeling.
  • Changes:

    • Library reactions can now be integrated into RMG pdep networks if the new elementary_high_p attribute is True
    • Library reactions may be duplicated by pdep reactions if the new allow_pdep_route attribute is True
    • Jupyter notebook for adding new training reactions has been revamped and is now located at ipython/kinetics_library_to_training.ipynb
    • Syntax for recommended families has changed to set notation instead of dictionaries, old style still compatible
    • Ranking system for database entries expanded to new 0-11 system from the old 0-5 system
    • Collision limit checking has been added for database entries
  • Cantherm:

    • Improved support for MolPro output files
    • Added iodine support
    • Automatically read spin multiplicity from quantum output
    • Automatically assign frequency scale factor for supported model chemistries
    • Plot calculated rates and thermo by default
    • New sensitivity analysis feature analyzes sensitivity of reaction rates to isomer/TS energies in pdep networks
  • Fixes:

    • Properly update charges when creating product templates in reaction families
    • Excessive duplicate reactions from different resonance structures has been fixed (bug introduced in 2.1.3)
    • Fixed rate calculation for MultiPdepArrhenius objects when member rates have different plists
  • A more formal deprecation process is now being trialed. Deprecation warnings have been added to functions to be removed in version 2.3.0:

    • All methods related to saving or reading RMG-Java databases and old-style adjacency lists
    • The group additivity method for kinetics estimation (unrelated to thermo group additivity)
    • The saveRestartPeriod option and the old method of saving restart files

RMG-Py v2.1.9

15 May 22:40
Compare
Choose a tag to compare
  • Cantherm:

    • Atom counts are no longer necessary in input files and are automatically determined from geometries
    • Custom atom energies can now be specified in input files
    • Removed atom energies for a few ambiguous model chemistries
    • Add atom energies for B3LYP/6-311+g(3df,2p)
  • Changes:

    • Refactored molecule.parser and molecule.generator modules into molecule.converter and molecule.translator to improve code organization
    • SMILES generation now outputs canonical SMILES
    • Molecule.sortAtoms method restored for deterministic atom order
    • PDep reactions which match an existing library reaction are no longer added to the model
  • Fixes:

    • Fix issue with reaction filter initiation when using seed mechanisms

RMG-Py v2.1.8

02 May 15:46
Compare
Choose a tag to compare
  • New features:

    • Chlorine and iodine atom types have been added, bringing support for these elements to RMG-database
    • Forbidden structures now support Molecule and Species definitions in addition to Group definitions
  • Changes:

    • Reaction pair generation will now fall back to generic method instead of raising an exception
    • Removed sensitivity.py script since it was effectively a duplicate of simulate.py
    • Thermo jobs in Cantherm now output a species dictionary
    • Fitted atom energy corrections added for B3LYP/6-31g**
    • Initial framework added for hydrogen bonding
    • Renamed molepro module and associated classes to molpro (MolPro) to match actual spelling of the program
    • Chemkin module is now cythonized to improve performance
  • Fixes:

    • Allow delocalization of triradicals to prevent hysteresis in resonance structure generation
    • Fix reaction comment parsing issue with uncertainty analysis
    • Fix numerical issue causing a number of pressure dependent RMG jobs to crash
    • Template reactions from seed mechanisms are now loaded as library reactions if the original family is not loaded
    • Fix issues with degeneracy calculation for identical reactants

RMG-Py v2.1.7

02 May 15:45
Compare
Choose a tag to compare
  • Charged atom types:

    • Atom types now have a charge attribute to cover a wider range of species
    • New atom types added for nitrogen and sulfur groups
    • Carbon and oxygen atom types renamed following new valence based naming scheme
  • Ring perception:

    • Ring perception methods in the Graph class now use RingDecomposerLib
    • This includes the getSmallestSetOfSmallestRings methods and a newly added getRelevantCycles method
    • The set of relevant cycles is unique and generally more useful for chemical graphs
    • This also fixes inaccuracies with the original SSSR method
  • Other changes:

    • Automatically load reaction libraries when using a seed mechanism
    • Default kinetics estimator has been changed to rate rules instead of group additivity
    • Kinetics families can now be set to be irreversible
    • Model enlargement now occurs after each reactor simulation rather than after all of them
    • Updated bond additivity corrections for CBS-QB3 in Cantherm
  • Fixes:

    • Do not print SMILES when raising AtomTypeError to avoid further exceptions
    • Do not recalculate thermo if a species already has it
    • Fixes to parsing of family names in seed mechanisms