openbabel / openbabel

Open Babel is a chemical toolbox designed to speak the many languages of chemical data.
http://openbabel.org/
GNU General Public License v2.0
1.03k stars 404 forks source link

Various inconsistencies in conformer search syntax and results across versions and documentation #1330

Open openbabel-bot opened 9 years ago

openbabel-bot commented 9 years ago

I have 3 installations of Open Babel I am testing with:

(1) Installed on Mac OS X 10.10.1, using v2.3.1 installer from downloads page (2) Installed on Mac OS X 10.10.1, building from git repository, v2.3.90 (3) Installed on Ubuntu 14.04, building from git repository, v2.3.90

First, there is some ambiguity in the documentation for confab for number of conformers:

In options list: --conf used


--conf <#confs>
```~

In examples: **-nconfs** used

```~~
obabel bostrom.sdf -O confs.sdf --confab -nconfs 100000
```~~

I am unable to verify which one is correct, because I am unable to get confab to work properly, but this should be cleared up in the documentation eventually.

Confab
-----------------
Based on the [documentation](http://open-babel.readthedocs.org/en/latest/3DStructureGen/multipleconformers.html) example:

```~~
obabel bostrom.sdf -O confs.sdf --confab -nconfs 100000
```~~

My input:

```~~
$ obabel r.xyz -O a.xyz --confab
```~~

Outputs:
(1) Mac, 2.3.1 - confab not recognized, so it just converts xyz to xyz

```~~
1 molecule converted
```~~

(2) Mac, 2.3.90, fails to build forcefield (this is invariant to number of rotatable bonds)

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

**Molecule 1
..title = 0 1
..number of rotatable bonds = 0
!!Cannot set up forcefield for this molecule
!!Skipping

0 molecules converted
```~~

(3) Ubuntu, 2.3.90,  confab not recognized, so it just converts xyz to xyz, same as (1)

```~~
1 molecule converted
```~~

Genetic Algorithm
-----------------
Documentation input:

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

My input:

```~~
obabel r.xyz -O a.xyz --conformer --nconf 30 --score rmsd --writeconformers
```~~

(1) Mac, 2.3.1, Works as expected

```~~
Initial conformer count: 3
0 
2 
1 
Generation #1  0
Generation #2  0.000189885
Generation #3  0.000189885
Generation #4  0.000189885
Generation #5  0.000189885
Generation #6  0.000189885
Generation #7  0.000189885
Generation #8  0.000189885
Generation #9  0.000189885
Generation #10  0.000189885
Generation #11  0.000189885
Generation #12  0.000189885
Generation #13  0.000189885
Generation #14  0.000189885
Generation #15  0.000189885
Generation #16  0.000189885
Generation #17  0.000189885
Generation #18  0.000189885
Generation #19  0.000189885
Generation #20  0.000189885
Generation #21  0.000189885
Generation #22  0.000189885
Generation #23  0.000189885
Generation #24  0.000189885
Generation #25  0.000189885
Generation #26  0.000189885
Generation #27  0.000189885
0 
2 
1 
GetConformers:
0 
2 
1 
1 molecule converted
```~~

(2) Mac 2.3.90, conformer not recognized, so it just converts xyz to xyz

```~~
1 molecule converted
```~~

(3) Ubuntu, 2.3.90, conformer not recognized, so it just converts xyz to xyz, same as (2)

```~~
1 molecule converted
```~~

As a side note, if anyone has a working build configuration or input options to get the confab algorithm working, please let me know.

Reported by: benalbrecht

Original Ticket: [openbabel/bugs/950](https://sourceforge.net/p/openbabel/bugs/950)
openbabel-bot commented 9 years ago

Update: I got --confab to work after all. It appears that the input file was to blame for it not working (0 rotatable bonds)

--conf is the correct way to specify number of conformers, not -nconfs

So (2) and (3) properly work with obabel --confab.

Original comment by: benalbrecht