Changelog¶
Release 4.0.0¶
- API Changes:
Move network refinement to separate folder
Move all filters to separate folder
Move reaction rules to separate folder
Remove deprecated database queries
Removed some gear options such as pre_refine_model in favor of the default model field
Set the default model option with PlaceHolderModel and check if it is still present before launching the gear to make sure that an intended model is used
Small changes to the default arguments of the kinetic modeling gear to facilitate its use in SCINE Heron
- New features
Add StructureFilters derived from fitting AggregatesFilters.
Assemble reactive complexes from two given molecules easily with an CLI.
Elementary Step Gears can set up reaction trials for flasks.
Almost all Aggregate and ReactiveSiteFilters are made suitable for flasks. If not, a note is included in the documentation.
Add an AggregateFilter that filters based on substructure searches.
Add an AggregateFilter that filters based on allowed / disallowed molecular charges.
Add reverse option for some existing AggregateFilters.
KineticsGear now has an option that allows to run it as many cycles as long as no new aggregates are activated and then stops itself.
Add gear to carry out additional energy calculations.
Kinetic modeling may now work with a mixture of electronic structure models.
Energies may now be automatically referenced as formation energies from the atoms.
The bond-based trial generator is now able to enable (enable exploration/analysis) the analysis of structures, elementary steps, etc. in the results of already completed calculations, i.e., the trial generator detects that it already set up a calculation previously. Instead of just continuing, it may then enable the results of this calculation. This simulates a step-wise exploration of already existing data in the DB that was disabled before and is intended to allow re-exploration with different reaction conditions such as temperature and pressure or recycle existing data after changing the kinetics gear (or kinetic modeling, pathfinder etc.).
Add a framework to filter reactions (analogous to the aggregates filters) and filter elementary steps. These new filters can be applied to the refinement framework (e.g., barrier-screening, barrier-less reaction selection, concentrations etc.).
- The refinement is now split into 3 gears:
Calculation-based refinement looping over the calculations and refining elementary steps (structures etc).
Reaction-based refinement looping over reactions and selects elementary steps to be refined for each reaction (including energy window for the step selection).
Aggregate-based refinement looping over aggregates and refining the structures of these aggregates (including energy window for the selection of the structure).
All refinement gears support the same enabling strategy as introduced to the bond-based trial generator.
Add reaction filter-based kinetics gear.
Add reaction filter to constrain the maximum energy encountered when exploring a single potential energy surface.
Add an aggregate filter to enforce that the particle number is conserved during the exploration.
Add feature that a running Network Expansion of the Steering Wheel can be interrupted and continued later.
- Changes
Rework the Engine / Gear interaction, by replacing the sent signals with shared memory members
Add EngineHandler class to join any forked engines if a signal is sent, replacing the custom code in the main script; the class also allows for running all engines and stopping the processes gracefully
Change the internal representation of some AggregateFilters from strings to enums in order to be faster.
Add additional caches to some AggregateFilters for increased performance.
Add more default settings.
- Bugfixes
The MinimalConnectivityKinetics and BasicBarrierHeightKinetics did not consider reactions where all reactants on the right hand side were available, which lead to fewer activated aggregates
GearOptions of the NetworkExpansion did not consider that there could be multiple gears of the same type but with different options in a protocol, hence their datastructure (including access keys) are now changed.
Fix type annotations in the documentation.
- Technical changes
get_transition_state_free_energy in the reaction_wrapper now returns max(e_lhs, e_rhs) if the reaction is barrier-less.
Add more typehints
Release 3.1.0¶
- New features
Add SteeringWheel infrastructure for actively steering explorations.
Add ThermoAggregateHousekeeping gear which allows sorting of structures with a frequency check.
AtomPairFunctionalGroupFilter for specifying pairs of functional groups that are allowed to react.
CentralSiteFilter to focus explorations on certain elements, suited well for homogeneous catalysis.
New ElementaryStepGear to focus explorations on certain structures.
New ReactiveSiteFilter based on substructures provided in .xyz or .mol files.
The KineticModelingGear is now able to setup jobs for the puffin interface of the ReactionMechanismSimulator.
- Changes
Queries and utility functions related only to the database are moved to the scine_database package. The functionality here is deprecated and the unittests are removed.
Update address in license
Release 3.0.0¶
- New features
Add improved handling of kill (SIGINT) and terminate (SIGTERM) signals to engines, including new breakpoints in existing gears.
Add a gear that allows the re-running of calculations that failed (e.g., failure to locate a transition state).
Allow to either exclude or include reactive sites based on rules.
New PathfinderKinetics gear to activate compounds based on the compound costs obtained with Pathfinder.
New TrialGenerator for ElementaryStepGears based on reaction templates.
- Improvements
Many gears and also filters now use local caches for enhanced performance.
All gears have an Options object holding at least a Model.
All ElementaryStepGears and TrialGenerators expose a public method that allows access to the calculations that would be set-up in the next run.
Add option to ElementaryStepGear and TrialGenerator that allows to check all existing calculations for an exact settings match, so that elementary step trials can be enhanced with more inclusive options.
Allow to get all valid compounds for the BruteForceConformersGear
Add caches to ElementaryStepGear and BasicBarrierHeightKinetics
More gears can be limited with an AggregateFilter.
Add type checking of reaction rules at runtime.
More options to chose for building a graph with Pathfinder and more robust determination of compound costs.
Allow restriction of compounds based on maximum reaction energy of reactions leading to them.
- Changes
Separate the reaction rule definitions from the reactive site filters and structure them.
Redefine the FunctionalGroupRule.
Rename CompoundFilter to AggregateFilter.
Consider the explore status of each aggregate/reaction for the Thermo gear and add setting to allow to ignore the status.
Increase default number of optimization cycles for reactive complex optimization to find a potential barrierless elementary step.
- Bug Fixes:
Add the calculation status to the safety query of the AggregateHousekeeping gear if the found structure is the result of a minimization to avoid false positives due to race conditions with the results-adding puffin.
Fix lastmodified query to correctly handle time zones.
Fix bug in attack direction cache of the reactive complex generator.
Fix bug in BasicBarrierHeightKinetics leading to too many activations in certain network arrangements.
Release 2.2.0¶
- New features
Introduce Pathfinder, a graph-based approach to analyze how compounds are connected via reactions while considering kinetic and stoichiometric constraints.
Release 2.1.0¶
- New features
Introduce Flasks to the reaction networks (aggregates of stable non-bonded complexes)
Elementary-step gear that uses the current minimum-energy conformer for reaction trial generation.
Added a gear that sets up kinetic modeling jobs.
Allow the refinement of a subset of elementary steps per reaction. The subset is given through an energy cut-off above the lowest lying transition state.
Introduce possibility to efficiently explore barrierless dissociations.
Release 2.0.0¶
- Python rewrite, and open source release with the following initial features:
Scriptable framework including a base set of features for the automated exploration of chemical reaction networks
- Initial chemical reaction networks consisting of
Structures aggregated into Compounds
Elementary Steps aggregated into Reactions
Properties tagged to Structures
Calculations that generated the network
Definitions of
Engines
with perpetually runningGears
to continuously perform tasks with chemical reaction networks (see list below)Storage and expansion of chemical reaction networks in a SCINE Database
Automated job set up and execution via SCINE Puffin
Definitions of basic filters to reduce number of Elementary Step trials (see list below)
- Initial
Engines
/Gears
: - Basic bookkeeping jobs:
Sorting Structures into Compounds (BasicCompoundHousekeeping)
Sorting Elementary Steps into Reactions (BasicReactionHousekeeping)
Basic Scheduling and prioritization of Calculations (Scheduler)
- Data completion jobs:
Conformer generation per compound (BruteForceConformers)
Hessian generation per transition state and minimum energy Structure (BasicThermoDataCompletion)
- Elementary Step exploration based on existing Compounds:
- For one Structure per Compound (MinimalElementarySteps):
Based on atoms/fragments (AFIR, NT1)
Based on bonds (NT2)
- For all combinations of Structures per Compounds (BruteForceElementarySteps):
Based on atoms/fragments (AFIR, NT1)
Based on bonds (NT2)
- Steering of network growth via simple kinetic analyses:
Based on connectivity to user input (MinimalConnectivityKinetics)
Based on barrier heights of Elementary Steps (BasicBarrierHeightKinetics)
- Initial set of filters:
- Compound filtering possible:
Base class, allows all compounds (CompoundFilter)
By element counts (ElementCountFilter, ElementSumCountFilter)
By atom counts or molecular weights (MolecularWeightFilter, AtomNumberFilter)
By database IDs (IDFilter, OneCompoundIDFilter, SelectedCompoundIDFilter)
By context (SelfReactionFilter)
By Hessian evaluation (TrueMinimumFilter)
By composition (CatalystFilter)
- Reactive site filtering possible:
Base class, allows all reactive sites (ReactiveSiteFilter)
By fixed, simple rankings (SimpleRankingFilter, MasmChemicalRankingFilter)
By custom user rules (AtomRuleBasedFilter, FunctionalGroupRule)
By atom types (ElementWiseReactionCoordinateFilter)
All filters of the same type can be chained with logical operations to tailor the behaviour
Release 1.0.0¶
Closed source C++ prototype implementation.