Skip to main content

A Python package to analyze magnetic molecular orbitals (SOMOs) from Gaussian outputs

Project description

SOMOs

Version [0.2.6] - 2024-04-25 Added

  • progession bar in io.extract_gaussian_info
  • dependency on tqdm added in pyproject.toml and to docs/source/SOMOs_imports_summary.md
  • in index.rst, new calls to
    • SOMOs_imports_summary.md
    • SciDoc.md Changed
  • sphinx documentation : link toward the scientific document now given in SciDoc.md

SOMOs

🔗 Available on PyPI

A Python library to identify and analyze Single Occupied Molecular Orbitals (SOMOs) from Gaussian 09 or Gaussian 16 .log files.

PyPI version Documentation Status License Python Build


Installation

pip install SOMOs

Capabilities Overview

SOMOs is a Python toolkit for analyzing molecular orbitals (MOs) from Gaussian log files, with a focus on identifying SOMOs (Singly Occupied Molecular Orbitals) in open-shell systems.


🚀 Main Features

Load Gaussian Log Files

  • Parses .log and .log.gz Gaussian output files
  • Extracts orbital energies, coefficients, overlap matrices, and spin
from somos import io
alpha_df, beta_df, alpha_mat, beta_mat, nbasis, S, info = io.load_mos_from_cclib(logfolder, logfile)

Cosine Similarity & SOMO Detection

  • Computes cosine similarities between alpha and beta orbitals
  • Identifies SOMO candidates from orbital projections
from somos import cosim
listMOs, coeffMOs, nBasis, dfSOMOs, S = cosim.analyzeSimilarity(logfolder, logfile)

Projection-Based Analysis

  • Projects occupied and virtual alpha MOs onto virtual beta MOs
  • Decomposes projection matrix to extract leading contributions
from somos import proj
df_proj, info = proj.project_occupied_alpha_onto_beta(logfolder, logfile)
display(proj.show_alpha_to_homo(df_proj, logfolder, logfile))

📊 Visualization Tools

Heatmaps

  • Interactive or static heatmaps of MO similarities
  • Highlights SOMO-related regions and orbital clustering

t-SNE (Dimensionality Reduction)

  • Projects high-dimensional orbital space to 2D for visual exploration
  • Enables inspection of orbital families and similarity patterns
cosim.heatmap_MOs(listMOs, coeffMOs, nBasis, S, logfolder, logfile)          # Generates heatmap from cosine similarities
cosim.tsne(listMOs, coeffMOs, S, logfolder,logfile)                          # Generates 2D layout from cosine similarities
proj.projection_heatmap_from_df(df_proj, info["nbasis"], logfolder, logfile) # Generates heatmap from the projection scheme

📁 Output

  • .xlsx tables of SOMO similarity and projections
  • .png images of heatmaps and projections
  • All results saved in the logs/ folder

✅ Example Used in Notebook

  • H2CO_T1_g09_wOverlaps.log.gz (compressed Gaussian file)

Examples

see the SOMOs-examples.ipynb Jupyter notebook


Technical and scsientific documentation

This document describes two complementary methods to identify singly occupied molecular orbitals (SOMOs) in open-shell systems:

  • Orbital projection analysis, where occupied α orbitals are projected onto the β orbital basis using the AO overlap matrix;
  • Cosine similarity mapping, which computes the angular similarity between α and β orbitals and matches them using the Kuhn–Munkres (Hungarian) algorithm.

An example based on the triplet state (T₁) of formaldehyde (H₂CO) is included in the doc/ folder


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gsomos-0.2.6.tar.gz (39.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gsomos-0.2.6-py3-none-any.whl (5.1 MB view details)

Uploaded Python 3

File details

Details for the file gsomos-0.2.6.tar.gz.

File metadata

  • Download URL: gsomos-0.2.6.tar.gz
  • Upload date:
  • Size: 39.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for gsomos-0.2.6.tar.gz
Algorithm Hash digest
SHA256 ec701a04c1530606767d6f062a0eceb9d13b558ccb924792ae1d48b54d429ba2
MD5 40e49f7d3bc277401a03ac840a19b3bd
BLAKE2b-256 895c46f96b9f0e8d260a75e35fd0c1b1c1dc37f64c314e0a2a18c1f4fd9edbf3

See more details on using hashes here.

File details

Details for the file gsomos-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: gsomos-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 5.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for gsomos-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1df0792891e7e2910416eb9133bf417e052cdcc25238fb131b762f6dcafc53bf
MD5 5e5ad46346c4da59c026162de2fbfbd0
BLAKE2b-256 d936c306d1621f46217ed6bd701e17e9def80b3eb47051a7377074d86864d5e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page