On 1/25/11 3:33 PM, Andrew Dalke wrote: > On Jan 25, 2011, at 4:01 PM, Pascal Muller wrote: >> Using pybel, I would like to generate a smarts with explicit H before >> doing a substructure search. > > ... >> scaffoldSmiles = mol.write("can") >> scaffoldSmarts = pybel.Smarts(scaffoldSmiles) > > The problem is this the write("can") step. It converts explicit H:s into > implicit > >>>> mol = pybel.readstring("smi", "C([H])([H])[H]") >>>> len(mol.atoms) > 4 >>>> mol.write("can") > 'C\t\n' >>>> > > I don't know if there's another pybel SMILES output option > which prevents this unification ...
I don't know about pybel, but for babel(1) there's a command-line option that may do what you need. It doesn't keep the explicit H atoms as separate atoms, but it does produce a SMARTS that has the correct H count: babel -Hcan ... h Output explicit hydrogens as such echo "[CH3]C" | babel -i smi -o can -xh C[CH3] 1 molecule converted In C++, you do it like this: OBConversion *pconv = new OBConversion; pconv->SetInAndOutFormats("smi", "can"); pconv->SetOptions("h", OBCONVERSONI::OUTOPTIONS); Craig ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss