Dear all, in addition to being buggy, that piece of code that I hastily put together a couple of years ago is far too simplistic. I am currently working on a much better alternative, which looks promising, but is not yet finished. I should have time to finish it during the weekend of 26-27 July, and my plans are to commit it then and notify the list.
Thanks to everybody for contributions to this discussion, hear you soon p. On 15/07/14 17:28, Martin Kroeker wrote: > My apologies if this has been corrected in the meantime, but at least > part of the problem with that commit would be that in the first occurence > of boundToNitrogen->IsHydrogen() (line 367 in that github commit), > boundToNitrogen is a wild pointer - leading to the crash in Pascal > Muller's case (apparently only on 32bit x86 - and even there doing a > debug build is sufficient to mask the problem due to padding, but > probably returning a completely spurious result. > The initializsation of boundToNitrogen happens only in the second - > suspiciously similar FOR_BONDS_OF_ATOM loop (around line 383 in the > commited code segment. > > Regards > Martin > >> Dear David, >> >> thanks for the great pointer, that's very helpful. I am working on it, I >> hope I'll manage to get it done during the weekend. >> >> Cheers, >> p. >> >>> On 04 Jul 2014, at 10:59, David Hall <li...@cowsandmilk.net> wrote: >>> >>> Hi Paolo, >>> >>> Can you possibly look into what I describe in my message at >>> >>> http://sourceforge.net/p/openbabel/mailman/message/31507998/ >>> >>> Testing today, 20,081 out of 24,867 molecules from VEHICLe cannot be >>> roundtripped through the mol2 format in openbabel and be preserved. >>> >>> removing the lines of code added to mol2format.cpp in this commit: >>> >>> https://github.com/openbabel/openbabel/commit/097636fd7cdba1c842d27a80ccab809c558d0b98#diff-d6e9941b72192e2ba1a2d244948450ae >>> >>> improves this to only 3,866 molecules not being successfully roundtripped. >>> Unfortunately, deleting that code also means the pyridinium cation no >>> longer works, which has made me not want to remove it, but instead try to >>> find a fix that solves both this and the bug the code meant to fix. >>> >>> -David >>> >>> >>> >>> >>>> On Fri, Jul 4, 2014 at 5:44 AM, Paolo Tosco <paolo.to...@unito.it> wrote: >>>> Dear Pascal, >>>> >>>> thank you for reporting this - apologies for missing your previous >>>> message. It was a while ago, but I remember that I was attempting to infer >>>> the correct formal charges in the absence of explicit information in the >>>> MOL2 format. It may well be that I inadvertently messed up something. I'll >>>> have a look and see what's going wrong, then I'll get back to the list. >>>> >>>> Sorry for the inconvenience, cheers >>>> p. >>>> >>>> >>>>> On 04/07/14 09:32, Pascal Muller wrote: >>>>> >>>>> >>>>> ---------- Forwarded message ---------- >>>>> From: Pascal Muller <pascal.jm.mul...@gmail.com> >>>>> Date: 2014-05-09 10:51 GMT+02:00 >>>>> Subject: Re: [Open Babel] C++ / segfault / "open file" change? >>>>> To: babel <openbabel-discuss@lists.sourceforge.net> >>>>> >>>>> >>>>> Hi, >>>>> >>>>> Well, I got a little further. >>>>> Now, it's working with version 2.3.1, but not 2.3.2 and 2.3.90. >>>>> It seems somehow related to a "patch by Paolo Tosco 2012-06-07" in >>>>> mol2format.cpp (not yet present in 2.3.1). >>>>> >>>>> What I have with 2.3.2, when going line after line in mol2format.cpp: >>>>> >>>>> 370 FOR_BONDS_OF_ATOM(bond3, partner) { >>>>> (gdb) >>>>> 372 n_h_bonded++; >>>>> (gdb) >>>>> >>>>> Program received signal SIGSEGV, Segmentation fault. >>>>> 0x02207c48 in OpenBabel::MOL2Format::ReadMolecule (this=0x220a488, >>>>> pOb=0xbfffed50, pConv=0xbfffebd4) >>>>> at /opt/OPENBABEL/openbabel-2.3.2/src/src/formats/mol2format.cpp:372 >>>>> 372 n_h_bonded++; >>>>> >>>>> >>>>> And with 2.3.90, which has some additionnal conditions: >>>>> >>>>> 384 FOR_BONDS_OF_MOL(bond, mol) >>>>> (gdb) >>>>> 386 if (bv[bond->GetIdx()] || (bond->GetBO() != 5)) >>>>> (gdb) >>>>> 391 if ( (bond->FindSmallestRing())->Size() != 6 ) >>>>> (gdb) >>>>> Program received signal SIGSEGV, Segmentation fault. >>>>> OpenBabel::MOL2Format::ReadMolecule (this=0x22cc5d0, pOb=0xbfffed50, >>>>> pConv=0xbfffebd4) >>>>> at /opt/OPENBABEL/openbabel-2.3.90/src/src/formats/mol2format.cpp:391 >>>>> 391 if ( (bond->FindSmallestRing())->Size() != 6 ) >>>>> >>>>> >>>>> >>>>> My program read two mol2 files: a protein site and a ligand. With obabel, >>>>> I can convert the ligand, but conversion of the protein site is raising >>>>> a segfault with 2.3.2 and 2.3.90, too. >>>>> The conversion of the protein site with 2.3.1 is OK. >>>>> According to gdb, the segfault with obabel is happening on the same line >>>>> of mol2format.cpp. >>>>> >>>>> obabel 3ku0_site27res.mol2 -O 3ku0_site27res_bab.mol2 >>>>> >>>>> I attach the site mol2 file to see if somebody else has the same problem. >>>>> >>>>> >>>>> Regards, >>>>> Pascal >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Open source business process management suite built on Java and Eclipse >>>>> Turn processes into business applications with Bonita BPM Community >>>>> Edition >>>>> Quickly connect people, data, and systems into organized workflows >>>>> Winner of BOSSIE, CODIE, OW2 and Gartner awards >>>>> http://p.sf.net/sfu/Bonitasoft >>>>> >>>>> >>>>> _______________________________________________ >>>>> OpenBabel-discuss mailing list >>>>> OpenBabel-discuss@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss >>>> >>>> ------------------------------------------------------------------------------ >>>> Open source business process management suite built on Java and Eclipse >>>> Turn processes into business applications with Bonita BPM Community Edition >>>> Quickly connect people, data, and systems into organized workflows >>>> Winner of BOSSIE, CODIE, OW2 and Gartner awards >>>> http://p.sf.net/sfu/Bonitasoft >>>> _______________________________________________ >>>> OpenBabel-discuss mailing list >>>> OpenBabel-discuss@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss >> ------------------------------------------------------------------------------ >> Open source business process management suite built on Java and Eclipse >> Turn processes into business applications with Bonita BPM Community Edition >> Quickly connect people, data, and systems into organized workflows >> Winner of BOSSIE, CODIE, OW2 and Gartner awards >> http://p.sf.net/sfu/Bonitasoft> >> _______________________________________________ >> OpenBabel-discuss mailing list >> OpenBabel-discuss@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds _______________________________________________ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss