> ## 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.

# RevBDE

> Homolytic bond-dissociation energies for C–H, C–halogen and user-chosen bonds, ranked weakest first

## Why Use This Engine?

RevBDE calculates bond-dissociation energies (BDEs): the energy needed to break a bond homolytically, so that each half keeps one electron and leaves as a radical. You upload one 3D structure, choose which bonds to break, and RevBDE returns one energy per bond, ranked weakest first.

The weakest bond in a molecule is usually the one that decides its fate: it is the hydrogen a radical abstracts first, the site an oxidase attacks, or the bond that breaks under light. Typical uses:

* **Find metabolic and oxidative soft spots.** Rank every C–H bond to see which hydrogen is most easily abstracted.
* **Assess halogen stability.** Compare C–F, C–Cl, C–Br and C–I bond strengths across a series.
* **Probe a specific bond.** Break a bond you choose, such as the link to a methyl group or a larger substituent.
* **Compare analogs.** See how a substitution strengthens or weakens a labile bond.

Each run takes one neutral, closed-shell molecule of up to 400 atoms.

<Frame>
  <img src="https://mintcdn.com/revilicoinc/IRxho5RindUWmw9-/images/revbdeworkflow.png?fit=max&auto=format&n=IRxho5RindUWmw9-&q=85&s=e4f39219c701aace4152936ab4d298d8" alt="RevBDE Workflow" width="3400" height="1880" data-path="images/revbdeworkflow.png" />
</Frame>

## Background

The BDE of a bond R–X is the energy change when it breaks homolytically into two radicals:

$$
\text{R–X} \rightarrow \text{R}^\bullet + \text{X}^\bullet
$$

$$
\text{BDE} = H(\text{R}^\bullet) + H(\text{X}^\bullet) - H(\text{R–X})
$$

In the textbook definition, $H$ is the enthalpy at 298 K. RevBDE follows the same scheme with electronic energies:

1. It optimizes the parent molecule as a closed-shell singlet (charge 0, multiplicity 1).
2. For each bond, it cuts the molecule into the two fragments. Each fragment is a neutral doublet (multiplicity 2), and both start from the parent's optimized geometry.
3. It optimizes each fragment independently and computes its energy.
4. It takes the raw electronic dissociation energy:

$$
\Delta E = E_{\text{A}} + E_{\text{B}} - E_{\text{mol}}
$$

Each structure goes through the same **ladder**: a GFN2-xTB geometry optimization followed by an r2SCAN-3c single-point energy. RevBDE writes this level of theory as `r2scan_3c//gfn2_xtb`. With **GFN0-xTB pre-optimization** turned on, a GFN0-xTB optimization runs first, and the level of theory becomes `r2scan_3c//gfn2_xtb//gfn0_xtb`.

No vibrational frequencies are calculated, so $\Delta E$ has no zero-point or thermal terms. Instead, RevBDE applies a fixed linear correction:

$$
\text{BDE} = 0.94478 \times \Delta E + 0.004972648\ E_\text{h}
$$

The intercept is about 3.12 kcal/mol. The correction lowers BDEs in the range where most real bonds fall, by about 2.4 kcal/mol at 100 kcal/mol and 3.5 kcal/mol at 120 kcal/mol. It stands in for the missing zero-point and thermal terms and for the method's systematic error, all at once. It is the same for every molecule, so two bonds with the same $\Delta E$ always get the same BDE.

<Note>
  The reported BDE is a corrected electronic energy, not an enthalpy. RevBDE reports the uncorrected $\Delta E$ and the size of the correction next to every value, so you can see exactly how much the correction contributes.
</Note>

## Validation

RevBDE was checked end to end against published reference BDEs for fluoroethane and fluorobenzene calculated with the same r2SCAN-3c//GFN2-xTB recipe. Only the input geometry was taken from the reference; every optimization and energy was computed independently.

| Molecule | Bonds | Largest deviation |
| - | - | - |
| Fluoroethane | 7 | 0.152 kcal/mol |
| Fluorobenzene | 6 | 0.023 kcal/mol |

For fluoroethane (kcal/mol):

| Bond | RevBDE | Reference |
| - | - | - |
| C1–C2 | 88.67 | 88.66 |
| C2–H7, C2–H8 | 98.59 | 98.49 |
| C1–H4 | 103.27 | 103.27 |
| C1–H5, C1–H6 | 103.34 | 103.19 |
| C2–F3 | 107.54 | 107.52 |

Both results are well within the intrinsic error of r2SCAN-3c. The remaining differences come from small differences in the xTB version used for the optimizations.

## Running the Engine

Open **Quantum Chemistry** > **RevQuant** > **RevBDE**. The page has two tabs: **Bonds** to set up a run and **Analysis** to view results.

<Steps>
  <Step title="Name the run">
    Enter a **Name** (optional, up to 200 characters). A run without a name is called `RevBDE` followed by the molecule's formula.
  </Step>

  <Step title="Add your molecule">
    Drop a file on **Molecule**, or click to browse. You can also drag a file from the **Data Engineering** panel. Accepted formats are `.xyz`, `.sdf`, `.mol`, `.mol2` and `.pdb`, up to 10 MB. Once the file is read, the atom count and formula appear, and a 3D view of the structure opens. See [Preparing the input file](#preparing-the-input-file).
  </Step>

  <Step title="Choose the bonds to break">
    Under **Bonds to break**, keep **Every C–H bond** and **Every C–X bond (X a halogen)** checked, or clear them and pick bonds yourself. Click atoms on the structure, or on the atom buttons, to break the single bond that holds each one. To pull off a group of atoms together, type their numbers in **Fragments**, for example `2-3, 7, 8`, and click **Add**. See [Choosing bonds](#choosing-bonds).
  </Step>

  <Step title="Check the plan">
    The form lists the bonds it will break, such as `C2-H7`, with the number of geometry optimizations the run needs and an estimated run time. A bond marked with a warning icon is not a clean single-bond dissociation. Atoms that will be pulled off are highlighted on the structure.
  </Step>

  <Step title="Adjust advanced settings (optional)">
    Open **Advanced** to turn on **Compute one bond per symmetry group** or **GFN0-xTB pre-optimization**.
  </Step>

  <Step title="Set a runtime limit (optional)">
    Enter a **Runtime Limit (Credits)** to cap what the run can spend. Leave it blank for no cap.
  </Step>

  <Step title="Run the calculation">
    Click **Run BDE**, then **Confirm**. A notification shows the number of bonds and the estimated time, and the page switches to the **Analysis** tab with your run selected.
  </Step>
</Steps>

### Inputs

| Setting | Default | Options and notes |
| - | - | - |
| Name | Optional | Up to 200 characters |
| Molecule | Required | `.xyz`, `.sdf`, `.mol`, `.mol2` or `.pdb`; one neutral, closed-shell molecule with 3D coordinates; up to 10 MB and 400 atoms |
| Every C–H bond | On | Breaks every bond between a carbon and a hydrogen closer than 1.2 Å |
| Every C–X bond (X a halogen) | On | Breaks every bond between a carbon and a halogen within its distance cutoff: F 2.0 Å, Cl 2.2 Å, Br 2.5 Å, I 2.8 Å, At 3.0 Å |
| Atoms | None | Atoms to pull off one at a time, by their 1-based position in your file. Up to 200 |
| Fragments | None | Groups of atoms that leave together, written as `1-3, 7`. Up to 200. A fragment cannot contain every atom |
| Mode | Rapid | `r2SCAN-3c // GFN2-xTB`. This is the only mode available |
| Compute one bond per symmetry group | Off | Computes one bond for each set of symmetry-equivalent bonds and copies its value to the others. See [Symmetry deduplication](#symmetry-deduplication) |
| GFN0-xTB pre-optimization | Off | Adds a quick GFN0-xTB optimization before the GFN2-xTB one to clean up a rough geometry. Adds almost no time |
| Runtime Limit (Credits) | Blank (no cap) | If set, the run stops when it reaches this limit |

You must select at least one of **Every C–H bond**, **Every C–X bond**, an atom or a fragment. The selections are combined, and a bond chosen more than once is calculated once.

### Preparing the input file

RevBDE reads bonds from the 3D coordinates, so the geometry decides which bonds exist and which ones **Every C–H bond** finds. SMILES is not accepted.

* **One molecule per file.** A file with several structures is refused. Submit one run per molecule.
* **3D coordinates.** An SDF or MOL file flagged as a 2D drawing is refused.
* **Neutral and closed-shell.** There is no charge or multiplicity to set. A file that declares a formal charge is refused, and so is a molecule with an odd number of electrons. If you see that error, check for a missing hydrogen.
* **Elements from H to Rn.**
* **Include explicit hydrogens.** A C–H bond is only found if the hydrogen is in the file.

<Warning>
  Atom numbers are 1-based positions in your file's own order, everywhere in RevBDE: in the atom buttons, the **Fragments** field, the bond labels and the downloads. RevBDE never renumbers atoms. If you edit or re-export the file, check the numbering before you reuse a fragment definition.
</Warning>

### Choosing bonds

**Every C–H bond** and **Every C–X bond** use fixed distance cutoffs (1.2 Å for C–H), so a badly stretched bond in a rough geometry can be missed. The form shows how many bonds each option finds.

To break a bond yourself, click the atom that leaves. For example, clicking a hydrogen breaks the C–H bond that holds it. To break a bond between two larger groups, such as the bond to a methyl group, enter every atom of the smaller side as a fragment (the carbon and its three hydrogens).

RevBDE checks every split before it runs. A clean split severs exactly one bond and leaves an odd number of electrons on each side. If a fragment is attached by more than one bond, such as a piece cut out of a ring, or by none, the form warns you. The split still runs, but its result is labelled **questionable**. Splits like these can also fail to produce an energy at all.

### Symmetry deduplication

Molecules often contain several bonds that are chemically identical, such as the three C–H bonds of a methyl group or the two ortho C–H bonds of a monosubstituted benzene. **Compute one bond per symmetry group** calculates one bond from each group and copies its value to the rest. On molecules with a methyl group or a symmetric ring, this typically saves a third to a half of the work. When your selection includes equivalent bonds, the form tells you how many bonds deduplication would calculate.

Deduplication is off by default. Equivalent bonds can still differ slightly in a calculation, because the optimized geometry is frozen in one conformer. In the fluoroethane validation, for example, the three methyl C–H bonds differed by up to 0.08 kcal/mol. With deduplication on, that spread is not measured, and only one number comes back. Copied values are always marked in the results.

### Run time and credits

A run with $n$ calculated bonds performs $1 + 2n$ optimization ladders: one for the molecule and one for each half of every bond. Bonds are calculated one after another. The r2SCAN-3c single point accounts for more than 99% of each ladder's time, so the run time depends mainly on the size of the molecule and the number of bonds. Measured times for one ladder:

| Molecule size | Approximate time per ladder |
| - | - |
| Up to about 14 atoms | 3 to 8 seconds |
| 20 atoms | About 24 seconds |
| 32 atoms | About 57 seconds |

Every fragment is optimized from scratch, so the whole molecule is recalculated for every bond. Expect a run on a drug-sized molecule with many C–H bonds to take much longer than a small one. Each run also spends about a minute starting up in the queue.

The form shows an estimate before you submit. Above 32 atoms, the estimate is extrapolated and likely to be low, and the form says so. If the estimate is longer than a run is allowed to take, the form warns you that only some bonds will finish and the run will come back **partial**, and suggests turning on deduplication or asking for fewer bonds. A molecule too large to finish even one bond is refused.

RevBDE bills 1 credit per minute of runtime while the calculation runs. You need enough credits to start a run. If you set a **Runtime Limit (Credits)**, the run stops when it reaches that limit, with the status `terminated_budget_exceeded`.

## Viewing Results

Open the **Analysis** tab and click a run in the list. Runs that are in progress show `queued`, `starting` or `running` with a percentage, and refresh every 10 seconds. The first run in a while can wait in the queue for about a minute while the compute environment starts. Click **Change Pipeline** to go back to the list.

### Run statuses

| Status | Meaning |
| - | - |
| `not_started` (shown as `queued`) | Submitted and waiting for compute |
| `started` (shown as `starting`, then `running` with a percentage) | The molecule is being optimized, then the bonds are being broken one at a time |
| `processed` | Finished. Check the result status below |
| `error` | The run failed or was cancelled |
| `terminated_insufficient_credits` | Stopped because your credit balance ran out |
| `terminated_budget_exceeded` | Stopped because the run reached its **Runtime Limit (Credits)** |

A `processed` run also has a **result status**, shown as a badge in the list and in the results header:

| Result status | Meaning |
| - | - |
| **Completed** | Every bond was calculated, and every split was a clean single-bond dissociation |
| **Questionable** | Every bond was calculated, but at least one split was not a single-bond dissociation |
| **Partial** | Some bonds produced energies and some did not. The ones that finished are valid, because each bond is an independent calculation |
| **Failed** | No bond produced an energy |

A questionable, partial or failed result shows a banner above the numbers that explains the problem and what to change. For a questionable split, the fix is usually in the requested fragments or the atom numbering, not in the settings.

### Results for a run

The results header shows the result status, the molecule's formula, the level of theory and the number of bonds, including how many were copied by symmetry.

**Weakest bond.** The label and BDE of the weakest bond, in kcal/mol and kJ/mol.

**Bonds, weakest first.** A bar chart of every bond's BDE in kcal/mol, in ranked order. A thin tick on each bar marks the uncorrected $\Delta E$, so the gap between the tick and the end of the bar is the correction. Bonds copied from a symmetry-equivalent bond are drawn hatched. Click a bar to select that bond.

**Every bond.** A table with one row per bond. Bonds are labelled by their element and file position, such as `C2-H7`. A split that is not a single bond is labelled by its fragment's atoms, such as `(1,4,5)`, and marked with a warning icon.

| Column | Meaning | Units |
| - | - | - |
| Bond | The bond that was broken | |
| BDE | The corrected bond-dissociation energy. Copied values are in italics | kcal/mol |
| Uncorrected | The raw $\Delta E$ before the correction | kcal/mol |
| Shift | How much the correction moved the value | kcal/mol |
| Source | `computed`, `= C2-H7` for a value copied from that bond, or `no energy` | |

Select a row to see any issue or failure reported for that bond.

**Optimized structures.** A 3D view of the selected bond. **Molecule** shows the optimized parent with the two atoms of the broken bond highlighted. The **Fragment** buttons show each half as it was optimized. Check these views when a BDE looks wrong: a radical that rearranged during its optimization can explain an unexpected value. A copied bond shows the fragments of the bond it was copied from.

### Downloads

Click **Download** in the results header to open every available file:

* **`bdes.csv`:** one row per bond, weakest first. Bonds with no energy come last. Columns:

  | Column | Meaning |
  | - | - |
  | `bond` | Bond label, such as `C2-H7` |
  | `fragment_atoms` | The atoms that leave, space-separated |
  | `bde_kcal_per_mol` | Corrected BDE, in kcal/mol |
  | `bde_hartree` | Corrected BDE, in Eh |
  | `uncorrected_kcal_per_mol` | Raw $\Delta E$, in kcal/mol |
  | `correction_shift_kcal_per_mol` | Change made by the correction, in kcal/mol |
  | `bonds_cut` | The bonds the split severed, such as `2-7` |
  | `computed` | `True` if calculated, `False` if copied from a symmetry-equivalent bond |
  | `inferred_from` | For a copied bond, the atoms of the bond it was copied from |
  | `status` | `ok`, `questionable`, or `failed` for a bond with no energy |

* **`result.json`:** the full result, including the level of theory, the correction constants, the parent's energy and, for each bond, the fragment energies in Eh, the diagnosis of the split and any failure message.

* **`report.txt`:** a plain-text summary with the correction, a ranked table of BDEs, the weakest bond and any warnings.

* **`fragments.xyz`:** the optimized parent, followed by both halves of every calculated bond. Each frame's comment line names the bond, the fragment's atoms, its energy in Eh and its multiplicity. A run in which every bond failed has no geometry file.

* **`run.log`:** the raw output of the calculation programs. Check it when a bond fails.

<Warning>
  A bond labelled with its atoms, such as `(1,4,5)`, is written to `bdes.csv` without quotes, so that row has more comma-separated fields than the header. Most CSV readers reject the file. If a run contains such a split, read the values from `result.json` instead.
</Warning>

## Limits

* One molecule per run, up to 400 atoms and 10 MB. Larger molecules may be refused because not even one bond would finish in time.
* Up to 200 atoms and 200 fragments per run.
* Neutral, closed-shell molecules only, with elements from H to Rn. No charged species or radicals.
* 3D structures only. SMILES and 2D drawings are not accepted.
* Homolytic cleavage only. Heterolytic dissociation (into ions) is not available.
* Gas phase only; solvation is not included.
* One level of theory, r2SCAN-3c//GFN2-xTB. No frequencies are calculated, so BDEs are corrected electronic energies, not enthalpies.
* **Every C–H bond** and **Every C–X bond** find bonds by fixed distance cutoffs, and fragments start from the parent's single optimized conformer. BDEs can shift slightly with conformation.


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