Skip to content
Geun Ho Gu edited this page Dec 2, 2016 · 19 revisions

Welcome to the VlachosGroupAdditivity wiki!

This package contains capability to load a group additivity scheme of your interest, and estimate molecules' thermodynamic properties. This package uses SMILES string for the canonical description of molecules, and needs RDKIT installed to use.

A simple Benson's group additivity example is shown here:

In:
from VGA.GroupAdd.Library import GroupLibrary
import VGA.ThermoChem
lib = GroupLibrary.Load('benson')
descriptors = lib.GetDescriptors('C1CO1')
print descriptors
thermochem = lib.Estimate(descriptors,'thermochem')
print thermochem.eval_ND_H(298.15)

Out:
defaultdict(<type 'int'>, {'O(C)2': 1, 'C(C)(H)2(O)': 2, 'C1CO1': 1})
-19.9132141547

Using Group Additivity

The package usage for user is very easy. The work flow follows:

  • Loading the scheme
  • Get groups for a SMILES string provided
  • estimate thermodynamic properties

Loading the package requires you to not only load up library, but also loading up VGA.ThermoChem:

from VGA.GroupAdd.Library import GroupLibrary
import VGA.ThermoChem

importing VGA.ThermoChem append a ThermoChem module to group additivity library module that is used to estimate thermodynamic properties. The code won't work if VGA.ThermoChem is not loaded. (see below)

Next, we load up the scheme:

lib = GroupLibrary.Load('benson')

Group additivity schemes are stored in VlachosGroupAdditivity/data folder. When you load 'benson' like above, it loads up all the scheme info that is specified in the VlachosGroupAdditivity/data/benson folder. Currently we only have classic benson gas group additivity and Salciccioli et al. surface group additivity scheme. More schemes will be added. Also see below if you are interested in creating your own scheme.

Then, we get descriptors and estimate thermo. properties.

descriptors = lib.GetDescriptors('C1CO1')
thermochem = lib.Estimate(descriptors,'thermochem')
print thermochem.eval_ND_H(298.15)

GetDescriptors command breaks down a given molecular graph into groups and corrections. Then the library object also has a functionality to estimate thermochemical properties. When VGA.ThermoChem is imported, the ThemoChem object is svaed within the group additivity library module. By specifying 'thermochem' in the second input, you are asking the software to use ThermoChem object for property estimation. Then, the created objective can be used to estimate thermochemical properties at given temperature. thermochem module also has eval_ND_Cp and eval_ND_S definition to estimate heat capacity and entropy.

Clone this wiki locally