* Allow fragments to be groups in CDXML
* Add support for grouped reactants
* run clang-format
* Change github issue to 7528
* Add documents to the code
* response to review, check grouped reactants in cdxml against rxn file
* Remove unused code
* Add missing file
---------
Co-authored-by: Brian Kelley <bkelley@relaytx.com>
- update MinimalLib Dockerfile to Debian Bookworm and patch RapidJSON in case someone wants to build an older release (fix#7530)
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* - When depictions are made using the useMolBlockWedging flag, make sure that kekulization is done after original wedging has been applied to reduce the odds that bond wedges are placed on double bonds
- Refactored MinimalLib code to avoid code duplication
- get_molblock() should reapplyMolBlockWedging on a copy of the passed molecule rather than on the original
- Added unit tests
* Update Code/MinimalLib/jswrapper.cpp
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fixes#7533
Fixes problem with SparseIntVect and SparseBitVect where the intention is to
be able to store all possible values of the index type: in these cases
you could not store (or access) the final element.
* increase the verbosity of the DataStructs tests
so that we can see what's going on
* add MolToV2KMolBlock()
small refactoring in the mol block writing
* throw an exception for more than 999 atoms, bonds, or SGroups
update docs for that
changes in response to review
* refactoring of the Uncharger class
* optionally limit the Uncharger to only change the protonation state
* changes in response to review
* refactor the handling of positively charged atoms
* changes in response to review
* changes in response to review
* Revert "changes in response to review"
This reverts commit d42e1286d5.
* changes in response to review
* changed string_view to string in catch test
* fix for ring-stereo atropisomers
* removed debug cout
* removed change to build in debug mode
* change catch arg to a rerference
* changes as per PR review
- isotopic labelling should not depend on the presence of a query atom feature, but rather on the presence of common_properties::_MolFileRLabel
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* add posibility to create a force field that does not have any contributions.
* move to FFConvenience.h and add C++ tests
* deallocate memory
* use range based for loop
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Making adjustments according to the review of @greglandrum
* undo unintentional formatting
* replace TEST_ASSERT with CHECK
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* support wedging in double and aromatic bonds
This is a first pass and the testing isn't really there.
* add expected test results (from windows...)
switch to not using freetype for the tests
* response to review
* Try not to make wedged bonds double in the kekulization code
This is a first pass implementation and definitely needs more testing of the new feature.
Probably looking at optimizing the code would also not be terrible.
All tests pass with this commit
* Some changes to the kekulization in presence of wedged bonds and additional testing
* additional kekulization test case
* start the kekulization in rings with wedged bonds
add some bulk tests
all tests now passing for me
* changes from review
---------
Co-authored-by: Riccardo Vianello <riccardo.vianello@gmail.com>
* basic code to convert dative to single if we aren't outputting dative to the SMILES
add forms of GetAtomSmiles() and GetBondSmiles() that take SmilesWriteParams
* dative/coordinate bond support when writing CXSMILES
* expose all of that to Python
* remove usage of _doIsoSmiles property
add params to smarts writers
* allow disabling dative bonds in SMARTS
* typo
* add support to the reaction writers
* support params for SMARTS
* check for ringinfo levels instead of init
* check for ring info in kekulizefragment
* add a test
* update tests
* update doctests
* revert ringinfo level checks
* prefer wedging ring bonds for atropisomers
* update expected results
* handle 3D as well
* prefer wedging to larger rings
wedging bonds in 5 rings make later attempts at improving kekulization very difficult
update expected results
* extend those changes to 3D
* update tests for those changes
* avoid wedging atropisomers if possible
response to review
* removed string_view in favor of string for catch test
* add parsing and generation of atropisomers when coords not present
* changed string_view to string in catch test
* more docs
* reformulation of the docs
* make an error message a little bit more useful
* small optimization
clang-format
* add `BondWedgingParameters` to new function
* changes for CIP test errors
* Updated internal doc to match what it does
* changes per PR review
* removed cout statements in tests
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* deprecations for the 2024.09 release
* update doctests
* Fixes#7402
* get tests passing when the cairo build is not there
* fix a problem in the tests
* Allow any bond (smiles ~) recognition in CDXML
* Move anybond.cdxml to the right place
* a bit of simplification
---------
Co-authored-by: Brian Kelley <bkelley@relaytx.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Allow reapplyMolBlockWedging to restore the original wedging regardless the bond type
* update python wrapper for Chirality::reapplyMolBlockWedging
* changes in response to review
* update the API documentation
* Fixes#7331
Essentially this modifies the code to use the isolobal analogy
Also improves error reporting a bit.
* generalize that a bit
* more testing
* removed string_view in favor of string for catch test
* add parsing and generation of atropisomers when coords not present
* changed string_view to string in catch test
* more docs
* reformulation of the docs
* make an error message a little bit more useful
* small optimization
clang-format
* add `BondWedgingParameters` to new function
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* - renamed getParamsFromJSON() to updateSmilesWriteParamsFromJSON() and moved it from the anonymous namespace to the RDKit namespace such that it is publicly available
- implemented updateCXSmilesFieldsAndRestoreBondDirOptionFromJSON()
- added CFFI and JS tests
- get_smiles(), get_smarts(), get_cxsmiles() and get_cxsmarts() are now available in MinimalLib in both CFFI and JS layers and they can be passed JSON parameters
- CFFI get_qmol() now returns NULL if it fails to generate a RWMol rather than returning the "Error!" const char[] string, for consistency with what get_mol() and get_rxn() do. This was documented in release notes
* suggestions
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
Co-authored-by: greg landrum <greg.landrum@gmail.com>