A chemical reaction can be defined as a transformation of one set of chemical compounds to another. The correct mapping of the rearrangement of chemical compound atoms during the transformation is essential for capturing the essence of a chemical reaction. This task, widely known as atom-to-atom mapping, has proven quite challenging. Nevertheless, novel approaches are being published frequently. The main goal of this repository is to curate existing open-source chemical reaction compound atom-to-atom mapping libraries.
To use the crc_a2am package, please ensure that the chytorch-rxnmap, epam.indigo, localmapper, and rxnmapper packages are available. The execution environment can be created using conda and pip as follows:
conda env create -f environment.yaml
conda activate crc-a2am-env
pip install --no-build-isolation -e . --user
The scripts directory is primarily meant to illustrate how to utilize the crc_a2am package to run the chemical reaction atom-to-atom mapping on chemical reaction data.
# Example 1: Map a chemical reaction SMILES string.
python -m scripts.map_reaction_smiles --library "chytorch_rxnmap" --reaction_smiles "BrCCBr.COC(=O)c1cc(n[nH]1)C(F)(F)F>>COC(=O)c1cc(nn1CCBr)C(F)(F)F"
python -m scripts.map_reaction_smiles --library "epam_indigo" --reaction_smiles "CCN(CC)CCCl.[O-][N+](=O)c1ccc(S)cc1>>CCN(CC)CCSc1ccc(cc1)[N+]([O-])=O"
python -m scripts.map_reaction_smiles --library "local_mapper" --reaction_smiles "BrCc1ccccc1.Oc1ccc(F)c(F)c1F>>Fc1ccc(OCc2ccccc2)c(F)c1F"
python -m scripts.map_reaction_smiles --library "rxnmapper" --reaction_smiles "ClC(=O)c1ccc(cc1)C#N.CCCCCCCc1ccccc1>>CCCCCCCc1ccc(cc1)C(=O)c1ccc(cc1)C#N"
Currently, the crc_a2am package supports the following open-source chemical reaction compound atom-to-atom mapping libraries:
- The Chytorch RxnMap library utilizes a Transformer model for processing chemical compound graphs. [1]
- The EPAM Indigo library utilizes a chemical compound graph-matching algorithm. [2]
- The LocalMapper library utilizes a human-in-the-loop Message Passing Neural Network model. [3]
- The RXNMapper library utilizes a chemically agnostic attention-guided Transformer model. [4]
This repository is published under the MIT license. Please refer to the original publications for the license information of individual open-source chemical reaction compound atom-to-atom mapping libraries.
If you are interested in contributing to this repository by reporting bugs, submitting feedback or anything else that might be beneficial, please feel free to do so via GitHub Issues or e-mail.
- Nugmanov, R., Dyubankova, N., Gedich, A., and Wegner, J.K. Bidirectional Graphormer for Reactivity Understanding: Neural Network Trained to Reaction Atom-to-atom Mapping Task. J. Chem. Inf. Model., 62, 14, 3307–3315, 2022. DOI: https://doi.org/10.1021/acs.jcim.2c00344.
- EPAM Indigo: https://lifescience.opensource.epam.com/indigo/index.html. Accessed on: March 6th, 2024.
- Chen, S., An, S., Babazade. R., and Jung, Y. Precise Atom-to-atom Mapping for Organic Reactions via Human-in-the-loop Machine Learning. Nat. Commun., 15, 2250, 2024. DOI: https://doi.org/10.1038/s41467-024-46364-y.
- Schwaller, P., Hoover, B., Reymond, J., Strobelt, H., and Laino, T. Extraction of Organic Chemistry Grammar from Unsupervised Learning of Chemical Reactions. Sci. Adv., 7, 15, 2021. DOI: https://doi.org/10.1126/sciadv.abe4166.