On 9 December 2012 21:03, David van der Spoel <sp...@xray.bmc.uu.se> wrote: > On 2012-12-09 11:36, Chris Morley wrote: >> On 08/12/2012 21:32, David van der Spoel wrote: >>> On 2012-12-08 17:42, Noel O'Boyle wrote: >>>> C:\Users\Noel>obabel -:c1(Br)cc(Br)ccc1 -ofpt -xf fp4 -xs >>>>> >>>> Arylbromide Aromatic >>>> 1 molecule converted >>>> >>> Great, I can reproduce that. >>> Is there a simple way of getting this functionality from the source >>> code? I don't see any member functions in OBMol that could provide this? >> >> As well as the core API, OpenBabel has some of its functionality in >> plugins. The code for the above feature is in the API code >> fingerprint.cpp, and in the plugins fingerprintformat.cpp and >> finger3.cpp. Probably the easiest way to access it is to use OB's >> conversion framework (Imitate the command line.). Something like: (untested) >> >> ifstream ifs(13-dibromobenzene.sdf); >> if(!ifs) >> return false; >> OBConversion conv(&ifs, &cout); >> if(!conv.SetInAndOutFormats("sdf", "fpt")) >> return false; >> conv.AddOption("f", OBConversion::OUTOPTIONS, "FP4"); >> conv.AddOption("s"); >> conv.Convert(); >> >> If you already have the OBMol, conv.Write() will do the output half. >> >> See http://openbabel.org/dev-api > > Thanks, I now use this which works: > > if (conv.SetOutFormat("fpt")) > { > conv.AddOption("f", OpenBabel::OBConversion::OUTOPTIONS, > "FP4"); > conv.AddOption("s"); > conv.Convert(); > cout << conv.WriteString(mol,false); > } > > however, it gives me output that is not very nice for e.g. > N,N-dimethylaniline > > > > Amine Tertiary_mixed_amine Aromatic C_ONS_bond Rotatable_bond > > It would be nicer to get this in a more ordered manner, like a vector of > strings. Also, the first three terms make sense to me but the last two > seem not very useful. Any more tips?
Just write your own code. All it's doing is SMARTS matching using the patterns in the text file for FP4. - Noel ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss