Releases: ReactionMechanismGenerator/RMG-Py
RMG-Py v3.1.0
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
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
-
Bugfixes
-
Arkane
-
Miscellaneous
RMG-Py v2.4.0
- Heterogeneous catalysis!
- 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
orInChI
argument directly, and the identifiers can be accessed via theSMILES
andInChI
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
- New
- 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
- 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
-
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
- New pathways added for lone-pair multiple-bond resonance, replacing
-
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
- Fixed issue where react flags were being reset when filterReactions was
RMG-Py v2.2.1
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
-
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
-
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
-
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
-
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