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 representationAtom<Element>: Templated class for atoms of different elementsBond<BondType>: Templated class for different bond typesGeometry<GeometryType>: Templated class for VSEPR geometries
Key Functions
addAtom(): Add an atom to a moleculeaddBond(): Add a bond between atomsinit(): Initialize a molecule after adding atoms and bondsgenerateEquivalenceClasses(): Compute equivalence classesisTopologyEquivalent(): Check if two atoms are topologically equivalentisChemicallyEquivalent(): Check if two atoms are chemically equivalentsetCisAtoms(): Set cis stereochemistrysetOrientations(): 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.
Metadata
Release files for algomol 0.0.3.post4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 4.0 MB
Release files / algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 281.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
6f95fc4d6a6a51dfdee609e3c2fae2e33e064618a163f5dfd75ae8474d7f7022
|
|
BLAKE2b-256 checksum How to use checksums |
443544c7a74c23412c394da716c8df830c52ef08af54fc6a3386f7cda343f701
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | algomol-0.0.3.post4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 296.1 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
39cfb28427e40339eae01251a6673b0054b6fdcafa5a8af2a29dc59fd7b9cde4
|
|
BLAKE2b-256 checksum How to use checksums |
71516f723c79f76a899d3b1a1838f89fb8a6c0658e6620709d96ed56fa25484b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp312-cp312-macosx_11_0_universal2.macosx_11_0_arm64.macosx_10_9_x86_64.whl
| Download URL | algomol-0.0.3.post4-cp312-cp312-macosx_11_0_universal2.macosx_11_0_arm64.macosx_10_9_x86_64.whl |
|---|---|
| Size | 429.6 kB |
| Tags | CPython 3.12 macOS 10.9+ x86-64 macOS 11.0+ ARM64 macOS 11.0+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
ce7f64b4ffaf0c3592bdd40d6ae86af2c85bb5898e0bff2d692d67266fd93d40
|
|
BLAKE2b-256 checksum How to use checksums |
e60912173952865dd2694eb20b9a8d03d9aee761dec31a5619a1887ebbbd3232
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 283.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
84568fb26c627281a56d99531ce8b38168530f798876e0c15cf8dd42b609a4d0
|
|
BLAKE2b-256 checksum How to use checksums |
e71bd2ca2383afd029b8a87271ff0d0f5261f1eec9695ad47acaa4ed38c1fc20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | algomol-0.0.3.post4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 296.8 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
71222f1250c26a1c44d59e8208053d591b64c72ce6ebacc16f359c06e585f5b8
|
|
BLAKE2b-256 checksum How to use checksums |
e5bebde45b821b4be3fb223809ee411984f3db8e0000104531e3f54ef6dc430e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp311-cp311-macosx_10_9_x86_64.macosx_10_9_universal2.macosx_11_0_arm64.whl
| Download URL | algomol-0.0.3.post4-cp311-cp311-macosx_10_9_x86_64.macosx_10_9_universal2.macosx_11_0_arm64.whl |
|---|---|
| Size | 428.3 kB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d753e06282cc190601257ef2ed0bd04718b6de37d5b81cedbddec99a8b259378
|
|
BLAKE2b-256 checksum How to use checksums |
07963eca93ad23851d4a0d39ddc6aaf2a23eb396a317fa28f647808def2078a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 281.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c35bc1cf78a407aceb7ec15571fa4ec7086512acfb0e3fd5322396e791670a6c
|
|
BLAKE2b-256 checksum How to use checksums |
8ef38fc34b31bf4df1ce5ad0f4def8678ac676454f619dac26b68cbdc1120353
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | algomol-0.0.3.post4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 295.6 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
78cd104c7904c8153b436148087319f2c6075b54029f677a8b0af9cbc93919ec
|
|
BLAKE2b-256 checksum How to use checksums |
695d744abb3a68335aee50136c7d2ae446450d8778fee2487e7d39d430fec6dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp310-cp310-macosx_11_0_arm64.macosx_10_9_universal2.macosx_10_9_x86_64.whl
| Download URL | algomol-0.0.3.post4-cp310-cp310-macosx_11_0_arm64.macosx_10_9_universal2.macosx_10_9_x86_64.whl |
|---|---|
| Size | 425.4 kB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d8be9671db4ffe65fabd040879b96b781988d2c00a0f0707910096386614eb35
|
|
BLAKE2b-256 checksum How to use checksums |
639494c45d06b9c695d8f0bd1df39dcf0307001735f22f724cabb97a0a2d2d86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 281.8 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
19c7e77489de0a236757f6203d847b71836f9dc565dcbd82f1b34b9369465801
|
|
BLAKE2b-256 checksum How to use checksums |
7e33dc988c698a4c4e2c1b76dd8338d5faf3fad7466ffc9e29b5e8a32cd0b0b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | algomol-0.0.3.post4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 296.0 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
8f0b57144398733249d12b244953060df23cbc6a024331b546bb466c6eccfee1
|
|
BLAKE2b-256 checksum How to use checksums |
697af25ef9725c3470d15c9269b24e077cf2fa56b62f2c558fda769247716f9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency logRelease files / algomol-0.0.3.post4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_universal2.macosx_11_0_arm64.whl
| Download URL | algomol-0.0.3.post4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_universal2.macosx_11_0_arm64.whl |
|---|---|
| Size | 425.5 kB |
| Tags | CPython 3.9 macOS 10.9+ x86-64 macOS 11.0+ ARM64 macOS 11.0+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
042594e4dacc72d23603fac52033c6a1666ff996085bf41749be0c60c88c9c00
|
|
BLAKE2b-256 checksum How to use checksums |
2ead172e316f99d1f0008dff28926b19dfec88de1ad3cfb851447b8c1aca487e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2025.
Transparency log