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