Generate multiple conformers

In contrast to conformer searching, the goal of conformer generation is not simply to find a low energy conformation but to generate several different conformations. Such conformations may be required by another piece of software such as some protein-ligand docking and pharmacophore programs. They may also be useful if considering writing some sort of shape comparison method.

Open Babel has two distinct conformer generating codes:

  1. Confab: A systematic conformer generator that generates all diverse low-energy conformers.
  2. Genetic algorithm: This is a stochastic conformer generator that generates diverse conformers either on an energy or RMSD basis

Genetic algorithm

A genetic algorithm is a general computational method to find a globally optimum solution to some multiparameter problem. It involves a population of conformers which after a series of generations, iteratively arrive at an optimal solution in terms of either RMSD diversity or energy.

Information about using this method is available at the command-line using: obabel -L conformer. Although labelled as “Conformer Searching”, if you choose the genetic algorithm method (which is the default) then you can save the conformers in the final generation using --writeconformers. For example, the following line creates 30 conformers optimized for RMSD diversity:

obabel startingConformer.mol -O ga_conformers.sdf --conformer --nconf 30
       --score rmsd --writeconformers

In this case --score rmsd was not strictly necessary as RMSD diversity was the default in any case.


Confab systematically generates all diverse low-energy conformers for molecules. To run Confab use the --confab operation, and to assess the results by calculating RMSDs to reference structures, use the confabreport output format.

confab operator

  • obabel <inputfile> -O <outputfile> --confab [confab options] for typical usage
  • obabel -L confab for help text

The inputfile should contain one or more 3D structures (note that 2D structures will generate erroneous results). Generated conformers are written to the outputfile. All of the conformers for a particular molecule will have the same title as the original molecule.

--rcutoff <rmsd>
 RMSD cutoff (default 0.5 Angstrom)
--ecutoff <energy>
 Energy cutoff (default 50.0 kcal/mol)
--conf <#confs>
 Max number of conformers to test (default is 1 million)
--original Include the input conformation as the first conformer
--verbose Verbose - display information on torsions found

confabreport format

  • obabel <inputfile> [-O <outputfile>] -o confabreport -xf <reference_file> [-xr <rmsd>] for typical usage
  • obabel -L confabreport for help text

Once a file containing conformers has been generated by Confab, the result can be compared to the original input structures or a set of reference structures using this output format. Conformers are matched with reference structures using the molecule title. For every conformer, there should be a reference structure (but not necessarily vice versa).

-f <filename> File containing reference structures
-r <rmsd>

RMSD cutoff (default 0.5 Angstrom)

The number of structures with conformers within this RMSD cutoff of the reference will be reported.


The example file, bostrom.sdf, contains 36 molecules which have from 1 to 11 rotatable bonds (see Bostrom, Greenwood, Gottfries, J Mol Graph Model, 2003, 21, 449).

We can generate and test up to 100K conformers using Confab as follows:

> obabel bostrom.sdf -O confs.sdf --confab --conf 100000

**Starting Confab 1.1.0
**To support, cite Journal of Cheminformatics, 2011, 3, 8.
..Input format = sdf
..Output format = sdf
..RMSD cutoff = 0.5
..Energy cutoff = 50
..Conformer cutoff = 1000000
..Write input conformation? False
..Verbose? False

**Molecule 1
..title = 1a28_STR_1_A_1__C__
..number of rotatable bonds = 1
..tot conformations = 12
..tot confs tested = 12
..below energy threshold = 10
..generated 3 conformers

... etc, etc

0 molecules converted

To check how many of the generated conformers are within 1.0 A RMSD of the original structures, we can use the confabreport format as follows:

> obabel confs.sdf -oconfabreport -xf bostrom.sdf -xr 1.0

**Generating Confab Report
..Reference file = bostrom.sdf
..Conformer file = confs.sdf

..Molecule 1
..title = 1a28_STR_1_A_1__C__
..number of confs = 3
..minimum rmsd = 0.0644801
..confs less than cutoffs: 0.2 0.5 1 1.5 2 3 4 100
..1 1 3 3 3 3 3 3
..cutoff (1) passed =  Yes

... etc, etc

..number of molecules = 36
..less than cutoff(1) = 35
52271 molecules converted