* remove no-op macros and dead code (pt 2)
* test failures due to whitespace changes?
* actually run the testFeatures tests
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* ci updates
* forgotten update
* inch by inch
* remove unused variable
* try a gcc bump
* get rid of a bunch of unused-but-set errors in clang16
* be more selective
* disable a test in an obsolete module which is mysteriously failing
* Support tautomer queries in RGD
* Continuing RGD and tautomer development
* Python and C# tests
* Python and C# tests
* C# test
* Typo fix
* For cire tautomer query update properties instead of full sanitization
* Added query comment
* Code review change
* Support Enumeration of input cores
* Mol enumeration test
* Remove useNormalMatch from RGroupDecomp
* Added comments for handling tautomeric core
* Added comments for handling tautomeric core
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Initial development and test
* Sort of working tests
* Copy corodinates to new core
* Clear stereochemistry on core atoms with unlabelled rgroups
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Continuing development
* Updated development
* Fixed Chirality Issues
* All tests working
* Remove some unused code
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Working tests
* Tidy test code
* Adjust catch_rgd for stereochemistry in output cores
* Build ring info in output cores
* Fix Mac OS bug
* Fix for MCS and onlyMatchAtRGroups
* Brian's optimization suggestion
* Fix core group coordinate bug
* Test for replaceCore and multiple core bonds to chiral atom
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Update Code/GraphMol/RGroupDecomposition/RGroupDecompParams.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/GraphMol/RGroupDecomposition/RGroupDecompParams.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Changes in response to Greg's code review
* R group stereo bond attachment fix
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fixed typo in tests
* Undo change to master
* Undo change to master
* Recalculate core dummy positions for hydrogen only r groups
* Undo change to master
* Fixed typo in tests
* Undo change to master
* Greg's code review changes
* Fix for RGD dummy atom bug
* Also fix labelling issues in the R group containing input dummy atom
* minor tweaks to the proposed fix
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* MolDraw2D refactoring
- rename setupMoleculeDraw->initMoleculeDraw
- track whether or not initDrawing() has been called
- centralize calls to initDrawing() and clearDrawing() into initMoleculeDraw()
- update svg hashes in tests
* update some expected test results
* support changing font scale and default scale
add reaction test
* does not work... this is hard
* all tests pass
* do something about legends
* docs
* more tests
* more docs
* cleanup
* going around in circles...
hopefully converging
* cleanup
* Single bond skeleton works.
* Simple bond drawing seems to be working.
* Initial addition of atom symbols.
* Stash of not-quite-working atom symbols prior to major surgery.
* Atom symbols seem to be working. Major surgery not required, just inverted Y coords at the outset.
* Add classes to atom labels.
* Renamed AtomLabel AtomSymbol.
* Add highlights.
* Fix bug from PR4839.
* Molecule note.
* Added atom notes.
* Added bond notes.
* Extract radicals.
* Annotation via new DrawAnnotation class.
* Add brackets.
* Add linknodes.
* Add close contacts.
* Add attachment points. Fix wavy lines.
* Draw molecules in grid.
* Tidy.
* Fix radicals when font has hit maxFontSize.
Make getDrawCoords work.
* Draw primitives take atom or draw coords.
* Fix legends.
* More fixing for tests. DrawMol::setScale now takes font scale as well.
* tidy debug writes
* Variable fraction of panel for legend.
* Better legend positioning.
* Fix sub- and super-script spacing.
Added spaces to Freetype strings.
* Basic reaction drawing.
* Reaction highlighting.
* Minor tweak to reacctions.
* Tweaked reaction DrawMol widths.
* Fix atomTags.
* Fix catch tests except contours.
* Contouring working in catch_tests.cpp.
* Fix catch tests.
* AtomSymbol and DrawAnnotation into MolDraw2D_detail.
* DrawMol and DrawShape into MolDraw2D_detail.
* DrawText inot MolDraw2D_detail.
* Machete out.
* DrawText goes private.
* Move some stuff about, such as StringRect to its own header.
* Python wrapper compiles (but crashes when Draw imported).
* More tidying. Python DrawArrow failing.
* Linux changes.
* Fixed error in DrawShapeArrow spotted by valgrind.
Fixed some warnings from gcc.
* Maybe fixed DrawArrow.
* Added basic argparse interface.
* Added newlines.
* Changes in response to review.
Non-const args in move constructors and operator=.
Added missing classes to MolDraw2D_detail.
Deleted move operator= where it had been forgotten.
Fixed copyright dates.
* Deleted all default c'tors in derived classes.
* Changes in response to review:
Wedge widths now a proportion of mean bond length in draw coords..
Add padding below legend when positioning it.
* Fix tests.
* Fix the private/protected mess of the new classes.
* Moved doesLineIntersect etc.
* Reinstate original alignString for non-FT drawings.
* More faffing about with reaction layouts.
* Fix font sizes in testGitHub3391.
* Fix atom notes fitting inside fat wedges.
* Fix molecule annotation font size.
* More fixes of rectangle/triangle collision detection.
* Test for highlight linewidth multiplier.
* Use push_back not emplace_back.
* Attempt at better Freetype char spacing.
* Option to turn off TEST_ASSERT. Currently off.
* Fixed embarrassing maths to do with wedge fatness.
* More tidying post-review.
* Document highlight_linewidth_multipliers.
* Expose baseFontSize to Python.
* Changes in response to review.
* Allow DrawMolecules molecules to be drawn to different scales.
* Fix bond sneaking between C:8 in, for example, reactions.
* Fix bad re-factoring.
* Fix globbing.
* Changes in response to review.
* Add invariant check.
* Add draw option to fix font size.
* suggested changes
* Update catch test results.
* Fix expected freetype results.
* Fix non-freetype drawers.
* Fin non-freetype test results.
* get the Qt drawer working too
* Fix disappearing reaction highlights.
* Changes as result of review.
* Fixed non-FreeType hash codes for reaction SVGs. Extra comment in catch_tests.
* reactant highlighting was clearning properties
* Fix for failing contour python test.
* fix a non-freetype problem
* swig wrappers working
* Bump timeouts in test.
Co-authored-by: greg landrum <greg.landrum@gmail.com>
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* Later cores with more R-groups should only be chosen when they are structurally related, i.e. when they are superstructures of earlier cores
* Update Code/GraphMol/RGroupDecomposition/testRGroupDecomp.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/GraphMol/RGroupDecomposition/testRGroupDecomp.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Support wildcard in input structures
* Fix typos
* Handle R groups containing a single wildcard and wildcards with group numbers
* Reorder tests
* Use propety instead of isotope to mark input dummy
* fix the windows DLL builds
* Added constexpr for dummy input atom property
* Omitted to replace one instance of string 'INPUT_DUMMY'
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* speed up scoring of permutations by clever caching of already settled
matches rather than recomputing scores for all matches every time
process() is called
* changes in response to review
* changes in response to review
Co-authored-by: Paolo Tosco <paolo.tosco@novartis.com>
* - fix non-threaded *nix builds that currently fail because
boost flyweight introduces a dependency on pthreads
- make sure that mutexes and futures are only used when
RDK_BUILD_THREADSAFE_SSS is ON
- fix SubstructMatch failing test when RDK_BUILD_THREADSAFE_SSS is OFF
due to misplaced #ifdef's
- rename RDK_TEST_MULTITHREADED to RDK_THREADSAFE_SSS in inchi.cpp
(which is not a test)
* - the limitexternal Linux build is now single-threaded so we make
sure single-threaded builds do not break in the future
(suggestion from Greg)
* reverted unnecessary change to Code/GraphMol/FileParsers/testMultithreadedMolSupplier.cpp
Co-authored-by: Paolo Tosco <paolo.tosco@novartis.com>
* Most tests working
* All tests working
* Fixed tests after merge with master
* Create header and implementations for RCore
* Updated comments
* Removed old code
* DLL export for MolMatchFinalCheckFunctor
* Information line for failing Mac test
* Log replace core behaviour
* Ordering fix for OSX
* Possible fuzzer fix
* Removed debug output
* Fix unmatched user R group bug
* Code review changes
* Bug fix and ChemTransforms test
* - do not add unncessary R-labels
- use a boost::dynamic_bitset rather than a std::set for lookups
* - R group labels can be >0 or <0, not 0, so no need to check for >=0 when looking for user labels
- as soon as a core is found that requires no additional labels to accommodate a molecule, bail out from the loop as no better core can be found
- add a test to better describe the use case for this change
- remove a signed/unsigned warning
* - added an entry to Release Notes to describe the impact of #3969
* avoid French expressions in Release Notes
Co-authored-by: Paolo Tosco <paolo.tosco@novartis.com>
* Make sure that added R-groups have non-zero coordinates
* - renamed setHydrogenCoords to setTerminalAtomCoords (and parameters accordingly)
- switched from ROMol* to RoMol& to remove a PRECONDITION
- documented the newly exposed C++ function
- added a Python wrapper
- added C++ and Python tests
* fixed conflicts and added a test
* Update Code/GraphMol/RGroupDecomposition/testRGroupDecomp.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/GraphMol/RGroupDecomposition/testRGroupDecomp.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/GraphMol/MolOps.h
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/GraphMol/Wrap/MolOps.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* changes in response to review
Co-authored-by: Paolo Tosco <paolo.tosco@novartis.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fixes#3924
The scoring function was not taking into account empty rgroups which biased certain
arrangements of rgroups that didn't have an rgroup at every position.
* Change in response to review
* Rigger the no_rgroup into EMPTY_RGROUP
* Remove Fix Me label from the geminal rgroup test
* add testUserMatchTypesDefaultScore to test default score on user types
* Fix scoring RGroups with split attachments [*:1]O.[*:1]N.
* Test both scoring functions for testMutipleCoreRelabellingIssues and testUnprocessedMapping
* Update testRGroupInternals.cpp
remove a couple obsolete comments as suggested in review
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Tests for default function failures
* Revert tests
* Fix linker matches in the case that they span multiple rgroups
* Change to test required by linker fix
* Update based on Brian's changes
* get windows dll builds working
Co-authored-by: Brian Kelley <fustigator@gmail.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* make sure that unlabelled R-groups on aromatic nitrogens have correct valence and formal charge to avoid kekulization failures
* change in response to review
Co-authored-by: Paolo Tosco <paolo.tosco@novartis.com>
* RGD modifications for any atom and index labels
* Continued development
* All tests working
* Added comment
* CR changes suggested by PTosco
* Fix catch_rgd for autocrlf
* Core dummy matches on output. RGroups on heavy atom. Dummy atoms User rgroups only when they are degree 1.
* Start work on test fixes
* testRGroupDecomp test working
* CPP and Python tests working
* Removed options for matching core query atoms on sidechains
* Windows build fix
* R groups off ring. User group matches single heavy substituent. Remove extraneous hydrogens
* Updated fingerprint variance score and tie selection
* Refactor fingerprint variance score functions to class
* Removed fingerprint distance score
* Boost::trim fix
* Updated RGD test notebook
* Fixed AddHs.cpp
* - fixes the kekulization issue
- avoids that empty R-group labels are included in cores
- makes sure that SMILES cores are always canonical
- adds a few missing const declarations and avoids unintentional copying
* Support for allowNonTerminalRGroups parameter. Remove R groups that contain H or Nothing. Ignore R group labels on non-dummy atoms
* Fixed tests for Paolo's changes. Rebuilt test notebook. Increased weighting of rgroup penalty in fingerprint variance score
* remove some debug output
Co-authored-by: Brian Kelley <fustigator@gmail.com>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* cleanup a bunch of g++ warnings
* make it work with clang
* remove some additional warnings based on CI builds
* fix that version number
* stop being verbose when building
* Improve consistency in R-group tables involviing symmetric groups
* applied clang-format
* much simpler fix
* use equivalent but simpler regex
* changes in response to review
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
* Exploration
* Initial work on GA fro Rgroup Symmetry
* GA for rgroup decomp and fingerprint rgroup symmetry scoring
* Continuing development
* Exploration
* Initial work on GA fro Rgroup Symmetry
* GA for rgroup decomp and fingerprint rgroup symmetry scoring
* Continuing development
* Further development
* Continued tweaks
* Function rename
* Continued tweaks
* Bug fix for variance calculation
* Copyright notices. Remove Eigen dependency. RdKit logging. Clock fix.
* Changes to fix build failures
* Fixes for Windows dynamic DLL build
* Included GA export.h file
* Fixed RGroupDecomp CMakeLists.txt
* Notebooks working, GGroup labelling bug fixed
* Fix windows build. More options for example GA program
* More bugs found and tests adjusted
* Fixed Python rgroup test
* Trivial change to trigger CI
* OSX java and windows build fixes
* Windows DLL fix
* Fix segmentation error
* proposed change
* Possible fix for segmentation fault
* CR fixes
* CR fixes
* CR fixes
* Recreates molecules from rgroups where possible
Co-authored-by: greg landrum <greg.landrum@gmail.com>
Co-authored-by: Brian Kelley <fustigator@gmail.com>
* - replaced set with vector for SMILES-based R-group equivalence
- the first GreedyChunk is constituted by chunkSize+1 mols
- labeled R-groups may not be extracted when onlyMatchAtRGroups==false
- labeled geminal R-groups are incorrectly scored
- my attempt to introduce consistency in R-group labeling was buggy
- added a DEBUG pre-processor directive to the tests to make debugging easier
- added a unit test
- fixed unit test results which were inconsistent with the expected behavior
* changes in response to review
* - Fixes three bugs in the R-group decomposition code
* - delete iterator properly during loop so the Mac does not complain
* added more tests
Co-authored-by: user173873 <user173873@FF026.local>
* - removes an unnecessary O(n) complexity in setting the constant core_atoms_with_user_labels set
- provides a better and more general fix to github #1705
- makes sure that the best R group permutation is chosen based on a stable sorting criterion
* - changes in response to review
* reverted from compute_heavy_rgroup_counts() to compute_num_added_rgroups()
* Suppress warning in removeHs due to having a lot of dummy atoms
Co-authored-by: Brian Kelley <fustigator@gmail.com>
* stop returning local memory in exceptions
* remove a couple unnecessary copies in loops
* fix a bug in the way the default MMFF aromatic parameters are constructed
* remove a bunch of loop-variable warnings
* remove a bunch of clang warnings
* disable clang warnings in python wrappers
* remove some warnings when building the python wrappers
* refactor RGroupDecompositionParameters to directly initialize data members
add params getter for the RGroupDecomposition object
* initial implementation of timeout
* refactor the timeout check
We could move the function that checks and throws the exception somewhere else
* re-enable the tests I stupidly left disabled
* Fixes#3224
add option to skip symmetrization entirely
* test #3224
* stupid mistake
* run clang-tidy with modernize-use-default-member-init
* results from modernize-use-emplace
* one uniform initialization per line
otherwise SWIG is unhappy
Co-authored-by: Brian Kelley <fustigator@gmail.com>
* run clang-tidy with readability-braces-around-statements
clang-format the results
clean up all the parts that clang-tidy-8 broke
* fix problem on windows