Hi Josh,
https://gist.github.com/ptosco/3797986d7c01d052a774a2f6c43a3bc7
(disclaimer: there may be better/faster ways)
Cheers,
p.
On 07/02/18 17:42, Joshua Meyers wrote:
Hey Again,
Back to this problem because I didn't isolate the problem well enough
in the first place - my bad!
I would like to get the original atom indices of the r groups created
by the ReplaceCore function.
The issue is that the atom indices are reset by the ReplaceCore()
function (and seemingly any other function that deletes atoms).
Any idea how I would get these?
In [1]: from rdkit import Chem
In [2]: from rdkit.Chem.Scaffolds import MurckoScaffold
In [3]: m = Chem.MolFromSmiles('c1cc(C)c(CC(=O)[13C])cc1')
In [4]: murcko = MurckoScaffold.GetScaffoldForMol(m)
In [5]: rGroups = Chem.ReplaceCore(m, murcko, useChirality=True,
labelByIndex=True)
In [6]: rGroup_idxs = []
...: rGroups = Chem.GetMolFrags(rGroups, asMols=True,
fragsMolAtomMapping=rGroup_idxs)
...: rGroup_idxs
...:
Out[6]: [(0, 5), (1, 2, 3, 4, 6)]
I know that the two sets of indices I want from the original molecule
m are
((3,2),(5,6,7,8))
(found by depicting the indices - see attached)
Any idea how I can achieve this?
Cheers in advance,
Josh
On 26 June 2018 at 12:25, Paolo Tosco <paolo.tosco.m...@gmail.com
<mailto:paolo.tosco.m...@gmail.com>> wrote:
Hi Josh,
if you pass empty lists as the frags and as the
fragsMolAtomMapping parameters of GetMolFrags() they will be
filled with indices referring to the indices of the original
molecule (see lines highlighted in red below).
Hope that helps, cheers
p.
GetMolFrags(...)
GetMolFrags( (Mol)mol [, (bool)asMols=False [, (bool)sanitizeFrags=True
[, (AtomPairsParameters)frags=None [,
(AtomPairsParameters)fragsMolAtomMapping=None]]]]) -> tuple :
Finds the disconnected fragments from a molecule.
For example, for the molecule 'CC(=O)[O-].[NH3+]C' GetMolFrags() returns
((0, 1, 2, 3), (4, 5))
ARGUMENTS:
- mol: the molecule to use
- asMols: (optional) if this is provided and true, the fragments
will be returned as molecules instead of atom ids.
- sanitizeFrags: (optional) if this is provided and true, the
fragments
molecules will be sanitized before returning them.
- frags: (optional, defaults to None) if this is provided as an
empty list, the result will be mol.GetNumAtoms() long on return
and will contain the fragment assignment for each Atom -
fragsMolAtomMapping: (optional, defaults to None) if this is
provided as an empty list, the result will be a a numFrags long
list on return, and each entry will contain the indices of the
Atoms in that fragment: [(0, 1, 2, 3), (4, 5)]
RETURNS: a tuple of tuples with IDs for the atoms in each fragment
or a tuple of molecules.
On 26/06/2018 10:29, Joshua Meyers wrote:
Hey All,
I am chopping parts out of molecules and picking up the pieces
using the Chem.GetMolFrags() function.
I would like to separate fragments into distinct mol objects but
keep the original atom indexes however setting the asMols=True
flag seems to reset the indexes, is this expected behaviour? Is
there a way around this?
Here's some code:
In [1]: from rdkit import Chem
In [2]: m = Chem.MolFromSmiles('c1ccccc1.CCO')
In [3]: Chem.GetMolFrags(m)
Out[3]: ((0, 1, 2, 3, 4, 5), (6, 7, 8)) <----- desired indexes
In [4]: frags = Chem.GetMolFrags(m, asMols=True)
In [5]: for frag in frags:
...: print([a.GetIdx() for a in frag.GetAtoms()])
...:
[0, 1, 2, 3, 4, 5]
[0, 1, 2] < ------ indexes have been reset
Many thanks in advance,
Josh
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
<https://protect-eu.mimecast.com/s/s6W1CX6DYIXlN6U6Hc4j>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
<mailto:Rdkit-discuss@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
<https://protect-eu.mimecast.com/s/tLq6CY6EVILKZ0fGKfEC>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss