Hi Brian, thanks a lot, this will be very useful to get my head around
smarts writing.
Best,
Alexis

On 18 May 2017 at 02:06, Brian Kelley <[email protected]> wrote:

> Dear All,
>   In case it helps, there is a wealth of functional groups already in
> RDKit available here:
>
> https://github.com/rdkit/rdkit/blob/master/Data/
> Functional_Group_Hierarchy.txt
>
> For instance, the functional group halogen pattern we use is a bit more
> complicated:
>
> [$([F,Cl,Br,I]-!@[#6]);!$([F,Cl,Br,I]-!@C-!@[F,Cl,Br,I]);!$
> ([F,Cl,Br,I]-[C,S](=[O,S,N]))]
>
> That can (1) help you write your own patterns and (2) be used (from
> python) as follows:
>
>
> from __future__ import print_function
> from rdkit import Chem
> from rdkit.Chem import FilterCatalog
>
> queryDefs = FilterCatalog.GetFlattenedFunctionalGroupHierarchy()
> smiles = "ClC1=CC(C2NCCOC2)=C(C=CC=C3)C3=C1"
> mol = Chem.MolFromSmiles(smiles)
> items = sorted(queryDefs.items())
> for name, pat in items:
>    print("%s\t%s"%(name, mol.HasSubstructMatch(pat)))
>
>
> AcidChloride False
>
> AcidChloride.Aliphatic False
>
> AcidChloride.Aromatic False
>
> Alcohol False
>
> Alcohol.Aliphatic False
>
> Alcohol.Aromatic False
>
> Aldehyde False
>
> Aldehyde.Aliphatic False
>
> Aldehyde.Aromatic False
>
> Amine True
>
> Amine.Aliphatic True
>
> Amine.Aromatic False
>
> Amine.Cyclic True
>
> Amine.Primary False
>
> Amine.Primary.Aliphatic False
>
> Amine.Primary.Aromatic False
>
> Amine.Secondary True
>
> Amine.Secondary.Aliphatic True
>
> Amine.Secondary.Aromatic False
>
> Amine.Tertiary False
>
> Amine.Tertiary.Aliphatic False
>
> Amine.Tertiary.Aromatic False
>
> Azide False
>
> Azide.Aliphatic False
>
> Azide.Aromatic False
>
> BoronicAcid False
>
> BoronicAcid.Aliphatic False
>
> BoronicAcid.Aromatic False
>
> CarboxylicAcid False
>
> CarboxylicAcid.Aliphatic False
>
> CarboxylicAcid.AlphaAmino False
>
> CarboxylicAcid.Aromatic False
>
> Halogen True
>
> Halogen.Aliphatic False
>
> Halogen.Aromatic True
>
> Halogen.Bromine False
>
> Halogen.Bromine.Aliphatic False
>
> Halogen.Bromine.Aromatic False
>
> Halogen.Bromine.BromoKetone False
>
> Halogen.NotFluorine True
>
> Halogen.NotFluorine.Aliphatic False
>
> Halogen.NotFluorine.Aromatic True
>
> Isocyanate False
>
> Isocyanate.Aliphatic False
>
> Isocyanate.Aromatic False
>
> Nitro False
>
> Nitro.Aliphatic False
>
> Nitro.Aromatic False
>
> SulfonylChloride False
>
> SulfonylChloride.Aliphatic False
>
> SulfonylChloride.Aromatic False
>
> TerminalAlkyne False
>
>
> Cheers,
>  Brian
>
> On Wed, May 17, 2017 at 9:20 AM, Alexis Parenty <
> [email protected]> wrote:
>
>> Hi Michal, thanks for your response.
>> I think I made a typo somewhere in my previous code since it now works
>> fine, even without the the kekule notation... Sorry about the confusion...
>> Best,
>>
>> Alexis
>>
>> On 17 May 2017 at 13:59, Michal Krompiec <[email protected]>
>> wrote:
>>
>>> Hi Alexis,
>>> Try aromatic form instead of Kekule notation.
>>> Best,
>>> Michal
>>>
>>> On 17 May 2017 at 12:55, Alexis Parenty <[email protected]>
>>> wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> I am looking for substructure match between a smarts and a smiles, but
>>>> I want any heteroatom from the smarts to match any heteroatom from a 
>>>> smiles:
>>>>
>>>>
>>>> [image: Inline images 1]
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> The following does not return what I would expect:
>>>>
>>>> smarts1 = " [F,Cl,Br,I]C1=CC(C2[N,O,S]CC[N,O,S]C2)=CC=C1"smiles2 = " 
>>>> ClC1=CC(C2NCCOC2)=C(C=CC=C3)C3=C1"
>>>>
>>>> mol1 = Chem.MolFromSmarts(smarts1)mol2 = Chem.MolFromSmiles(smiles2)
>>>> *print*("mol1 is a substructure of mol2: 
>>>> {}".format(mol2.HasSubstructMatch(mol1) *print*("mol2 is a substructure of 
>>>> mol1: {}".format(mol1.HasSubstructMatch(mol2)))
>>>>
>>>>
>>>>
>>>> ð  mol1 is a substructure of mol2: False
>>>>
>>>> ð  mol2 is a substructure of mol1: False
>>>>
>>>> How could I do that?
>>>>
>>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>>
>>>> Alexis
>>>>
>>>>
>>>>>
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> 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
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>>>
>>>>
>>>
>>
>> ------------------------------------------------------------
>> ------------------
>> 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
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>>
>
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to