Hi Geoff,

I downloaded the master again for the latest updates and I've been running
into a problem that has been documented before.  That is, a "segmentation
fault" when it trys to generate 3D coordinates from a smiles string.  The
rest of the code that I have looking at VectoInts etc works fine but the
offending part of the code looks like:

    *my* *$obconversion2* = Chemistry::OpenBabel::OBConversion->*new*(); *#
conversion object*

    *my* *$obmol2* = Chemistry::OpenBabel::OBMol->*new*(); *# molecule*

    *my* *$genOp* = Chemistry::OpenBabel::OBOp::FindType(*"gen3D"*);

    *$obconversion2*->SetInAndOutFormats(*"smi"*,*"xyz"*); *# conversion
formats*

    *$obconversion2*->ReadString(*$obmol2*,*"CCC"*); *# convert*

    *$genOp*->Do(*$obmol2*);



With the final line causing the segmentation fault.


Any help here would be great as I have spent the last couple of days trying
to revert back to what I originally had without any success.  This is what
I'm passing to cmake (perl 5.20.0; gcc 4.8.3, swig 3.0.5):

CXX=/home/woodg07/software/gccBuild/bin/g++
CC=/home/woodg07/software/gccBuild/bin/gcc cmake ../openbabel-master/
-DCMAKE_INSTALL_PREFIX=/home/woodg07/software/openBabel/ -DRUN_SWIG=TRUE
-DPERL_BINDINGS=TRUE -DSWIG_EXECUTABLE=/home/woodg07/software/swig/bin/swig
-DEIGEN3_INCLUDE_DIR=/home/woodg07/software/eigen3/include/eigen3/




On Mon, May 4, 2015 at 5:45 PM, Geoffrey Wood <ge.ff...@gmail.com> wrote:

> Using version 2.3.1 with the perl bindings I used to have a piece of code
> that went something like:
>
>   *my* *$obrotorList* = *new* Chemistry::OpenBabel::OBRotorList; *# rotor
> list object*
>
>   *$obrotorList*->Setup(*$obmol*);
>
>   *$obrotorList*->FindRotors(*$obmol*);
>
>
>   *my* *$nRotors* = *$obrotorList*->Size(); *# number of rotors found*
>
>   *if* (*$nRotors* > *0* )
>
>   {
>
>      *my* *$rotor* = *new* Chemistry::OpenBabel::OBRotor; *# create new
> rotor object*
>
>      *my* *$it*=*$obrotorList*->BeginRotors();  *# an STL iterator*
>
>      *$rotor*=*$obrotorList*->BeginRotor(*$it*); *# get first rotor in
> list*
>
>      *my* *$increment*=*0*;
>
>      *for* (*my* *$j* = *0* ; *$j* < *$nRotors* ; *$j*++)
>
>      {
>
>         *my* *$v_i* = *new* Chemistry::OpenBabel::VectorInt; *# vector of
> integers for dihedral atoms*
>
>         *$v_i* = *$rotor*->GetDihedralAtoms();
>
>         *if*(*$v_i*->size() == *4* ) *# make sure that the dihedral has
> atoms --- babel returns 0's for methyls*
>
>         {
>
>          }
>
>     }
>
>
> After updating my release to the master I've found that this code doesn't
> work anymore, inparticular the line:
>
> *$v_i*->size()
>
> gives the error:
>
> Can't locate object method "size" via package
> "Chemistry::OpenBabel::VectorInt"
>
> I cannot work out why this is happening, the get function still works,
> i.e. *$v_i*->get(0)  for example.
>
> I did notice that in the OpenBabel.pm file a number of new lines have been
> added to class definitions:
>
> like:  *size = *Chemistry::OpenBabelc::VectorInt_size;
>
> Could someone help me out here?
>
>
> Thanks in advance, Geoff.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
------------------------------------------------------------------------------
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to