Re: [Rdkit-discuss] The fragmentMatcher (SubstructMatcher) is not as good as expected
Thanks, it works! I appreciate that Rdkit is so strict in representation of the the molecules and the substructures. I learned a lot in the mail list. Hongbin Yang From: Paolo ToscoDate: 2016-10-27 17:19To: 杨弘宾; rdkit-discussSubject: Re: [Rdkit-discuss] The fragmentMatcher (SubstructMatcher) is not as good as expected Dear Hongbin, I am afraid The SMARTS you are using is not valid, as no SSSR can have less than 3 terms, or it wouldn't be a ring. If you change[a!r0] into, for instance, [a!r3], then you'll find the match you are looking for. Cheers, p. On 27/10/2016 09:36, 杨弘宾 wrote: Hi, I tryied using rdkit to match fragments with compounds only to find that rdkit performed not well in SMARTS. The following is the notebook I worked. from rdkit import Chem from rdkit.Chem import AllChem from rdkit.Chem import FragmentMatcher from rdkit.Chem.Draw import IPythonConsole In [49]: p = FragmentMatcher.FragmentMatcher() p.Init('[a!r0][NX3+](=[OX1])([O-])') In [50]: mol = Chem.MolFromSmiles('c1c1[N+](=O)[O-]') mol Out[50]: In [51]: p.HasMatch(mol) Out[51]: 0 In [52]: print Chem.MolFromSmarts('[a!r0][NX3+](=[OX1])([O-])') None However, openbabel worked well in matching the substrcutre. Even "or operator" was avaiable such as "[a!r0][$([NX3+](=[OX1])([O-])),$([NX3](=O)=O)]". >>> s=pybel.Smarts('[a!r0][NX3+](=[OX1])([O-])') >>> s=pybel.Smarts('[a!r0][NX3+](=[OX1])([O-])') >>> a=pybel.readstring('smi','c1c1[N+](=O)[O-]') >>> s.findall(a) [(6, 7, 8, 9)] It is a pity that rdkit can calculate the topological distance between two atoms while it cannot match the fragments... Is there any better API which I didn't find? Hongbin Yang 杨弘宾 Research: Toxicophore and Chemoinformatics Pharmaceutical Science, School of Pharmacy East China University of Science and Technology -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
Re: [Rdkit-discuss] The fragmentMatcher (SubstructMatcher) is not as good as expected
Dear Hongbin, I am afraid The SMARTS you are using is not valid, as no SSSR can have less than 3 terms, or it wouldn't be a ring. If you change[a!r0] into, for instance, [a!r3], then you'll find the match you are looking for. Cheers, p. On 27/10/2016 09:36, 杨弘宾 wrote: Hi, I tryied using rdkit to match fragments with compounds only to find that rdkit performed not well in SMARTS. The following is the notebook I worked. from rdkit import Chem from rdkit.Chem import AllChem from rdkit.Chem import FragmentMatcher from rdkit.Chem.Draw import IPythonConsole In [49]: p = FragmentMatcher.FragmentMatcher() p.Init('[a!r0][NX3+](=[OX1])([O-])') In [50]: mol = Chem.MolFromSmiles('c1c1[N+](=O)[O-]') mol Out[50]: In [51]: p.HasMatch(mol) Out[51]: 0 In [52]: print Chem.MolFromSmarts('[a!r0][NX3+](=[OX1])([O-])') None However, openbabel worked well in matching the substrcutre. Even "or operator" was avaiable such as "[a!r0][$([NX3+](=[OX1])([O-])),$([NX3](=O)=O)]". >>> s=pybel.Smarts('[a!r0][NX3+](=[OX1])([O-])') >>> s=pybel.Smarts('[a!r0][NX3+](=[OX1])([O-])') >>> a=pybel.readstring('smi','c1c1[N+](=O)[O-]') >>> s.findall(a) [(6, 7, 8, 9)] It is a pity that rdkit can calculate the topological distance between two atoms while it cannot match the fragments... Is there any better API which I didn't find? Hongbin Yang 杨弘宾 Research: Toxicophore and Chemoinformatics Pharmaceutical Science, School of Pharmacy East China University of Science and Technology -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
[Rdkit-discuss] The fragmentMatcher (SubstructMatcher) is not as good as expected
Hi,? ? I tryied using rdkit to match fragments with compounds only to find that rdkit performed not well in SMARTS. The following is the notebook I worked. from rdkit import Chem from rdkit.Chem import AllChem from rdkit.Chem import FragmentMatcher from rdkit.Chem.Draw import IPythonConsole In?[49]:p = FragmentMatcher.FragmentMatcher() p.Init('[a!r0][NX3+](=[OX1])([O-])') In?[50]:mol = Chem.MolFromSmiles('c1c1[N+](=O)[O-]') mol Out[50]:In?[51]:p.HasMatch(mol) Out[51]:0In?[52]:print Chem.MolFromSmarts('[a!r0][NX3+](=[OX1])([O-])') None However, openbabel worked well in matching the substrcutre. Even "or operator" was avaiable such as "[a!r0][$([NX3+](=[OX1])([O-])),$([NX3](=O)=O)]".? >>> s=pybel.Smarts('[a!r0][NX3+](=[OX1])([O-])') >>> s=pybel.Smarts('[a!r0][NX3+](=[OX1])([O-])') >>> a=pybel.readstring('smi','c1c1[N+](=O)[O-]') >>> s.findall(a) [(6, 7, 8, 9)] It is a pity that rdkit can calculate the topological distance between two atoms while it cannot match the fragments... Is there any better API which I didn't find? Hongbin Yang 杨弘宾 Research: Toxicophore and Chemoinformatics Pharmaceutical Science, School of Pharmacy East China University of Science and Technology? -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss