Skip to main content

Atom-atom-mapping Utils

A collection of atom-atom-mapping utility functions.

Installation

The easiest way to use AAMUtils is by installing the PyPI package aamutils.

pip install aamutils

Usage

Use in command line

The input is a list of partial atom-atom-maps (AAMs). Data is read line-by-line from a text file. Each line should contain one reaction SMILES.

Here is a simple example extending the partial AAM to a complete AAM. First generate the input data:

echo "CCC[Cl:1].[N:2]>>CCC[N:2].[Cl:1]" > testinput.txt

Next, run AAMUtils to expand the partial AAM.

python3 -m aamutils expand testinput.txt

The output is written to 'testinput_extended.json'.

cat testinput_extended.json 
[
    {
        "input": "CCC[Cl:1].[N:2]>>CCC[N:2].[Cl:1]",
        "expanded_aam": "[Cl:1][CH2:5][CH2:4][CH3:3].[NH3:2]>>[ClH:1].[NH2:2][CH2:3][CH2:4][CH3:5]",
        "ilp_status": "Optimal",
        "optimization_result": 4.0,
        "invalid_reaction_center": false,
        "reaction_edges": 4
    }
]

Use in script

  from aamutils.aam_expand import extend_aam_from_rsmi

  rsmi = "CC[CH2:3][Cl:1].[N:2]>>CC[CH2:3][N:2].[Cl:1]"

  result_smiles = extend_aam_from_rsmi(rsmi)

  print(result_smiles)
  >>> "[Cl:1][CH2:3][CH2:5][CH3:4].[NH3:2]>>[ClH:1].[NH2:2][CH2:3][CH2:5][CH3:4]"

Benchmark

To rerun the benchmarks from the paper use the benchmark.py script. The reported results can be reproduced by running the following commands:

(1) Extend partial reaction center (50%, 75% and 100% missing atoms)

python3 benchmark.py --remove-mode rc --remove-ratio 0.5 --seed 42
python3 benchmark.py --remove-mode rc --remove-ratio 0.75 --seed 42
python3 benchmark.py --remove-mode rc --remove-ratio 1 --seed 42

(2) Extend partial AAM with fully mapped RC

python3 benchmark.py --remove-mode keep_rc --remove-ratio 1 --seed 42

Functionality

Here is an overview of implemented functionality:

  • SMILES to graph and graph to SMILES parsing
  • Reaction center validity checks
  • ITS graph generation
  • Expand partial AAM to complete AAM on balanced reactions
  • AAMing based on minimal chemical distance (MCD) for balanced reactions

License

This project is licensed under MIT License - see the License file for details.

Acknowledgments

This project has received funding from the European Unions Horizon Europe Doctoral Network programme under the Marie-Skłodowska-Curie grant agreement No 101072930 (TACsy -- Training Alliance for Computational)

Metadata

Release files for aamutils 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aamutils 0.1.0
File Size Uploaded
aamutils-0.1.0.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for aamutils 0.1.0
File Interpreter ABI Platform
aamutils-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / aamutils-0.1.0.tar.gz

Download URL aamutils-0.1.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
c721bf300f1ad73746151b09d8c1f467c8093399b7c3b7e67206b4af30344f32
BLAKE2b-256 checksum
How to use checksums
afb86d084a6e6be4470a2b7bc2f25a870fca9fad500a7b06e0b805f5668fe47c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 18, 2026.

Transparency log

Release files / aamutils-0.1.0-py3-none-any.whl

Download URL aamutils-0.1.0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6ec908723f028ee0493336006419fd9fa44f90a149f1f877d50866fa0ec9edb
BLAKE2b-256 checksum
How to use checksums
3aff8a0a9482d32b819f583288ed56a6df6d2101abc6afa9e90b0b76f5b27eb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page