Discussion:
[Rdkit-discuss] difference in VdW radii between Open Babel 2.3.2 and rdkit 201503
Francois BERENGER
2017-06-19 05:49:30 UTC
Permalink
Hello,

Sometimes, as a computer scientist, I am quite worried by chemical software libraries:

$ cat data/ethanol.pqr
COMPND ethanol
AUTHOR GENERATED BY OPEN BABEL 2.3.2
HETATM 1 C LIG 1 -0.017 -0.601 0.000 0.04138432 1.700 C
HETATM 2 C LIG 1 1.247 0.248 -0.000 -0.04182526 1.700 C
HETATM 3 H LIG 1 1.285 0.894 -0.888 0.02516417 1.100 H
HETATM 4 H LIG 1 1.270 0.916 0.872 0.02516417 1.100 H
HETATM 5 H LIG 1 2.150 -0.369 0.015 0.02516417 1.100 H
HETATM 6 H LIG 1 -0.096 -1.231 -0.903 0.05542120 1.100 H
HETATM 7 H LIG 1 -0.096 -1.231 0.903 0.05542120 1.100 H
HETATM 8 O LIG 1 -1.086 0.337 0.000 -0.39527743 1.520 O
HETATM 9 H LIG 1 -1.944 -0.125 -0.003 0.20938346 1.100 H
CONECT 1 8 7 2 6
CONECT 1
CONECT 2 1 5 4 3
CONECT 2
CONECT 3 2
CONECT 4 2
CONECT 5 2
CONECT 6 1
CONECT 7 1
CONECT 8 1 9
CONECT 9 8
MASTER 0 0 0 0 0 0 0 0 9 0 9 0
END

# cat data/ethanol.plr
COMPND ethanol
-0.016600 -0.601400 0.000000 -0.203500 1.950000
1.247400 0.248500 -0.000100 0.144100 1.950000
1.285200 0.894300 -0.887700 0.123000 1.200000
1.270100 0.915700 0.872200 0.123000 1.200000
2.149700 -0.369300 0.015500 0.123000 1.200000
-0.095800 -1.230700 -0.903200 0.123000 1.200000
-0.095700 -1.230800 0.903400 0.123000 1.200000
-1.085800 0.337100 0.000300 -0.289300 1.700000
-1.944300 -0.124700 -0.003200 -0.267700 1.200000
END

The .plr file was generated with rdkit.
The .pqr file with obabel.

Maybe I'm out of luck, or I don't understand something, but the two files don't agree
on any single VdW radius (5th column in the .plr file; 10th column in the .pqr
file for HETATM lines).

Here is the code I used for rdkit:
---
periodic_table = Chem.GetPeriodicTable()

def get_radius(atom):
return periodic_table.GetRvdw(atom.GetAtomicNum())

[...]
atoms = mol.GetAtoms()
[...]
radius = get_radius(atom)
[...]
---

Am I doing something wrong?

Isn't there a more direct way to access the VdW radius of an atom
when iterating over the atoms of a molecule?

Who should I trust? obabel? rdkit? the nearest real-world chemist?

Thanks,
F.
Greg Landrum
2017-06-19 13:14:41 UTC
Permalink
Francois,

There is not a direct unambiguous physical observable that one can point to
that defines a van der Waals radius; they are looked up in tables.
The RDKit and OpenBabel are clearly using different tables.

As to which to use: there isn't really an answer to the question; it comes
down to what you're trying to do and which table you choose to use. If you
just want a vdW radius (and don't care about a vdW distance for a
particular pair of atoms) you can just use a single tabulated value like
what you give below. Given that I no longer remember where the RDKit value
in atomic_data.cpp comes from and the OpenBabel one likely has a reference
attached to it: I'd take the OpenBabel one.

If you care more about what a particular vdW contact length should be,
you're probably better off using a more sophisticated approach. Paolo has
some information on that in this thread:
https://sourceforge.net/p/rdkit/mailman/message/35428577/

-greg



On Mon, Jun 19, 2017 at 7:49 AM, Francois BERENGER <
Post by Francois BERENGER
Hello,
$ cat data/ethanol.pqr
COMPND ethanol
AUTHOR GENERATED BY OPEN BABEL 2.3.2
HETATM 1 C LIG 1 -0.017 -0.601 0.000 0.04138432 1.700 C
HETATM 2 C LIG 1 1.247 0.248 -0.000 -0.04182526 1.700 C
HETATM 3 H LIG 1 1.285 0.894 -0.888 0.02516417 1.100 H
HETATM 4 H LIG 1 1.270 0.916 0.872 0.02516417 1.100 H
HETATM 5 H LIG 1 2.150 -0.369 0.015 0.02516417 1.100 H
HETATM 6 H LIG 1 -0.096 -1.231 -0.903 0.05542120 1.100 H
HETATM 7 H LIG 1 -0.096 -1.231 0.903 0.05542120 1.100 H
HETATM 8 O LIG 1 -1.086 0.337 0.000 -0.39527743 1.520 O
HETATM 9 H LIG 1 -1.944 -0.125 -0.003 0.20938346 1.100 H
CONECT 1 8 7 2 6
CONECT 1
CONECT 2 1 5 4 3
CONECT 2
CONECT 3 2
CONECT 4 2
CONECT 5 2
CONECT 6 1
CONECT 7 1
CONECT 8 1 9
CONECT 9 8
MASTER 0 0 0 0 0 0 0 0 9 0 9 0
END
# cat data/ethanol.plr
COMPND ethanol
-0.016600 -0.601400 0.000000 -0.203500 1.950000
1.247400 0.248500 -0.000100 0.144100 1.950000
1.285200 0.894300 -0.887700 0.123000 1.200000
1.270100 0.915700 0.872200 0.123000 1.200000
2.149700 -0.369300 0.015500 0.123000 1.200000
-0.095800 -1.230700 -0.903200 0.123000 1.200000
-0.095700 -1.230800 0.903400 0.123000 1.200000
-1.085800 0.337100 0.000300 -0.289300 1.700000
-1.944300 -0.124700 -0.003200 -0.267700 1.200000
END
The .plr file was generated with rdkit.
The .pqr file with obabel.
Maybe I'm out of luck, or I don't understand something, but the two files don't agree
on any single VdW radius (5th column in the .plr file; 10th column in the .pqr
file for HETATM lines).
---
periodic_table = Chem.GetPeriodicTable()
return periodic_table.GetRvdw(atom.GetAtomicNum())
[...]
atoms = mol.GetAtoms()
[...]
radius = get_radius(atom)
[...]
---
Am I doing something wrong?
Isn't there a more direct way to access the VdW radius of an atom
when iterating over the atoms of a molecule?
Who should I trust? obabel? rdkit? the nearest real-world chemist?
Thanks,
F.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
Loading...