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)
| File | Size | Uploaded | |
|---|---|---|---|
| aamutils-0.1.0.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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