Commit Graph

1702 Commits

Author SHA1 Message Date
Greg Landrum
02027ad0bd passes all tests 2014-01-28 09:26:23 +01:00
Greg Landrum
22f904b73e merge 2014-01-28 07:30:02 +01:00
Greg Landrum
9e4ceef1bd Fixes #206 but more testing is definitely required 2014-01-28 06:44:43 +01:00
ptosco
dded46bf0d - removed a spurious #ifdef [...] #endif from
Code/ForceField/MMFF/testMMFFForceField.h
- re-prepared the SDF files from their MOL2 counterparts present in the
  original  MMFF validation suites. For this purpose a C++ program was
  written which only uses information in MOL2 files and in .fc files
  provided by Halgren. The C++ program does not depend on RDKit.
- re-prepared the SMILES files from their SDF counterparts using
  a Python script which calls MolToSmiles()
- found an issue which affects 2 files in the test suite, namely
  ERULE_05 and PO02A (only the hypervalent notation). The issue is
  connected with removal of hydrogens bonded to phosphorous and
  appears to be fixed by the modifications in Code/GraphMol/AddHs.cpp
  and Code/GraphMol/SmilesParse/SmilesWrite.cpp. This issue is
  independent of the changes ini the SDF files; indeed, it has
  always been present, and had been previously addressed by
  manual correction of the two SMILES strings
2014-01-27 19:05:49 +01:00
Greg Landrum
df0aaa29fb smiles parser optimization for those without bison 2014-01-27 17:56:22 +01:00
Greg Landrum
5ee22df4c4 small optimizations for smiles parser 2014-01-27 16:54:32 +01:00
Greg Landrum
2c7c272216 Merge pull request #202 from ptosco/master
Fixed data race condition in Code/GraphMol/MolAlign/testMolAlign.cpp
2014-01-24 22:58:39 -08:00
Greg Landrum
81de25cb43 add thread libs to a couple of tests 2014-01-25 05:58:51 +00:00
ptosco
bc88b4393d - Fixed a bug in Code/GraphMol/MolAlign/testMolAlign.cpp which caused
data races in the multithreaded test
- Removed a spurious #include in Code/ForceField/Wrap/ForceField.cpp
- Restored caching in Code/GraphMol/Descriptors/Crippen.cpp
2014-01-24 14:20:34 +01:00
Greg Landrum
c73792bb21 passing all tests 2014-01-24 05:16:56 +01:00
Greg Landrum
5d7dcbc22c caching the crippen contribs is not thread safe, so remove it for now 2014-01-24 05:16:40 +01:00
Greg Landrum
84f5c3eef7 Merge branch 'master' of https://github.com/ptosco/rdkit into ptosco-master 2014-01-23 05:20:28 +01:00
ptosco
4fbc005baa - Refactored the O3A code to allow for different cost, weight
and scoring functions

- Added cost, weight and scoring functions using atom-based
  Crippen logP contributions

- Added relevant tests for the new functionality

- Fixed a bug in the O3A::trans() method (it returned the
  weighted RMSD and not the unweighted one as O3A::align())
  Also the API of the method has been changed (now it takes
  a reference to a Transform3D object rather than returning
  a pointer to a newly created one)

Important points:
-----------------

- The constructors now accept optional pointers to
  MolHistogram objects instead of pointers to arrays of
  double. I think it is better for performance, since
  rebuilding the histogram involves running through two
  nested loops over all atoms, even though the
  3DDistanceMat is provided to the O3A constructor.
  This change breaks binary compatibility with previous
  C++ programs linking to RDKit MolAlign library; I do not
  think this is big issue, and while I was there I made
  other changes which cause binary incompatibility.
  If needed, we may preserve binary compatibility
  reverting the MolHistogram change and the other ones.

- From Python, nothing changed in the interface to previous
  MMFFO3A functionality. It MIGHT be more appropriate to
  change the "GetO3A()" function into "GetMMFFO3A()", but
  I have not done that to avoid breaking existing scripts;
  the choice is yours

- As of now, the code contains a number of conditional
  compilation directives checking for the
  USE_O3A_CONSTRUCTOR macro; if USE_O3A_CONSTRUCTOR is
  defined, then the code is built with an alternative O3A
  constructor which allows choosing whether one wishes
  to use MMFF or Crippen descriptors. Otherwise, no
  alternative constructor is built, but rather two
  functions which return a pointer to an O3A object.
  I prefer by far the first solution (namely, with
  USE_O3A_CONSTRUCTOR defined), but again, the choice is
  yours. The code is tested and works in both cases.

- Custom cost, weight and scoring functions can easily
  be defined in external programs without need to rebuild
  the RDKit, allowing flexibility. The new custom
  functionality can be accessed by calling the "bigger"
  O3A constructor.
2014-01-22 19:37:08 +01:00
ptosco
c74437a086 - Refactored the O3A code to allow for different cost, weight
and scoring functions

- Added cost, weight and scoring functions using atom-based
  Crippen logP contributions

- Added relevant tests for the new functionality

Important points:
-----------------

- The constructors now accept optional pointers to
  MolHistogram objects instead of pointers to arrays of
  double. I think it is better for performance, since
  rebuilding the histogram involves running through two
  nested loops over all atoms, even though the
  3DDistanceMat is provided to the O3A constructor.
  This change breaks binary compatibility with previous
  C++ programs linking to RDKit MolAlign library; I do not
  think this is big issue, and while I was there I made
  other changes which cause binary incompatibility.
  If needed, we may preserve binary compatibility
  reverting the MolHistogram change and the other ones.

- From Python, nothing changed in the interface to previous
  MMFFO3A functionality. It MIGHT be more appropriate to
  change the "GetO3A()" function into "GetMMFFO3A()", but
  I have not done that to avoid breaking existing scripts;
  the choice is yours

- As of now, the code contains a number of conditional
  compilation directives checking for the
  USE_O3A_CONSTRUCTOR macro; if USE_O3A_CONSTRUCTOR is
  defined, then the code is built with an alternative O3A
  constructor which allows choosing whether one wishes
  to use MMFF or Crippen descriptors. Otherwise, no
  alternative constructor is built, but rather two
  functions which return a pointer to an O3A object.
  I prefer by far the first solution (namely, with
  USE_O3A_CONSTRUCTOR defined), but again, the choice is
  yours. The code is tested and works in both cases.

- Custom cost, weight and scoring functions can easily
  be defined in external programs without need to rebuild
  the RDKit, allowing flexibility. The new custom
  functionality can be accessed by calling the "bigger"
  O3A constructor.
2014-01-22 19:31:50 +01:00
ptosco
18bfae88b7 - Refactored the O3A code to allow for different cost, weight
and scoring functions

- Added cost, weight and scoring functions using atom-based
  Crippen logP contributions

- Added relevant tests for the new functionality

Important points:
-----------------

- The constructors now accept optional pointers to
  MolHistogram objects instead of pointers to arrays of
  double. I think it is better for performance, since
  rebuilding the histogram involves running through two
  nested loops over all atoms, even though the
  3DDistanceMat is provided to the O3A constructor.
  This change breaks binary compatibility with previous
  C++ programs linking to RDKit MolAlign library; I do not
  think this is big issue, and while I was there I made
  other changes which cause binary incompatibility.
  If needed, we may preserve binary compatibility
  reverting the MolHistogram change and the other ones.

- From Python, nothing changed in the interface to previous
  MMFFO3A functionality. It MIGHT be more appropriate to
  change the "GetO3A()" function into "GetMMFFO3A()", but
  I have not done that to avoid breaking existing scripts;
  the choice is yours

- As of now, the code contains a number of conditional
  compilation directives checking for the
  USE_O3A_CONSTRUCTOR macro; if USE_O3A_CONSTRUCTOR is
  defined, then the code is built with an alternative O3A
  constructor which allows choosing whether one wishes
  to use MMFF or Crippen descriptors. Otherwise, no
  alternative constructor is built, but rather two
  functions which return a pointer to an O3A object.
  I prefer by far the first solution (namely, with
  USE_O3A_CONSTRUCTOR defined), but again, the choice is
  yours. The code is tested and works in both cases.

- Custom cost, weight and scoring functions can easily
  be defined in external programs without need to rebuild
  the RDKit, allowing flexibility. The new custom
  functionality can be accessed by calling the "bigger"
  O3A constructor.
2014-01-22 19:30:29 +01:00
Greg Landrum
deed4a9acf Merge branch 'Issue194_V3000MolWriter'
Conflicts:
	Code/GraphMol/Chirality.cpp
	Code/GraphMol/FileParsers/test1.cpp
2014-01-22 07:07:27 +01:00
Greg Landrum
aab11535e8 Fixes #196 2014-01-16 02:07:03 -05:00
Greg Landrum
7ffd918143 Fixes #195 2014-01-16 01:52:58 -05:00
Greg Landrum
53a2937eb6 Fixes #194 2014-01-15 03:19:26 -05:00
Greg Landrum
c13a643e06 Fixes #191 2014-01-12 05:42:50 +01:00
Greg Landrum
e38e60d283 Fixes #186 2014-01-11 06:01:30 +01:00
Greg Landrum
5dca39e2f7 Fixes #187 2014-01-11 05:38:11 +01:00
Greg Landrum
0ce8f23c6e further R group handling 2014-01-10 04:24:22 +01:00
Greg Landrum
f653e9e961 more isotope fixing 2014-01-08 06:51:48 +01:00
Greg Landrum
4b72d1b153 add (non-standard) handling of R groups to v3k mol parser 2014-01-08 05:22:15 +01:00
Greg Landrum
763543ef70 a couple more tweaks from Jan 2014-01-07 05:55:54 +01:00
Greg Landrum
63f1f4d752 update .cmake files corresponding to flex/bison source changes 2014-01-04 16:49:14 +01:00
Greg Landrum
03a5d8ac81 boost_system not required 2014-01-04 16:48:57 +01:00
Greg Landrum
fb4910b9fa cleanup a residual declaration so that the java builds work again 2014-01-02 07:33:06 +01:00
Greg Landrum
bf313e683f cleanup the AddFragToMol() code a bit to support multiple bookmarked atoms 2014-01-01 18:12:49 +01:00
Greg Landrum
11af614ebc more cleanups of this stuff 2014-01-01 17:35:35 +01:00
Greg Landrum
64366007e1 more C++ style cleanups 2014-01-01 17:16:25 +01:00
Greg Landrum
03b333734e some C++ style cleanups 2014-01-01 16:50:09 +01:00
Greg Landrum
57bdcc5d3f some cleanups areound the Invariant code 2014-01-01 16:39:53 +01:00
Greg Landrum
7eca2ead35 Fixes #149 2014-01-01 09:24:06 +01:00
Greg Landrum
a53cb2c9e6 Fixes #185 2014-01-01 08:18:17 +01:00
Greg Landrum
3f90cecd9c Fixes #164 2013-12-31 08:27:09 +01:00
Greg Landrum
924fc373ef Fixes #165 2013-12-31 07:52:08 +01:00
Greg Landrum
47afcc1f53 remove some debugging printing 2013-12-31 07:12:40 +01:00
Greg Landrum
0a421d8aa5 Fixes #182 2013-12-31 07:11:31 +01:00
Greg Landrum
6dbd804121 clean up the way the unicode strings are handled and broaden suport a bit 2013-12-30 16:11:09 +01:00
Greg Landrum
e7ad13929b Fixes #179
could be more elegant, but works for MolFromSmiles and MolFromSmarts
2013-12-30 09:02:43 +01:00
Greg Landrum
bb59487648 add tests for the kekulize and forceV3000 options 2013-12-30 07:14:16 +01:00
Greg Landrum
3fe2e13afd support forcing V3000 writing and kekulization in the SDWriter
Fixes #174
2013-12-30 06:58:48 +01:00
Greg Landrum
355556b7de get atom lists working 2013-12-29 07:05:25 +01:00
Greg Landrum
0b8bd3079d fix isotope handling in V3K 2013-12-28 07:37:52 +01:00
Greg Landrum
d280c90117 a few more tests and a fix to not print empty bond blocks 2013-12-26 07:40:16 +01:00
Greg Landrum
9e91538d64 get rgroups working 2013-12-25 08:18:44 +01:00
Greg Landrum
329841d9ba add some tests; add radicals to output 2013-12-24 06:56:12 +01:00
Greg Landrum
2ee9f1c02a add to python wrapper 2013-12-23 06:43:12 +01:00