cubeman is a small command-line tool and Python package for analyzing two molecular-orbital cube files.
It can:
- read two Gaussian cube files,
- check that their grids match,
- normalize MO values using the voxel volume,
- write
psi1^2,psi2^2, and delta-density cube files, - compute orbital and density overlap measures,
- compute positive/negative delta-density centroids,
- optionally write overlap-field cube files and z-profile data.
From the project directory:
pip3 install -e .pip3 install .cubeman HOMO.cub LUMO.cubCommon options:
cubeman HOMO.cub LUMO.cub --extra-header-lines 1
cubeman HOMO.cub LUMO.cub --out-prefix homo_lumo_
cubeman HOMO.cub LUMO.cub --delta-sign 2-1
cubeman HOMO.cub LUMO.cub --write-overlap-cubes --write-z-profiles --write-summaryBy default, the command writes:
psi1_density.cubcontainingrho1 = psi1^2psi2_density.cubcontainingrho2 = psi2^2delta_density.cubcontaining eitherrho1 - rho2orrho2 - rho1
With --write-overlap-cubes, it also writes:
abs_mo_overlap.cubcontaining|psi1| |psi2|density_overlap_field.cubcontainingrho1 rho2
from cubeman.cube_io import read_cube, write_cube, check_same_grid, voxel_volume
from cubeman.analysis import analyze_pair
cube1 = read_cube("HOMO.cub", extra_header_lines=1)
cube2 = read_cube("LUMO.cub", extra_header_lines=1)
check_same_grid(cube1, cube2)
dv = voxel_volume(cube1.meta)
result = analyze_pair(cube1.data, cube2.data, dv)
write_cube("delta_density.cub", cube1.header, result.delta_rho)
print(result.overlaps["S_abs_psi"])