Skip to main content

A Python/C++ library for fast detection of chemical equivalent (or magnetic equivalent) atoms in molecules, useful for assigning/computing peaks in NMR spectroscopy.

Project description

AlgoMol Core Library

AlgoMol Core is a C++ library for fast molecular graph representation and equivalence detection with Python bindings.

Overview

AlgoMol Core provides a robust framework for molecular modeling with specific focus on:

  • Chemical and topological equivalence detection
  • VSEPR geometry modeling of molecular structures

For more information, visit our official website at algomol.com.

Features

  • Equivalence Classes: Generate equivalence classes based on topological or geometrical properties
  • Stereochemistry Support: Correctly handles cis/trans isomerism and other stereochemical features
  • VSEPR Geometry: Assign and manage molecular geometries based on VSEPR
  • Python Bindings: Use the library directly from Python with full API support

Installation

Requirements

  • C++17 compatible compiler (GCC 7+, Clang 5+, MSVC 2019+)
  • CMake 3.15 or newer
  • Python 3.9+ (for Python bindings)
  • pybind11 (for Python bindings)

Python Package

AlgoMol is also available as a Python package:

pip install algomol

Usage

C++ API

#include "AlgoMol/molecules.hpp"

int main() {
    // Create a molecule
    auto molecule = std::make_shared<AlgoMol::molecules::MolGraph>("ethane");
    
    // Add atoms
    molecule->addAtom(1, AlgoMol::elements::_CARBON);
    molecule->addAtom(2, AlgoMol::elements::_CARBON);
    molecule->addAtom(3, AlgoMol::elements::_HYDROGEN);
    molecule->addAtom(4, AlgoMol::elements::_HYDROGEN);
    molecule->addAtom(5, AlgoMol::elements::_HYDROGEN);
    molecule->addAtom(6, AlgoMol::elements::_HYDROGEN);
    molecule->addAtom(7, AlgoMol::elements::_HYDROGEN);
    molecule->addAtom(8, AlgoMol::elements::_HYDROGEN);
    
    // Add bonds
    molecule->addBond(1, 2, AlgoMol::bonds::BondType::SINGLE);
    molecule->addBond(1, 3, AlgoMol::bonds::BondType::SINGLE);
    molecule->addBond(1, 4, AlgoMol::bonds::BondType::SINGLE);
    molecule->addBond(1, 5, AlgoMol::bonds::BondType::SINGLE);
    molecule->addBond(2, 6, AlgoMol::bonds::BondType::SINGLE);
    molecule->addBond(2, 7, AlgoMol::bonds::BondType::SINGLE);
    molecule->addBond(2, 8, AlgoMol::bonds::BondType::SINGLE);
    
    // Initialize the molecule
    molecule->init();
    
    // Generate equivalence classes
    molecule->generateEquivalenceClasses(AlgoMol::molecules::QueryTypeFlag::TOPOLOGICAL);
    
    // Get equivalence classes
    auto classes = molecule->getEquivalenceClasses(AlgoMol::molecules::QueryTypeFlag::TOPOLOGICAL);
}

Python API

import algomol

# Create a molecule
molecule = algomol.MolGraph("ethane")

# Add atoms
molecule.add_atom(1, 6)  # Carbon (atomic number 6)
molecule.add_atom(2, 6)  # Carbon
molecule.add_atom(3, 1)  # Hydrogen (atomic number 1)
molecule.add_atom(4, 1)  # Hydrogen
molecule.add_atom(5, 1)  # Hydrogen
molecule.add_atom(6, 1)  # Hydrogen
molecule.add_atom(7, 1)  # Hydrogen
molecule.add_atom(8, 1)  # Hydrogen

# Add bonds
molecule.add_bond(1, 2, algomol.BondType.SINGLE)
molecule.add_bond(1, 3, algomol.BondType.SINGLE)
molecule.add_bond(1, 4, algomol.BondType.SINGLE)
molecule.add_bond(1, 5, algomol.BondType.SINGLE)
molecule.add_bond(2, 6, algomol.BondType.SINGLE)
molecule.add_bond(2, 7, algomol.BondType.SINGLE)
molecule.add_bond(2, 8, algomol.BondType.SINGLE)

# Initialize the molecule
molecule.init_mol()

# Generate equivalence classes
molecule.generate_equivalence_classes(algomol.QueryTypeFlag.TOPOLOGICAL)

# Get equivalence classes
classes = molecule.get_equivalence_classes(algomol.QueryTypeFlag.TOPOLOGICAL)

API Reference

Core Classes

  • MolGraph: Main class for molecular graph representation
  • Atom<Element>: Templated class for atoms of different elements
  • Bond<BondType>: Templated class for different bond types
  • Geometry<GeometryType>: Templated class for VSEPR geometries

Key Functions

  • addAtom(): Add an atom to a molecule
  • addBond(): Add a bond between atoms
  • init(): Initialize a molecule after adding atoms and bonds
  • generateEquivalenceClasses(): Compute equivalence classes
  • isTopologyEquivalent(): Check if two atoms are topologically equivalent
  • isChemicallyEquivalent(): Check if two atoms are chemically equivalent
  • setCisAtoms(): Set cis stereochemistry
  • setOrientations(): Set atom orientations

License

AlgoMol Core is proprietary software, owned exclusively by AlgoMol LLC. All rights reserved. This software and its source code are confidential and cannot be redistributed, modified, or used without explicit written permission from AlgoMol LLC. This is NOT open source software.

Copyright © AlgoMol LLC. Unauthorized use, reproduction, or distribution is strictly prohibited.

Contact

For questions and support, please contact: lanl2vz@algomol.com

Visit our official website at algomol.com for more information.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (281.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (296.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

algomol-0.0.3.post4-cp312-cp312-macosx_11_0_universal2.macosx_11_0_arm64.macosx_10_9_x86_64.whl (429.6 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64macOS 11.0+ ARM64macOS 11.0+ universal2 (ARM64, x86-64)

algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (283.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (296.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

algomol-0.0.3.post4-cp311-cp311-macosx_10_9_x86_64.macosx_10_9_universal2.macosx_11_0_arm64.whl (428.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (281.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (295.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

algomol-0.0.3.post4-cp310-cp310-macosx_11_0_arm64.macosx_10_9_universal2.macosx_10_9_x86_64.whl (425.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (281.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (296.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

algomol-0.0.3.post4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_universal2.macosx_11_0_arm64.whl (425.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64macOS 11.0+ ARM64macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f95fc4d6a6a51dfdee609e3c2fae2e33e064618a163f5dfd75ae8474d7f7022
MD5 c21d813c9fa5fd2bbf76e227974e2d02
BLAKE2b-256 443544c7a74c23412c394da716c8df830c52ef08af54fc6a3386f7cda343f701

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 39cfb28427e40339eae01251a6673b0054b6fdcafa5a8af2a29dc59fd7b9cde4
MD5 a57e5505aedc0d2636e9c9577b6a396c
BLAKE2b-256 71516f723c79f76a899d3b1a1838f89fb8a6c0658e6620709d96ed56fa25484b

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp312-cp312-macosx_11_0_universal2.macosx_11_0_arm64.macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp312-cp312-macosx_11_0_universal2.macosx_11_0_arm64.macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ce7f64b4ffaf0c3592bdd40d6ae86af2c85bb5898e0bff2d692d67266fd93d40
MD5 746b94a3a168aefaf20fbc7082dcb033
BLAKE2b-256 e60912173952865dd2694eb20b9a8d03d9aee761dec31a5619a1887ebbbd3232

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp312-cp312-macosx_11_0_universal2.macosx_11_0_arm64.macosx_10_9_x86_64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84568fb26c627281a56d99531ce8b38168530f798876e0c15cf8dd42b609a4d0
MD5 5d98b9abaab807bb5b6bf558976b6d39
BLAKE2b-256 e71bd2ca2383afd029b8a87271ff0d0f5261f1eec9695ad47acaa4ed38c1fc20

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 71222f1250c26a1c44d59e8208053d591b64c72ce6ebacc16f359c06e585f5b8
MD5 fbd6b4e604cf22d65785f817d278648f
BLAKE2b-256 e5bebde45b821b4be3fb223809ee411984f3db8e0000104531e3f54ef6dc430e

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp311-cp311-macosx_10_9_x86_64.macosx_10_9_universal2.macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp311-cp311-macosx_10_9_x86_64.macosx_10_9_universal2.macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d753e06282cc190601257ef2ed0bd04718b6de37d5b81cedbddec99a8b259378
MD5 4d47597af9d525df8c9f1c09fc7912fd
BLAKE2b-256 07963eca93ad23851d4a0d39ddc6aaf2a23eb396a317fa28f647808def2078a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp311-cp311-macosx_10_9_x86_64.macosx_10_9_universal2.macosx_11_0_arm64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c35bc1cf78a407aceb7ec15571fa4ec7086512acfb0e3fd5322396e791670a6c
MD5 4753e2eb8925886c242107ff3e08b5cb
BLAKE2b-256 8ef38fc34b31bf4df1ce5ad0f4def8678ac676454f619dac26b68cbdc1120353

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 78cd104c7904c8153b436148087319f2c6075b54029f677a8b0af9cbc93919ec
MD5 31afae65794360cefcc912aa0a938c9d
BLAKE2b-256 695d744abb3a68335aee50136c7d2ae446450d8778fee2487e7d39d430fec6dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp310-cp310-macosx_11_0_arm64.macosx_10_9_universal2.macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp310-cp310-macosx_11_0_arm64.macosx_10_9_universal2.macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d8be9671db4ffe65fabd040879b96b781988d2c00a0f0707910096386614eb35
MD5 942fc591c1cd0196a2ec008da7cbad4d
BLAKE2b-256 639494c45d06b9c695d8f0bd1df39dcf0307001735f22f724cabb97a0a2d2d86

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp310-cp310-macosx_11_0_arm64.macosx_10_9_universal2.macosx_10_9_x86_64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19c7e77489de0a236757f6203d847b71836f9dc565dcbd82f1b34b9369465801
MD5 80b5e67c7fb4e8a87dce8447f364d294
BLAKE2b-256 7e33dc988c698a4c4e2c1b76dd8338d5faf3fad7466ffc9e29b5e8a32cd0b0b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8f0b57144398733249d12b244953060df23cbc6a024331b546bb466c6eccfee1
MD5 d39eb499db0042c1874935fd58728b6b
BLAKE2b-256 697af25ef9725c3470d15c9269b24e077cf2fa56b62f2c558fda769247716f9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file algomol-0.0.3.post4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_universal2.macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for algomol-0.0.3.post4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_universal2.macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 042594e4dacc72d23603fac52033c6a1666ff996085bf41749be0c60c88c9c00
MD5 6ca39befe3df99e8426eef364366febc
BLAKE2b-256 2ead172e316f99d1f0008dff28926b19dfec88de1ad3cfb851447b8c1aca487e

See more details on using hashes here.

Provenance

The following attestation bundles were made for algomol-0.0.3.post4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_universal2.macosx_11_0_arm64.whl:

Publisher: release.yml on AlgoMol-dev/algomol-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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