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