* Don't silent ignore missing atoms (and replace them with atom #0) in copymolsubet
* Fail if explicitly set atoms/bonds are not present
* Add tests
* Simplify optimization (copy whole molecule) add test for no bonds
* get BertzCT working with numpy 2.4
* test pass with with Pandas 3.0
(on windows at least)
* update testRanker too
* update nb test
* run win32 CI tests with different pandas versions
also updates boost version
* works with pandas 2.0?
* update linux_build_py311 -> linux_build_py312
test both old and new pandas
can't go higher with the python version yet because the older pandas and numpy are not available.
* doctest fix?
---------
Co-authored-by: = <=>
* cleanup of stereogroups and wedges for non-chiral sites
* fixed testShapeHelpers for Arm64 build
* reorg the tests a bit
* rename and document option
* add to the python wrappers
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* add the _CIPNeighborRanks property
* store CIP-ranked chiral neighbors
* store CIP-ranked SP2 bond and atropisomer anchors
* add a test
* boost headers in test
* add Atom::NOATOM
* add NOATOM test
* amend and clarify implicit H in Tetrahedral
* rename property
* rename property to _CIPNeighborOrder
* deprecate Chirality::StereoInfo::NOATOM
* added flag to allow chiral settings on Atoms with 2 hydrogens for SCSR treatment
* added parameter to allow chiral 2Hs on template mols in SCSR parser
* fixed testShapeHelpers for arm64 build
* Remove checking for two Hs in chiral atom in atomChiralTypeFromBondDirPseudo3D
* removal of flag for allow2Hs
* remove setup.bat file
* do not write extra separators
* add a test
* update tests
* Update Code/GraphMol/SmilesParse/CXSmilesOps.cpp
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fix deprecated literal operator syntax for C++14 compliance
Remove whitespace between "" and identifier in user-defined literal
operators to comply with C++14 standard. Fixes warnings with newer
compilers (emscripten 4.0+, clang 15+) that treat this as deprecated.
Changed operator"" _name to operator""_name for:
- SmilesParse.h: _smiles, _smarts
- ReactionParser.h: _rxnsmarts, _rxnsmiles
- FileParsers.h: _ctab, _mol2, _pdb
* Fix BOOST_CONTAINER_NO_LIB macro redefinition warnings
Add #ifndef guards before defining BOOST_CONTAINER_NO_LIB in Writer.cpp
and Parser.cpp to avoid redefinition warnings when the macro is already
defined via compiler flags in emscripten 4.0+ builds.
Warnings fixed:
- Writer.cpp:32: 'BOOST_CONTAINER_NO_LIB' macro redefined
- Parser.cpp:38: 'BOOST_CONTAINER_NO_LIB' macro redefined
BestAlignmentParams is an aggregate; paren-init (T(...)) is rejected by Apple Clang (Xcode) and only works on some compilers.
Use brace-init (T{...}) for portable initialization.
* move molzip to its own file
* basics working
* more testing
* another test
* minor
* fix doxygen comment format
* fix alignment with co-directional exit vectors;
some modernization
* JSON parsing
python wrapper
* response to review
* response to review
* explicitly test that the first frag does not move
---------
Co-authored-by: = <=>
* atropisomer bond atoms are checked explicitly for SP2 hybridization
before, we checked only on totalDegree = 2 or 3,
but this causes false positives for something like a chiral sulfoxide
since the S is tetrahedral (sp3) but has only 3 substituents.
the hybridization code relies on totalDegree,
but modified to include and making sure to include conjugation
so while this is more expensive per molecule, it is closer to intent
Closes#8973
* assert we got no warnings on sulfinamides
* cleanup
* bring back degree based check, quick pass so that we don't run expensive calc on all mols with wedge bonds
* bring conformer back
* refactor getting initial bond directions
* fix atom dir counts
* move lambdas to separate functions
* restore increments
These are ok: they mean how many double bonds care about this direction,
not just whether it has been set or not.
* Mostly working.
* Clear out debugging writes.
* Avoid a mol copy.
* Left some debugging in.
* Move the fix into fragmentOnBonds.
* Add test.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* Add MolTransforms library.
* Transform to inertial frame of reference before overlay.
* Vital fix of typo in comment.
* Tidy up debugging cruft.
* Comment in CMakeLists.txt.
* Fix python wrappers.
* Extra tidy.
* Response to review.
* Tidy includes.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* fix a bug in copySelectedAtomsAndBonds()
we need to clear computed properties on the atoms here
* prune back the atom properties written to CXSMILES
* update minimallib tests
* extra SSS match functions for atoms/bonds
initial implementation and testing
* add baseline to test
* add a functor for matching atom coords
* support the extra checks in python
* refactor the way the python callbacks are handled
* test tolerances
* expose the AtomCoordsMatcher to python
* allow the extra checks to override the default matching
---------
Co-authored-by: = <=>
* 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
* Consolidate copying subsets of molecules
* Readd missing tests
* Update comment to restart build
* Remove missing test
* Remove debugging comment, fix warnings
* Fix warnings on gcc11
* Add docs
* Make vector<bool> dynamic_bitset<>
* Update copyright
* Add swig wrappers
* Use new designated constructor API
* Fix windows builds
* Change enum values from unsigned int to integer
* Fix unsigned int variable
* Update Code/GraphMol/Wrap/test_subset.py
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/GraphMol/Subset.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemTransformsTests.java
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Reponse to review
* Fix documentation
* Remove comments
* Remove unnecessary comments
* Fix one liners
* Change assertion to be clearer (and not one-liners)
* Run clang-format
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Hussein Faara <hussein.faara@schrodinger.com>
Co-authored-by: Brian Kelley <bkelley@glysade.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* try to reduce the number of valence combinations by checking neighbour valence and bonding
* fixed error message. Remove test that fails now because determineBondOrders finishes too quickly.
* cleanup
* adjust checking
* fix building
* add interrupt test back in but use a molecule that still takes a bit of time.
* improve error messaging
* change "test interrupt" to use xyz
* fix for atoms without valence information. and apply suggestions
* Update Code/GraphMol/DetermineBonds/DetermineBonds.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* first pass at allowing Hs to be ignored in getBestRMS()
* add support in getAllConformersBestRMS()
* do getBestAlignmentTransform()
* cleanup, error checking, and a fix
* this is more painful than it seems like it should be
* add python wrappers and tests
* response to review
* some optimizations of AlignPoints()
still should do some benchmarking to see how much of a difference the changes make
* remove unused variable
---------
Co-authored-by: = <=>