Are you interested in aromatic c-H? It looks like 3 of 4 molecules have
hydrogens (if you count methyls)

from rdkit import Chem
from rdkit.Chem.Draw import MolsToGridImage

buff = """N#C/C(C#N)=C(C(F)=C/1F)\C(F)=C(F)C1=C(C#N)\C#N
N#C/C(C#C)=C(C=C/1F)\C(F)=C(F)C1=C(C#N)\C#N
FC1=C(F)C(C#N)=C(F)C(OC(Br)(Br)C)=C1C#N
CC1=C(F)C(C#N)=C(F)C(OC(Br)(Br)C)=C1C#N"""
smiles_list = buff.split("\n")
mol_list = [Chem.MolFromSmiles(x) for x in smiles_list]
MolsToGridImage(mol_list,molsPerRow=4)

[image: image.png]
aromatic_cH = Chem.MolFromSmarts("[cH]")
[x.HasSubstructMatch(aromatic_cH) for x in mol_list]

[False, True, False, False]


If you're just looking for hydrogens, you could do something like this.


from rdkit.Chem.rdMolDescriptors import CalcMolFormula

def has_hydrogen(mol):
    mf = CalcMolFormula(mol)
    return mf.find("H") >= 0


[has_hydrogen(x) for x in mol_list]


[False, True, True, True]


Pat



On Tue, Feb 12, 2019 at 6:40 PM Li, Xiaobo [xiaoboli] <
xiaobo...@liverpool.ac.uk> wrote:

> Dear all,
>
>
> I have a library of molecules, some of them don't have any H atom. I am
> wondering if there is a Smarts string to select these molecules using
> HasSubstructMatch function.
>
> For example,
> to select following molecules(no H atoms)
>
> N#C/C(C#N)=C(C(F)=C/1F)\C(F)=C(F)C1=C(C#N)\C#N
> FC1=C(F)C(C#N)=C(F)C(F)=C1C#N
> FC1=C(F)C(C#N)=C(F)C(OC(Br)(Br)Br)=C1C#N
>
> from
>
> N#C/C(C#N)=C(C(F)=C/1F)\C(F)=C(F)C1=C(C#N)\C#N
> N#C/C(C#C)=C(C=C/1F)\C(F)=C(F)C1=C(C#N)\C#N
> FC1=C(F)C(C#N)=C(F)C(OC(Br)(Br)C)=C1C#N
> CC1=C(F)C(C#N)=C(F)C(OC(Br)(Br)C)=C1C#N
>
>
> Or is there a better way to do it?
>
>
> Best regards,
>
>
> Xiaobo Li
>
>
>
> _______________________________________________
> 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

Reply via email to