QC Conformer Ranking & Descriptors re-ranks a conformer ensemble with density functional theory and reports which conformers are actually populated. Force-field and GFN2-xTB conformer energies carry errors of a few kcal/mol, enough to reorder an ensemble; a composite or hybrid DFT tier brings the ordering to the 1 kcal/mol class. Conformers are ranked on free energy, optionally in implicit solvent, rather than on the gas-phase electronic energy, which over-stabilizes folded and intramolecularly hydrogen-bonded conformers. Single points run with GPU4PySCF on GPU resources or PySCF on CPU.
How a run works
The stages follow the CENSO scheme (Grimme et al., 2021): each one drops conformers that cannot matter, so the expensive steps run only on the survivors.
- Group. Each SDF record is one conformer, and records are grouped by compound, read from their 3D geometry. Both enantiomers of a chiral compound form one molecule: a conformer that is the mirror image of the molecule's first one is reflected, so a Conformer Ensemble Generator file from a SMILES without stereo is still one ensemble. Diastereomers and E/Z isomers are separate molecules. Each record keeps its own
molecule_indexandstructure_index(as xTB / CREST writes them) assource_molecule_indexandsource_structure_index, which join the vibrations table. - Deduplicate. Two conformers are duplicates when their symmetry-aware RMSD over heavy atoms and polar hydrogens is within the threshold and, when both carry upstream energies, their energy gap is too. Heavy atoms alone cannot tell OH and NH rotamers apart. Mirror-image conformers are kept apart, so a degenerate pair of gauche conformers counts twice in the populations, as it should.
- Input window. When every conformer of a molecule carries an upstream energy (
free_energy_hartree,energy_hartree,energy_kcal_mol, or, within one upstream molecule,rel_energy_kcal_mol), conformers far above the lowest are dropped before any DFT. - Screen (accurate preset). r²SCAN-3c single points, plus the thermal correction; conformers above the screening window are dropped.
- Refine. The final single points on the survivors. With a solvent, each survivor also gets a gas-phase single point so its solvation energy is reported.
- Populations. Boltzmann weights of the free energy at each temperature, with the ensemble free energy and the conformational (Gibbs–Shannon) entropy for each molecule. Conformers within the final window of the lowest one form the chainable output.
What is ranked
For each conformer, G = E + G_thermal:
- E is the DFT energy at the refine level, in the implicit solvent when one is chosen. SMD includes cavity and dispersion terms, so solvated minus gas-phase energies estimate solvation free energies; C-PCM and IEF-PCM are electrostatics only.
- G_thermal is the quasi-RRHO free-energy correction from a
vibrations.csvyou supply, the same treatment as QC Thermochemistry. Without that table the ranking uses E alone (plus solvation).
Every row says which terms went into its ranking (E, E+solv, E+G_thermal, or E+solv+G_thermal), so a table ranked on electronic energy is never mistaken for one ranked on free energy.
Choosing a preset
- Accurate (default): r²SCAN-3c screening, then ωB97M-V/def2-TZVP refinement. ωB97M-V is one of the most accurate hybrid functionals for conformational energies.
- Fast: r²SCAN-3c only. The composite method's dispersion and basis-set corrections keep its error well below a small-basis hybrid's, at a fraction of the cost.
- Custom: one stage at a method and basis you choose from the PySCF Electronic Structure list.
Getting frequencies for the thermal correction
Run xTB / CREST in its frequencies mode on the conformers and pass its structures.sdf as the conformers and its vibrations.csv as the vibrations. The GFN2-xTB Hessians are cheap, and the free-energy correction they give is much less sensitive to the method than the electronic energy is. In a workflow, connect both outputs of that step straight to this tool.
Reading the results
ranking.csv: one row per conformer (duplicates excluded), ranked ones first, with the energies,e_rel_kcal_mol,dg_solv_kcal_mol,g_thermal_kcal_mol,g_rel_kcal_mol,populationat the first temperature,ranking_basis, HOMO/LUMO energies and gap, dipole moment, and astatus(ok,failed,skipped, or the window that pruned it).populations.csv: populations at every temperature.ensemble.csv: one row per molecule and temperature, with the counts at each stage, the lowest conformer, the ensemble free energy, and the conformational entropy.conformers.sdf: the conformers in the final window, tagged with their relative free energy and population, ready for the next step.duplicates.csv: each dropped duplicate and the conformer it matched.
Chaining
The ranked conformers keep their molecule and structure indices, so they still join the vibrations table they came from. Feed them to Vibrational Spectrum Library with upstream populations and the input geometry to weight the ensemble IR spectrum by DFT populations instead of xTB ones, or to QC Thermochemistry for the full thermodynamic functions of the populated conformers.
Validation
CPU runs with r²SCAN-3c optimized geometries and the accurate preset, without the thermal correction:
| System | Phase | ΔE (kcal/mol) | Reference |
|---|---|---|---|
| n-Butane, gauche − anti | gas | 0.56 | about 0.6 (high-level ab initio) |
| 1,2-Dichloroethane, gauche − trans | gas | 1.03 | about 1.1 (experimental gas-phase ΔH) |
| 1,2-Dichloroethane, gauche − trans | SMD water | −0.38 | gauche favored in polar solvents |
The reversal of 1,2-dichloroethane from gas to water is the solution-phase effect the tool exists to capture. Its per-conformer SMD solvation energies are more negative than the experimental hydration free energy, so treat dg_solv as a model value rather than a measurement.
Limits and not covered
Single points run on the input geometries; DFT geometry optimization of the lowest conformers is not part of this version, and neither are per-atom charges (use PySCF Electronic Structure). The methods are single-reference DFT, so multireference and biradical systems are out of scope, and one multiplicity applies to every conformer. Conformer ordering is at the 1 kcal/mol level of the chosen functional, not sub-kcal. Generating the ensemble is a separate step.
Related tools
Generate ensembles with xTB / CREST or Conformer Ensemble Generator, compute single structures with PySCF Electronic Structure, and use the populations in Vibrational Spectrum Library or QC Thermochemistry.