Skip to content

Improved implementation of IGMplot using QM molecular densities.

Notifications You must be signed in to change notification settings

bertadenes/IGMpython

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

IGMpython

D. Berta, D. Ferenc, T. Földes, A. Hamza

Thanks to Imre Bakó and Imre Pápai for theoretical support.

This program is an improved implementation of the work of Hénon et al.. IGMpython uses molecular density from ab initio calculations, given as a cube file.

Requirements

The program utilizes python 3 interpreter and depends on numpy. Gaussian cube files are taken as input. Available and future features are detailed below.

Installation

Download this repository and note where you decide to store it. We suggest to create a symbolic link to the script:

ln -s /wherever/this/program/is/IGM.py $HOME/bin/IGM.py

Make sure to use the absolute path, otherwise the link might be broken.

After reloading the environment, the program should be ready to use.

. $HOME/.bashrc && . $HOME/.bash_profile

Usage

IGMpython takes one positional and several optional arguments:

IGM.py full.cube -f [fragment.cubes ...]

Using the QM density all fragments, even if atomic fragments are considered, needs to be calculated at the same level of theory to get meaningful results. The fragment densities needed to be represented on the same grid. This can be easily managed with cubegen utility.

We plan to provide a tool to generate the necessary inputs for case where fragmentation is not straightforward.

By default, a second cube consisting of the second eigenvalues of the Hessian of the density is created for colouring, as it was proposed in NCIplot. Alternatively, we provide another cube of the electron density difference by request:

IGM.py full.cube -f [fragment.cubes ...] -dd

The cubes and VMD state is generated accordingly.

The implementation of atomic densities as default fragments (similarly to IGMplot) is also available, although IGMpython does not exploit the analytical differentiability of the simple exponential functions. The atomic densities were take from IGMplot).

In order to use this approach, IGMpython takes an xyz file as input, and the -p flag must be specified.

IGM.py molecule.xyz -p

Output

Two cubes are generated as output: igm.cub is the defined gradient, mideig.cub is the second eigenvalue of the density Hessian at each point on the same grid for colouring purposes. Alternatively, diff.cub is the difference between the total electron density and the sub of the fragment densities.

The visualization can be done by VMD, plotting igm.cub as isosurface and colouring by the volume of mideig.cub/diff.cub.

A VMD visualization state file is automatically generated to aid the process. Please note that VMD is looking for the cubes in the working directory.

Example

The example inputs and outputs are provided for the case of benzene dimer. Further examples will be available.

Further remarks

Feel free to address problems to Denes Berta.

About

Improved implementation of IGMplot using QM molecular densities.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages