* 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>
* 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>
* - fix#7157
- add the assignCIPLabels flag to MinimalLib's mol_from_input()
- added cffi and JS tests
- refactored process_details(), process_mol_details() and process_rxn_details() to take a struct reference as parameter rather than a long list of parameters
- this also allowed to get rid of one of the ugly GET_JSON macros
- exposed panelWidth, panelHeight and noFreetype (the latter is useful for testing)
- made width and height to default to -1 in mol_to_svg since we now support flexicanvas
* added a bunch of assignments I'd forgotten in the deprecated process_mol_details() overload
* MSVC does not like inner functions
* updated docstrings
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* insert stereogroups
* insert Substance Groups
* fix ownership, bond indexes
* add test
* fix comparison signednedss
* update test
* Brian's suggestion
* allow more than one ABS group
* Fixes#7140
deprecates the old version and creates a new one in Chirality.h
adds it to the python wrappers
* changes in response to review
* backup
* support custom labels with templates
* basic approach to v2api
* does not work, backup commit
* well, that now compiles
* cleaner
* more cleanup and testing
* get the SWIG wrappers to build
* swig wrappers now build
* switch back to using references to default values
* adjust to new catch version
* move the implementation to v2 and call it from v1
* update the parameter object too
* move debugParse down
* a couple of review changes
* make v2 naming consistent with Python
* first pass at v2 for the ctab parsers
* move a the writing functionality to a different header
this is just an organizational thing at the moment; we still import the writers header in the parsers header so as to not break code
* do v2 of the tpl parser
* fix missing dependency
* Mol2 parser
* move over the XYZ parser
* switch over the PDB parsers too
* get mac and java builds working (hopefully)
* add v2 API for the reaction parsers
Fixes#7075
* v2 of the fileparser API about done
This cannot be completed until the CDXML changes are merged