* Add a new parameter to mol_adjust_query_properties for generic query parameters (#46)
Adds a new parameter to mol_adjust_query_properties:"setGenericQueryFromProperties"
that defaults to false (so no change of behavior until used).
This PR also removes the previous way of doing it that involved reprocessing the query molecule for every comparison.
On datasets of 200k molecules the speed-up is between 2 (large complex substructure searches with repeating units) to 5 times (tiny substructures search).
Add support for generic query in PG cartridge
* Add generic groups to the lib
* Move the querying with generic groups out of MolOps to not bloat the library.
* Fix Python calls
* Update doc
* Proof that last 3 commits are mine.
* Fix missing headers
* Fix typo
* Fix call
* Fix calls
* suggested changes
* Update Code/GraphMol/GenericGroups/GenericGroups.h
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Add adjustquery test with default parameters.
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* make sure we don't try to access an SG which no longer exists
* Fixes#6479
updates a bunch of tests to support this
* test ring stereo too
* update expected results from the tests
* Add optional sortsupport methods to the bfp and mol/qmol indices
* update the postgres version to be removed
* Revert "update the postgres version to be removed"
This reverts commit 59c6eb12dd.
* install the specific version of postgresql-client
* try pinning postgresql-common too
* try something else
* try something else
* try configuring cmake with explicit paths to version 12
* try uninstalling libpq5
* check if it's possible to run the cartridge test build w/ pg14
* Revert "check if it's possible to run the cartridge test build w/ pg14"
This reverts commit f1c2f9f783.
* fix the updated cartridge version number
* do not by default enable the sort_support method for the bfp gist index
* backup
* does not work
* backup
* passes all tests
send more tests!
* backup
* seems to mostly work
needs cleanup still
* more tests + python wrappers
* more testing
* some cleanup
* fix problem with newer boost
* be more expansive about unsaturation
* be symmetric in choosing the starting bond
fix a test error
* passes all tests;
passes ChEMBL regression test
* docs
* update cookbook
* expose the new hash function to the cartridge too
* support v2 hash in the registration hash
* better testing
* alternate, simpler approach for that
* remove vestigial docs
* Add support for generic matching in the PgSQL cartridge
Two new operators (and their inverse) `mol @>> q?mol` and `q?mol @<< mol` where q?mol getGenericGroups::setGenericQueriesFromProperties is applied to convert sgroups to query atoms and enable useGenericMatchers in the substructure matcher.
(q?mol means qmol or mol)
* Only transform the query once
* Revert "Only transform the query once"
This reverts commit 1873268cf6.
* - renamed Code/PgSQL/rdkit/README to Code/PgSQL/rdkit/README.md such that markdown can be used
- updated Code/PgSQL/rdkit/README.md with updated instructions how to build and install the PostgreSQL on all supported OSs
- fixed an issue with the PgSQL install script on Windows where the path to the update_sql directory was incorrect
* changes in response to review
* resolves it; needs more testing and cleanup
* still flailing a bit
* update expected test results
* cleanup
* revert extraneous changes
* revert these to master, will do this in a separate PR
* revert these to master, will do this in a separate PR
* back to master
* add function to canonicalize enhanced stereo representations
* use enhanced stereo in canonicalization
* Fixes#6045
enables the doc tests for EnumerateStereoisomers.py
Re-enables the BRICS tests
* some things work... tests need to be updated
* c++ and python tests pass
* update expected psql results
* run the canonicalization on SMILES generation;
c++ and python tests pass
* cartridge and java tests pass
* update doctests
* Change atom to metal bonds from single to dative if appropriate.
* Pedantic change whilst I was in the area.
* Reinstate all tests, leave in debugging writes to see failing tests.
* Re-did it. Failing tests now pass.
* Move any positive charge from the non-metal to the metal.
Fix expected test results.
* Write dative bond to JSON.
* Bump currentRDKitJSONVersion to 11, but allow parser to still read 10.
* Only move 1 unit of charge at a time from non-metal to metal.
* Greg's hack to not do it for O+ and N+ etc.
Explicitly exclude H, He, F, Ne from dative bonds.
Fix tests.
* Update expected PostGres json version to 11.
* suggestions for PR
* Correct comment.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* write stereogroups
* Parse stereogroups
* add parameters to python wrappers
* more tests
* write substancegroups
* parse SubstanceGroups
* Fix a crashing bug with null molecules
* more testing
* add some docs
* update expected cffi results
* oh, this is delightful syntax
* adapt minimallib and the cartridge tests
some small cleanups
* stupid padding
* update expected
* changes in response to review
* stop using CIP codes in the atomic canonicalization
this will change results in some cases, so lots of tests need to be updated.
* stop breaking string literals... ARGH
* tests now pass
* update double bond canonicalization
* update a python test
* some cleanup
* update expected results for cartridge
* revert duplicate chunk in release notes
* replace deprecated ifdefs
This one gets rid of USE_BUILTIN_POPCNT and RDK_THREADSAFE_SS
use RDK_OPTIMIZE_POPCNT or RDK_BUILD_THREADSAFE_SSS instead
* get rid of BUILD_COORDGEN_SUPPORT from ROMol.i
* fix a stupid typo
* update release notes
* Fixes#5095
* add some casts to make that a bit less disruptive
* go back to the simpler form for constructing the test table
* fix release notes
* do cleanup step too
* updates in response to review
* Nonchiral atoms should be removed from StereoGroups
This fixes a bug where atoms which have no chirality were left in StereoGroups
In order to make this work, ROMol::setStereoGroups() needed to be made public.
That shouldn't be a problem since it doesn't change connectivity.
* fix some broken old tests
* update cartridge tests
* preliminary
* all tests pass
* cleanup
* more testing!
* we do still want to raise errors for aromatic atoms not in rings
fix one missed change for mol blocks
* update expected results for psql test
* fixes#4787
* additional test
* version bump
* do the same thing with SMILES
* Update Code/PgSQL/rdkit/adapter.cpp
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
* refactor cleanupRDKitCache for readability
* fix the indentation
* add comments
* add some comments
* allocate/deallocate the cache holder in the associated memory context
* exit the cache holder memory context callback once done
* more consistent use of the memory context from ValueCache
* refactor the cleanupRDKitCache callback
* minor changes to comments and renaming variables
* fixes#4681
* fixes a few Windows build problems
* added comments to adapter.cpp to explain the changes
* get PostgreSQL to build on Windows with both MSVC and MinGW compilers
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
* remove deprecated useCountSimulation argument
* remove the mol_from_smarts() function from the cartridge
* remove the balabanj
* a couple final cleanups to the countSimulation thing
* document changes
* Fixes#4442
* add qmol_from_json()
* allow casting from mol->qmol
* avoid repeating ourselves
* add chiral substructure functions and operators
not available with indices yet
* remove the @@> operators
since I can't figure out how to support them in the index
* update some expected results that changed with previous fixes
* Fixes#4386
* try to actually generate an error when the cartridge tests fail
* update azure pipelines cartridge builds
* ensure psql dev env is there
temporarily disable other azure pipelines builds
* psql version
* gather info
* gather info
* gather info
* gather info
* gather info
* more descriptors
* try forcing psql12
* remove the package correctly
* remove the package correctly
* remove the package correctly
* sooo much fun
* sooooo much fun
* seems to be working now, enable the others
* support v3k output in cartridge
* tests do not pass
* docs
* update expected tests
* Start providing an update script for the cartridge
* update readme
* support enhanced stereo in cartridge
* it makes more sense to bump the cartridge version to 4.0
* add MolToJSON to cartridge
* add mol_from_json
* docs update
* changes in response to review
* set all source code files to have native line endings
* normalized all source code line endings
Co-authored-by: Paolo Tosco <paolo.tosco@novartis.com>
* 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>