ConeZen

A Python toolkit for computational chemists to analyze and visualize conical intersection topology. Transform raw quantum chemistry output into intuitive 3D potential energy surfaces to predict photochemical reaction outcomes.

ConeZen

Key Features

Automated Analysis

Direct QM output parsing from SHARC-OpenMolcas interfaces. Automatically extracts gradients and nonadiabatic coupling vectors from QM.out files with minimal user input.

Topological Analysis

Computes key CI descriptors including strength (δ_gh), asymmetry (Δ_gh), relative tilt (σ), and tilt heading (θ_s) for rapid CI classification.

High-Quality Visualization

Generates publication-ready 3D surface plots using Matplotlib. Fully customizable with export options in PNG, PDF, and SVG formats.

Animations

Creates animated GIFs or MP4s showing 360° rotations of 3D surfaces. Perfect for presentations and intuitive understanding of potential energy surfaces.

Dual Interface

Offers both an easy-to-use interactive CLI and an importable Python library API for flexible workflows and integration into larger pipelines.

Minimal Dependencies

Built on NumPy, Pandas, and Matplotlib. Straightforward installation with no dependency conflicts, ensuring stability and ease of use.

Installation

1

Clone Repository

git clone https://github.com/Kalpa08/ConeZen.git cd ConeZen
2

Create Environment

conda create --name conezen_env python=3.11 conda activate conezen_env
3

Install ConeZen

pip install build && pip install .

Optional: FFmpeg for Animations

To create MP4 animations, install FFmpeg:

# macOS brew install ffmpeg # Ubuntu/Debian sudo apt-get install ffmpeg # Windows: Download from https://ffmpeg.org/download.html

Documentation & Usage

Command Line Interface

Run ConeZen interactively from your terminal:

conezen

The tool will guide you through the analysis process step-by-step, from file input to visualization generation.

Python API

Import ConeZen into your Python scripts:

from conezen import ConeZenAPI cz_api = ConeZenAPI() cz_api.load_data_from_files( grad_a_path='gradientA.out', grad_b_path='gradientB.out', nac_path='NAC.out' ) cz_api.calculate_parameters() cz_api.plot()

Input Files

QM.out files: Primary input from SHARC-OpenMolcas

Gradient files: Cartesian vector components for each atom

NAC files: Nonadiabatic coupling vectors

XYZ files: Standard geometry files for atom labels

Output Files

ci_parameters.txt: Calculated topological quantities

x_vectors.out, y_vectors.out: Orthonormal branching plane vectors

conical_intersection.png: High-resolution 3D plot

Animations: MP4 or GIF files of rotating surfaces

Citation & Authorship

If you use ConeZen in your research, please cite our work:

@software{conezen, author = {Kalpajyoti Dihingia and Biswajit Maiti}, title = {ConeZen: A Python Toolkit for Characterizing and Visualizing Conical Intersection Topologies}, year = 2025, publisher = {Zenodo}, version = {v0.1.4}, doi = {10.5281/zenodo.16161336} }

Authors

Kalpajyoti Dihingia & Biswajit Maiti

Banaras Hindu University, Varanasi, India

Theoretical Framework

Based on: J. Chem. Theory Comput. 2016, 12(8), 3636–3653. DOI: 10.1021/acs.jctc.6b00384

License

Distributed under the GNU GPL v3.0 License