* Fixes a bug with chirality perception of T-shaped centers in very large rings
* remove those files from the chemdraw tests
should be added later once we figure out and fix what the problem on the chemdraw side is (it is not directly connected to this PR)
* be more systematic about the tolerance values
carry the same tolerances over into the bond wedging code
* re-enable those chemdraw tests
* typo
* Iterated interface to substructure search
* Add a test
* Add python unit test
* Expose the toTryChunkSize parameter to python
* Respect the maxHits parameter; sort the hitset
* Treat maxHits=-1 as infinite
* Add callback versions of fp and rascal search; conform to C++ style
* Add fp and rascal C++ tests
* maxHits=-1 tripped me up again
* Add fp and rascal python wrappers.
Changed the name of the callback-based method to have "Incremental"
in the name because the overloaded versions with default arguments
can't be reliably selected by the boost python runtime. Probably
better to have a different method name anyway since the return type
is None instead of a results object.
* Delete stray printf.
* Run clang-format
* Use std::int64_t instead of ssize_t for portability
* Make docstrings on callback-based methods more descriptive
* Stop incremental search if the callback returns true.
* Add an example of incremental synthon search to the getting started docs
* trivial commit to force CI rerun
* Reformat single line if statements.
* Make SearchResultsCallback take const ref input
* Fix another one-liner
* Oops - another one-liner
* Do not reset the ringInfo information when adding bonds
This call was inconsistent (for example, the version of addBond() in ROMol did not do it)
and is unnecessary since the standard assumption is molecules need
to be re-sanitized after adding atoms and bonds
* response to review
clear the property cache on atoms after adding a bond.
* add a property cache update to the reaction runner
* add something to the release notes
* When building RDKit as a static library, Ricardo found that the externs aren't
being resolved correctly causing a number of bad std::any casts. This is his
patch (which we apply in the context of the sketcher build) which moves the
definitions up from the types.cpp file, and make them static.
* Use inline keyword to avoid duplication overhead; this still allows the
use of the static keyword to resolve the issue with static libs
https://en.cppreference.com/w/cpp/language/inline.html
* static inline doesn't work in my static builds; inline only does though
* inline constexpr std::string_view
* casting
* inline-constexpr
* add string_view to python converter
* propagate string_view after static types
---------
Co-authored-by: Ric <ricrogz@gmail.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* add option to track atoms involved in each bit for morgan FP
Needs test still
* support similarity maps using fingerprint generators
* support RDKit, AP, and TT
still need tests
* add some testing
* response to review
* added new attributes for scsr template as per BIOVIA doc 2003
* changed to allow any attributes for an SCSR Template def
* removed unneeded defs for TEMPLATE attribute names
* merge ABS groups on setStereoGroups
* warn/fail on multiple ABS groups on strict parsing
* add a test for setStereoGroups
* add a test for multiple ABS groups in mol blocks
* Drop the warning
* Allow the same core to match more than once in a molecule.
* Update annotation.
* Changes after review.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* constexpr Point, Point2D, and Point3D
* constexpr Vector
* cleanup
* rollback overzealous constexpring
* dial back the constexpr to get windows builds working
the math stuff isn't constexpr with MSVC++
* add [[nodiscard]]
* do not remove hydrides by default
* add a minimal test
* add release note about behavior change
* require Hydrides to have degree 1
* also allow hydrides with degree 0 (ionic bond)
* suggested changes
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
- implement get_v2Kmolblock() in MinimalLib
- add the possibility to specify the MDL version preference as a get_molblock() forceMDLVersion JSON parameter, which is ignored by get_v3Kmolblock() and get_v2Kmolblock()
- changes in response to review
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* Trim spaces from RDProp strings to simulate reading from SDFiles
* Update documentation
* Use the correct doc strings
---------
Co-authored-by: Brian Kelley <bkelley@glysade.com>
* patch RapidJSON to make sure it builds on all platforms
* remove unnecessary sed command from Docker recipe
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* set export.h and test.h to go to the correct places in RDKitUtils
* use cmake_source_dir so cmake files are picked up in list
* use cmake_current_source_dir in MolInterchange
* use rdkit variables to place rapidjson and headers in correct places
This reverts commit 040bdb61c7.
During testing of using this as a replacement for portions of
getTheFrags in getMolFrags, several issues came up regarding
how copies should actually work in practice. These are being
corrected in a new pr: https://github.com/rdkit/rdkit/pull/8811
Co-authored-by: Brian Kelley <bkelley@glysade.com>
* Create a function to extract some specified atoms from a ROMol as a new ROMol by creating new graph (#8742)
This adds a new api, `RDKit::MolOps::ExtractMolFragment`, to allow efficient
extractions of mol fragments from large mols. Compared to the approach where
we delete "unwanted" atoms/bonds from the input mol, this api is faster for
small mols (about 2x faster) and at least 3x faster for big mols
(was 10x faster for "CCC"*1000).
* clang-format
* review comments
* cleanup
* review comments
* fix build failure
---------
Co-authored-by: Your Name <you@example.com>