-
Notifications
You must be signed in to change notification settings - Fork 8
Home
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
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.