* Include macrocycles in atropisomer calculation
Previously, atropisomeric bonds were sanitized away if they were part of a "ring bond", which happens in macrocyclic systems.
None of the existing test cases fail if that sanitization check is removed.
The sanitization step is removed to support biaryls that are part of a larger macrocyclic system.
A set of test cases is included that cover potential macrocyclic atropisomeric systems
* Remove unmentioned files
* Keep ring check, and narrow it to when bond is in as many rings as atoms
* exclude atropisomer bonds if in rings < 8 atoms
Co-authored-by: tadhurst-cdd <112502803+tadhurst-cdd@users.noreply.github.com>
* Clarify macrocycle behavior in RDKit book
* fix typo
---------
Co-authored-by: tadhurst-cdd <112502803+tadhurst-cdd@users.noreply.github.com>
* switch to range-based for loops
* Update Code/GraphMol/testChirality.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* fix a leak in the new DCLV code (#7279)
* fixes#7295 (#7303)
* tag 2024.03 release (#7308)
* tag release
* attempt to solve constant MD5 problems
* switch to getting the ComicNeue font from github instead of as a zip
* open new release cycle (#7314)
* restrict the application of 1,3- 1,5- conjugated cation normalization (#7287)
* propagate yaehmop build status (#7316)
* Fixes#7299 (#7304)
* clean up of python and c++ for-loops
* clang formatted testChirality
* fix test file
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
Co-authored-by: Riccardo Vianello <riccardo.vianello@gmail.com>
* Dotnet core build and test for RDKit
* Cmake dot net build and ctest working on windows
* Remove old Linux mono build
* Update to net8 and create RDK_BUILD_DOTNET_CSHARP_TESTS flag
* clean up of python and c++ for-loops
* readd assignement
* Remove misleading walrus operators (#7323)
* Run installed tests if applicable (#7325)
* simpler check for equality
* Revert "simpler check for equality"
py assert does not work pointwise on lists on all platforms,
we need to iterate through all elements
This reverts commit 03cc0ad1a6.
* fix ambiguity on truth value of np arrays
* compare list elementwise
---------
Co-authored-by: Matt Swain <m.swain@me.com>
* Add Double Cubic Lattice Volume (DCLV).
Method to compute the solvent accessible surface area and volume, van der Waals volume, compactness and packing density of a protein. Implemented from: Frank Eisenhaber, Philip Lijnzaad, Patrick Argos, Chris Sander and Michael Scharf, "The Double Cubic Lattice Method: Efficient Approaches to Numerical Integration of Surface Area and Volume and to Dot Surface Contouring of Molecular Assemblies", Journal of Computational Chemistry, Vol. 16, No. 3, pp. 273-284, 1995.
* refactor
* DCLV is no longer a configuration option
* add to the docs
* standalone test has been removed
* reduce use of pointers as args
* DCLV to catch_tests
* update python wrapper
* add copyright statements
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* expose symmetrizeTerminalAtoms() to the public API
* support symmetrizing terminal groups in RMS pruning in confgen
* add that to the python wrapper
* add backwards compatibility note
* allow JSON config of the new option
* simple modernization
* more
* done with RWMol for this pass
* the ROMol.cpp variant
* Atom
* minor change to bond
* simplify Conformer
* monomerinfo, queryatom, querybond
queryatom and querybond cpp files still need to be done
* typos
* revert a dumb change
* suggestion from review
* insert line breaks in stereo groups
* Add a test
* simplify the approach
* fix test issue
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fixes#7181
adds a new constrainedAtoms member to the etkdgdetails structure which is used to propagate info about the coordMap into the ETK minimizations
* Update Code/DistGeom/DistGeomUtils.cpp
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
* Update Code/DistGeom/DistGeomUtils.cpp
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
---------
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
* Add private functions for batch removal of atoms/bonds
* Reset the unique_ptr not the bitvector
* Remove unused variable
* Forgot to reset stero atoms
* Remove unecessary post batch edit check
* Set min_idx to the number of bonds, this makes it a sentinel
* Don't need rdcast
* Responses to review
* Removed unused variable
* Add missing braces
* Consolidate bond removal loops
---------
Co-authored-by: Brian Kelley <bkelley@relaytx.com>
* RGD code cleanup
- made an effort to give more meaningful names to variables (e.g., renamed most instances of attachment (point) to avoid ambiguity as attachment may be interpreted as either the R-group atom or its neighbor atom on the core, which are two different things)
- replaced the old school removeAtom() method with begin/commitBatchEdit()
- added std::move and std::make_move_iterator where relevant to avoid potential unintended copying
- replaced instances of container.size() == 0 and !container.size() with container.empty() for better clarity
- replaced std::map::find() with std::map::at() where the key was not needed
- replaced expensive std::find_if with more efficient alternative
- added some missing const keywords and added references to avoid copying where appropriate
- replaced for loops with modern implicit looping alternatives where convenient
- avoid calling MolToSmiles when VERBOSE is not defined as the result is anyway not used
- removed "oops, exponential is a pain" code snippet as I believe 1. it is never executed 2. it is not tested 3. I do not think it is correct
- removed check for data->matches.size() > 1 as I do not believe it is correct
- Use std::unique_ptr::reset instead of defining a new std::unique_ptr and moving it to the original one
* changes in response to review
* change in response to review
* replaced std::set with boost::dynamic_bitset to save time on std::set::insert and std::set::find
* make sure we do not go out of bounds
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* backup
* backup
* backup
* new testing file
* reorder things in the SMILES and SMARTS parser
parameters to allow easier struct initialization
* add v2 of SmilesMolSupplier
v1 is not yet there
* add TDTMolSupplier
add some very basic tests for v1 suppliers
* more progress
* all tests passing
I think all the suppliers are now moved over
* check for maeparser before building the tests
* get SWIG builds working
* changes in response to review
* add MolOps::expandAttachmentPoints, along with tests
* support expandAttachmentPoints in the mol file parser
* switch the v2 stuff in the guts of the reaction parser
* add collapseAttachmentPoints()
add addAsQueries option to expandAttachmentPoints()
lots of testing
* an edge case and some cleanup
* add python wrapper for those two functions
* Update Code/GraphMol/FileParsers/FileParsers.h
Co-authored-by: Ric <ricrogz@users.noreply.github.com>
* changes in response to review
- support addCoords in expandAttachmentPoints()
- support the new attachment point stuff to/from CXSMILES
- add MolOps::details::addExplicitAttachmentPoint() and MolOps::details::isAttachmentPoint() utility functions
---------
Co-authored-by: Ric <ricrogz@users.noreply.github.com>
* Adding missing include
* Removing ROMol.h in favor of a forward declaration as per requested.
---------
Co-authored-by: Theophile Gaudin <tgaudin@exscientia.co.uk>
- updated Boost to version 1.84.0
- removed obsolete ./emsdk update-tags which was triggering a warning during the build
- WORKDIR should always be absolute, so changed build to $RDBASE/build
- updated the Dockerfile_legacy_browsers help text
Co-authored-by: ptosco <paolo.tosco@novartis.com>