Dear Paolo, Thank you, this is exactly what I need. Best, Michal
On Thu, 4 Jun 2020 at 16:57, Paolo Tosco <paolo.tosco.m...@gmail.com> wrote: > Dear Michal, > > You can use > > > http://rdkit.org/docs/source/rdkit.Chem.rdmolops.html?highlight=path#rdkit.Chem.rdmolops.GetShortestPath > > or > > > http://rdkit.org/docs/source/rdkit.Chem.rdmolops.html?highlight=distance#rdkit.Chem.rdmolops.GetDistanceMatrix > > e.g.: > > from rdkit import Chem > > cx=Chem.MolFromSmiles('C1CCCCC1')bonds=(cx.GetBondBetweenAtoms(1,2).GetIdx(), > cx.GetBondBetweenAtoms(3,4).GetIdx())fragmented=Chem.FragmentOnBonds(cx,bonds) > > mat = Chem.GetDistanceMatrix(cx) > > mat[1, 2] > > 1.0 > > Chem.GetShortestPath(cx, 1, 2) > > (1, 2) > > mat = Chem.GetDistanceMatrix(fragmented) > > mat[1, 2] > > 100000000.0 > > Chem.GetShortestPath(fragmented, 1, 2) > > () > > > Cheers, > p. > > On 04/06/2020 16:17, Michal Krompiec wrote: > > Hello, > When a molecule is fragmented with Chem.FragmentOnBonds, how can I check > if there still is a path between two given atoms? > For example, this snippet breaks C1-C2 and C3-C4 bonds in cyclohexane, > producing two fragments: > > from rdkit import Chem > cx=Chem.MolFromSmiles('C1CCCCC1') > bonds=(cx.GetBondBetweenAtoms(1,2).GetIdx(), > cx.GetBondBetweenAtoms(3,4).GetIdx()) > fragmented=Chem.FragmentOnBonds(cx,bonds) > > Is there a way in RDKit to check if there is a path between, say, C1 and > C2, without having to manually traverse the whole molecular graph? I guess > the alternative is to load everything into a graph library like networkx... > > Best wishes, > Michal Krompiec > Merck KGaA > > > > _______________________________________________ > Rdkit-discuss mailing > listRdkit-discuss@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/rdkit-discuss > >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss