Reaction exploration
Generate transition states and reaction path
One of the key steps in reaction exploration is to enumerate reaction steps. MLatom supports generating transition states as well as reaction paths given reactants and products with the state-of-the-art diffusion model ECTS:
Xu M, Li B, Dong Z, Dral P, Zhu T, Chen H. ECTS: An ultra-fast diffusion model for exploring chemical reactions with equivariant consistency. ChemRxiv. 2025; doi:10.26434/chemrxiv-2025-f9vdp.
Prerequisites
MLatom 3.17.4
or laterEcTs 1.0
(Installation instructions can be found in https://github.com/AI4Reactions/ECTS. The required setting files in .json and models can also be there)
An example to generate TS
reactant = ml.data.molecule.from_xyz_file('./r.xyz')
product = ml.data.molecule.from_xyz_file('./p.xyz')
results = ml.simulations.gen_ts(
reactant=reactant, product=product, program='ects',
program_kwargs_json='./ts_kwargs.json',
n_ts=8, avg_ts=True,
working_directory='ects_ts'
)
generated_ts = results.ts
generated_avg_ts = results.avg_ts
The returned generated_ts
contain a list of sampled transition states with the same length as n_ts
. If avg_ts
is set to True
, you can obtain the averaged transition state generated_avg_ts
based on the all the samples.
An example to generate reaction path
reactant = ml.data.molecule.from_xyz_file('./r.xyz')
product = ml.data.molecule.from_xyz_file('./p.xyz')
results = ml.simulations.gen_ts(
reactant=reactant, product=product, program='ects',
program_kwargs_json='./path_kwargs.json',
path=True, n_path=8
avg_ts=True,
working_directory='ects_path')
reaction_path = results.path
The reaction_path
contains a list of molecular database and each molecular database consists of one reaction path.