Cross-environment vibrational normal-mode correlation and classification (VMARD/.nma and ORCA .hess)
Project description
CrossVib
Cross-environment vibrational normal-mode correlation and classification.
CrossVib classifies vibrational modes from vibAnalysis (VMARD) .nma output — or
directly from ORCA .hess files — and correlates modes between two calculations of
the same chemical system in different environments (solvent, surface, method,
oxidation state).
The comparison projects both calculations onto a common internal-coordinate basis (the intersection of canonicalised internals after atom mapping), builds a phase-aware signed overlap matrix, and reduces it with a symmetrised Shannon mixing index. The primary reported quantity is the identity-retention metric
P_ret = 1 - H_bar (in [0, 1]; higher = better preserved across environments)
Because the basis is an intersection, the analysis is independent of atom count — the signature capability for free-molecule vs. interacting-system comparisons.
Installation
pip install crossvib
Runtime dependencies: numpy, networkx. The optional calibration-pool tooling also
needs openpyxl (pip install "crossvib[calibration]").
Usage
CrossVib has three subcommands: single, compare, and multi-compare.
Classify the modes of a single calculation:
crossvib single molecule.nma # or: molecule.hess
Correlate two calculations of the same solute in different environments:
crossvib compare free.nma sers.nma \
--xyz-a free.xyz --xyz-b sers.xyz \
--range 200 3500 \
--emit-extras ./results/
For .hess input, geometry and normal modes are read directly from the ORCA Hessian
file, so --xyz-a / --xyz-b are not required. For .nma input they are required.
Multi-source (N ≥ 2 fragments) cooperativity analysis (A₁ + A₂ + … + Aₙ) → B:
crossvib multi-compare fragA.hess fragB.hess complex.hess
You can also run it as a module:
python -m crossvib compare free.nma sers.nma --xyz-a free.xyz --xyz-b sers.xyz
Output formats are selectable with --format {tsv|csv|md|pretty}. The
--emit-extras DIR flag writes per-analysis TSVs (overlap matrix, robustness ranking,
frequency shifts, Raman transfer, EF decomposition, silent-mode activations).
Method
The full methodology — internal-coordinate canonicalisation, VF2-based atom mapping, phase-aware overlap, the symmetrised mixing index, conservation classes (C/X/R), and the vCAL landmark pool — is documented in the accompanying methods paper.
Citing
If CrossVib is useful in your work, please cite it. A CITATION.cff and DOI will be
added on first release.
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crossvib-0.1.0.tar.gz.
File metadata
- Download URL: crossvib-0.1.0.tar.gz
- Upload date:
- Size: 42.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a77abb5f1c653246d957af1fabfc98a698326260992277105857856d5ae44ddd
|
|
| MD5 |
627d39b0916d5a37dfca8e3f80a8c45f
|
|
| BLAKE2b-256 |
6e2f69f6df732adacd88e5e1a18a9a6b8c1b00729190601580571fc02c6a3791
|
File details
Details for the file crossvib-0.1.0-py3-none-any.whl.
File metadata
- Download URL: crossvib-0.1.0-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30763d251874603f48f8789eece3b3ed4b103d098c931d3a634ba3ffbd178057
|
|
| MD5 |
b293cf56125844b1b904a934b26c761b
|
|
| BLAKE2b-256 |
1f0551f5e8ff71ff8d3d082d0538741cc67b86aed54f6accf22a357f2935abaf
|