Command-line interface

The racerts CLI mirrors the core functionality of the Python API. The command is always:

$ racerts filename.xyz [options]

where the filename.xyz is the path to an .xyz file containing a single TS conformer.

General inputs

Command Options Explanation
-c
--charge
<INT> [0] Overall molecular charge
-smiles
--input_smiles
<STR...> One (or multiple) SMILES for either product
or starting material to define topology
-atoms
--reacting_atoms
<INT...> List of (0-based) indices of reacting atoms
-frozen
--frozen_atoms
<INT...> Optional: overwrite of atoms to freeze;
if omitted, neighbors of reacting atoms are inferred

Ensemble size

Command Options Explanation
-cf
--conf_factor
<INT> [80] Number of initially generated conformers:
NumRotatableBonds × conf_factor + 30
-n
--number_of_conformers
<INT> [-1] Specify number of initially generated conformers
(and overwrite conf_factor)

Conformer Generation Configuration

Command Options Explanation
-m
--mol
<smiles|bonds|connect> Method to infer molecular graph from .xyz:
smiles use MolGetterSMILES;
bonds use MolGetterBonds;
connect use MolGetterConnectivity
-e
--embed
<dm|cmap> Embedding method:
dm = bounds-matrix; uses BoundsMatrixEmbedder;
cmap = coordinate map; uses CmapEmbedder
-ff
--ff
<mmff|uff> [mmff] Force-field refinement: ;
mmff uses MMFFOptimizer;
uff uses UFFOptimizer

Output

Command Options Explanation
-o
--output
<STR> [conformer_ensemble.xyz] Output .xyz filename
--out_energies - Write energies in Eh in the comment line;
conformer property remains in kcal/mol
-v
--verbose
- Verbose output

Performance and reproducibility

Command Options Explanation
--num_threads <INT> [1] Threads for embedding/optimization
--seed <INT> [12] Random seed
--no_fallback - Disable automatic fallback (see below)

Fallback

In the default setup, an automatic fallback substitutes modules upon failure:

MolGetter:
1. MolGetterSMILES
2. MolGetterBonds
3. MolGetterConnectivity

Optimizer
1. MMFFOptimizer
2. UFFOptimizer

The next module in the chain is used only if the previous one fails.

molgetter options

Command Explanation
--no_assignbonds For bonds getter: don’t assign bonds [default: True]
--disallow-charged For bonds getter: disallow charged fragments [default: True]

embedder options

Command Explanation
--no-random_coords Disable random coordinates

optimizer options

Command Explanation
--force_constant <FLOAT> [1e6]

RMSDPruner options

Command Options Explanation
-rmsd
--rmsd_thres
<FLOAT> [0.125] RMSD threshold in Å
-rmsd_hs
--rmsd_include_hs
- Include hydrogens when computing RMSDs
[default: False]
--no_filter_energies - Disable energy-based dissimilarity prefilter
[default: True]
--no_filter_rotations - Disable rotational-profile prefilter
[default: True]
--rmsd_energy <FLOAT> [0.1] Energy difference threshold (kcal/mol) for the prefilter
--rmsd_rot_fraction <FLOAT> [0.03] Rotational-difference fraction threshold
-rmsd_match
--rmsd_max_matches
<INT> [10000] Max substructure matches for RMSD calculation

EnergyPruner options

Command Options Explanation
-energy
--energy_thres
<FLOAT> [20.0] Energy window for pruning (kcal/mol)

Common recipes

Basic run

$ racerts example.xyz --charge 0 --reacting_atoms 2 3 4

Use SMILES-defined topology and coordinate-map embedding

$ racerts example.xyz --charge 0 \
  --reacting_atoms 2 3 4 \
  --input_smiles "C1=CC=CC=C1" "O" \
  --mol smiles --embed cmap --ff mmff --out_energies

Increase diversity by allowing more initial conformers

$ racerts example.xyz --charge 0 --reacting_atoms 2 3 4 --conf_factor 120

Faster refinement on many conformers with threads (if using multithreaded optimizers)

$ racerts example.xyz --charge 0 --reacting_atoms 2 3 4 --num_threads 4