As an FYI: the changes to carry reactant atom indices over into reaction products are already merged and will be in the next release.
Here’s the issue connected to the changes: https://github.com/rdkit/rdkit/issues/1269 Best, -greg On Mon, 17 Sep 2018 at 18:23, Ivan Tubert-Brohman < ivan.tubert-broh...@schrodinger.com> wrote: > Hi Connor, > > Thank you for your suggestions! I think the isotope hack will work for me > for now, but for the longer term it would be nicer to have the official > version of RDKit provide sufficient atom mapping information, so I'll > consider that as well. > > Ivan > > On Mon, Sep 17, 2018 at 11:52 AM, Connor Coley <cco...@mit.edu> wrote: > >> Hi Ivan, >> >> This is something I ran into a couple years ago - it's a pretty easy fix. >> >> One approach is to update the source with a few lines to copy over the >> atom map numbers from the reactants to the products as a new field. You can >> see the necessary changes to the code in my forked version here: >> https://github.com/rdkit/rdkit/commit/0a8393fbf89e486ed67f2a44f9a7ea8d9f2efd95 >> >> Another approach is more hacky but might be good enough for your use >> case. If your reactions don't involve isotopic changes or require specific >> isotopes, you can set unique isotope numbers for every reacting atom. Those >> will be preserved in the products so you can get the atom-atom mapping >> after running the reaction. >> >> Connor >> >> On Mon, Sep 17, 2018 at 10:36 AM Ivan Tubert-Brohman < >> ivan.tubert-broh...@schrodinger.com> wrote: >> >>> I'd like to know where each atom in a reaction product came from, but as >>> far as I can tell, RDKit doesn't provide enough information. Here's what I >>> found out empirically so far. >>> >>> There are four kinds of product atoms: >>> >>> 1. New atoms: atoms are defined in the product template without a >>> mapping number. These can't be mapped to reactant atoms, so there's no >>> issue. >>> >>> 2. Unmatched atoms: atoms that were not matched by any atom from the >>> reactant template but were carried over to the product because they were >>> connected (directly or indirectly) to a mapped reactant atom. These have >>> the "react_atom_idx" property, which holds the atom index of the atom in >>> the reactant molecule. This is useful as long as the reactant side has only >>> one molecule; when there are multiple molecules, it is not clear which >>> reactant molecule a product atom came from. >>> >>> 3. Mapped dummy atoms: atoms which are defined as dummies in the product >>> template and have a mapping number (e.g., [*:1]). These also get a >>> "react_atom_idx" property, as well as an "old_mapno" property which holds >>> the mapping number (1 for [*:1]) >>> >>> 4. Mapped non-dummy atoms: atoms which are NOT defined as dummies in >>> the product template and have a mapping number (e.g., [C:1]). These >>> have "old_mapno", but no "react_atom_idx". >>> >>> One thing I tried was to add my own unique atom identifier property to >>> all reactant atoms before applying the reaction, but that didn't help >>> because mapped atoms (types 3 and 4) don't preserve user properties (I >>> guess these atoms are seen as "replacements" for the atoms they mapped, >>> rather than "copies"?) >>> >>> I'd be willing to hack the RDKit source code if necessary and contribute >>> my changes, but before starting such a project I'd like to hear if it's >>> reasonable. >>> >>> One possibility would be to preserve user properties for mapped atoms. >>> >>> Alternatively we could add react_atom_idx to mapped non-dummy atoms, and >>> also add a new "react_mol_idx" property? >>> >>> Best, >>> Ivan >>> _______________________________________________ >>> Rdkit-discuss mailing list >>> Rdkit-discuss@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >>> >> > _______________________________________________ > Rdkit-discuss mailing list > Rdkit-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss