Skip to main content

Tautomer Workflow

End-to-end tautomer generation, ranking, and conformer ensemble search.

This job chains several building blocks into a single composite workflow:

  1. Tautomer enumeration — RDKit enumerates all chemically reasonable tautomers for the input structure
  2. Geometry optimisation — each tautomer is geometry-optimised; duplicate minima are automatically removed
  3. Single-point energy ranking — optimised tautomers are ranked by absolute energy at the single-point level of theory
  4. Energy-window filter — high-energy tautomers are discarded according to the selected mode
  5. Conformer search — a conformer ensemble is generated for each surviving tautomer
from atomiverse import Atoms, TautomerWorkflow, TautomerWorkflowMode

atoms = Atoms.from_smiles("CC(=O)CC")

job = TautomerWorkflow(
atoms=atoms,
charge=0,
multiplicity=1,
optimization_level_of_theory=GFN2_XTB,
single_point_energy_level_of_theory=B97_3C,
mode=TautomerWorkflowMode.STANDARD,
)
job.submit()

result = job.require_result()
print(f"{len(result.tautomers)} tautomers found")
for i, (tautomer, energy, pop) in enumerate(
zip(result.tautomers, result.tautomer_energies_hartree, result.tautomer_populations)
):
print(
f" Tautomer {i + 1}: "
f"E = {energy:.6f} E₁₀, "
f"population = {pop * 100:.1f}%"
)
print(f" {len(result.tautomer_conformer_ensembles[i])} conformers")

Inputs

FieldTypeDefaultDescription
atomsAtoms(required)Input molecular geometry
chargeint0Total charge of the system
multiplicityint1Spin multiplicity (2S + 1)
optimization_level_of_theoryLevelOfTheory(required)Method for geometry optimisations
single_point_energy_level_of_theoryLevelOfTheory(required)Method for single-point evaluations
modeTautomerWorkflowModeSTANDARDControls the energy-window filter

Modes

The mode parameter controls how aggressively high-energy tautomers are filtered after single-point evaluation. The energy window is measured from the most stable tautomer.

ModeWindow (kcal/mol)Use case
LOOSE10.0Exploratory searches; keep most tautomers
STANDARD6.0General-purpose tautomer analysis
TIGHT3.0Focused studies near the global minimum
VERYTIGHT1.0Only the most stable tautomeric form(s)

Results

result.tautomers is a list of Atoms objects for the surviving tautomers, ranked by single-point energy (most stable first).

result.tautomer_energies_hartree contains the single-point energies in Hartree for each tautomer in the same order.

result.tautomer_populations is a list of Boltzmann populations at 298.15 K, computed from the lowest conformer free energy of each tautomer. The values sum to 1.0.

result.tautomer_conformer_ensembles is a list of lists — one conformer ensemble per tautomer. Each inner list contains Atoms objects for the conformers, sorted by free energy (most stable first).

result.tautomer_conformer_energies_hartree mirrors the ensemble layout with the corresponding free energies in Hartree.

Count fields

result.n_tautomers_generated, .n_tautomers_optimized, .n_tautomers_ranked, and .n_tautomers_filtered track how many tautomers survived each stage of the pipeline.

Compute Resources

The tautomer workflow is assigned to the medium tier for small molecules and promoted for larger systems or tighter modes. The walltime multiplier is 960 (approximately 2× the conformer workflow budget) to account for evaluating multiple tautomers.

Each sub-step (enumeration, optimisation, ranking) is cached independently, so repeating the workflow with different modes or levels of theory may benefit from partial cache hits.