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

Chris

>>>> is it possible with openbabel to classify a molecule based on 
>>>> substructures?
>>>>
>>>> E.g.:
>>>>
>>>> 110-dichlorodecane.sdf
>>>> alkyl chloride
>>>>
>>>> 11122334455666-tetradecafluorohexane.sdf
>>>> alkyl fluoride
>>>>
>>>> 111-trimethoxyethane.sdf
>>>> orthocarboxylic acid derivative
>>>> orthoester
>>>>
>>>> 13-dibromobenzene.sdf
>>>> aryl bromide
>>>> aromatic compound


------------------------------------------------------------------------------
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

Reply via email to