> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revilico.bio/llms.txt
> Use this file to discover all available pages before exploring further.

# RevTaut

> Finding which tautomers of a molecule exist in water, and in what proportion

## Why Use This Engine?

The form you draw is not always the form a molecule takes in water. Moving one hydrogen changes which atoms donate and accept hydrogen bonds, and with it how the molecule binds. RevTaut lists every such form and scores the plausible ones across their conformers.

Use it before docking or free-energy work to check that the form you drew dominates, to find a minor tautomer that may be the one that binds, or to compare how a substitution shifts the balance across a series.

## Background

For each tautomer, RevTaut computes the free energy of a conformer ensemble:

$$
G = -RT \ln \sum_i e^{-(E_i + G_{\text{solv},i})/RT} + G_{\text{RRHO}}
$$

$E_i$ is each conformer's electronic energy, $G_{\text{solv},i}$ its solvation free energy in water, and $G_{\text{RRHO}}$ the thermal correction (zero-point energy, enthalpy and entropy) of the lowest conformer. Populations are a Boltzmann distribution over $G$ at 298.15 K:

$$
p_k = \frac{e^{-G_k / RT}}{\sum_j e^{-G_j / RT}}
$$

Zwitterions count as tautomers here.

## How It Works

| Stage | What happens |
| - | - |
| Enumerate | RDKit's tautomer rules list every hydrogen placement, plus the zwitterions reached by moving a proton from an O-H or S-H to a basic nitrogen. |
| Screen | Each candidate gets one geometry, optimized with GFN2-xTB, and is scored with the chosen method. Candidates within the screening window of the lowest one go on. |
| Refine | Each survivor gets its own conformer ensemble, generated with RDKit's ETKDG and pre-optimized with MMFF94s. Every conformer is optimized, scored in water and deduplicated. |
| Rank | Free energies, relative free energies and populations, most populated first. |

The default level of theory is:

```text theme={null}
AIMNet2/CPCM-X(water)//AIMNet2/ALPB(water)
```

| Method | Optimization | Energy | Thermal correction | Elements |
| - | - | - | - | - |
| AIMNet2 (ωB97M-D3) | AIMNet2 + ALPB(water) | AIMNet2 + CPCM-X(water) | AIMNet2 Hessian | H, B, C, N, O, F, Si, P, S, Cl, As, Se, Br, I |
| g-xTB | GFN2-xTB/ALPB(water) | g-xTB + CPCM-X(water) | GFN2-xTB Hessian | H to Rn |

## Running the Engine

### Inputs

Submit a single molecule. For a salt, submit the parent compound without its counter-ion: RevTaut keeps any counter-ion in the calculation, which changes the results. Files with more than one structure are refused.

| Format | Notes |
| - | - |
| SMILES (typed or `.smi`) | One molecule |
| `.sdf`, `.mol` | One record. Recommended for files: they carry bonds and formal charges |
| `.mol2`, `.pdb`, `.xyz` | One structure. XYZ bonds are inferred from the coordinates, and PDB bond orders are guessed |

Any tautomer of the molecule gives the same candidates. Up to 60 heavy atoms; files up to 10 MB.

| Parameter | Default | Description |
| - | - | - |
| Name | Optional | A name for the run |
| Molecule | Required | SMILES or structure file, formats above |
| Method | AIMNet2 | AIMNet2 or g-xTB. A molecule with an element AIMNet2 does not cover is refused with a suggestion to use g-xTB |
| Solvent | Water | The only solvent offered |
| Optimize in water | On | Off optimizes in the gas phase. Energies are still scored in water |
| Screening window | 10 kcal/mol | Candidates within this of the lowest screened one are refined. Up to 50 |
| Include zwitterions | On | Adds forms with an O-H or S-H proton moved onto a basic nitrogen |
| Initial conformers | 300 | ETKDG embedding attempts per tautomer |
| Conformers considered | 100 | Kept after MMFF94s, lowest first |
| MMFF energy window | 30 kcal/mol | Conformers further above the lowest are discarded |
| MMFF iterations | 500 | Pre-optimization steps per conformer |
| Maximum conformers | 20 | Optimized per tautomer |
| Charge | From structure | Must agree with the structure's formal charges when given |
| Runtime limit | No limit | Optional credit cap. The run stops when it is reached |

## Outputs

The results table lists the refined tautomers, most populated first, with their population and free energy relative to the major one. The form you drew is marked **Submitted form**. Tautomers screened out before refinement are not listed; when the form you drew is one of them, the result says why. Select a tautomer to see its conformers in 3D.

| Download | Contents |
| - | - |
| `result.json` | The full result: every tautomer, every conformer's energies and coordinates, the settings and the level of theory |
| `tautomers.csv` | One row per tautomer considered, refined or not |
| `tautomers.sdf` | One structure per refined tautomer, most populated first, with bonds and charges as that tautomer draws them |
| `report.txt` | A plain-text summary, warnings last |
| `conformers/rank_N.xyz` | Every conformer of the tautomer ranked N, lowest energy first |

## Reading the Result

When the top two tautomers are within 1 kcal/mol, the result says so: their order is within the method's error, so treat both as present.

**Hydrogens held in place** marks a tautomer whose every conformer relaxed into another tautomer, so it was optimized with its X-H bonds held at their starting lengths. When such a tautomer holds at least 1% of the population, the result warns that **some of these populations need care**. This most often happens to a zwitterion optimized in the gas phase. Leave **Optimize in water** on unless you need a gas-phase comparison.

## Interactive Results Viewer

Two worked examples. In both, the major tautomer is the one measured to dominate in water. 2-Hydroxypyridine, submitted as drawn, comes out 91% 2-pyridone and 9% 2-hydroxypyridine. Adenine stays in its usual form, more than 99.9% of the population, 5.1 kcal/mol below the next tautomer.

Select a molecule, then a tautomer, to see its lowest-energy conformer in 3D.

<iframe src="https://main.d3pyklf85pezb5.amplifyapp.com/tautomer/?data_url=/data/tautomer/demo.json" title="RevTaut interactive results viewer" width="100%" height="650px" style={{ border: "1px solid #e5e7eb", borderRadius: "12px" }} allow="clipboard-write" loading="lazy" />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.