* 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
* 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>
* change a define to a "using"
* basic atropiosomer support for confgen
currently only supports bonds with two exo substituents on each end
* support systems with two exo bonds
* cleanup
* add test for #7109Fixes#7109
* clean the tests up a bit
* ci updates
* forgotten update
* inch by inch
* remove unused variable
* try a gcc bump
* get rid of a bunch of unused-but-set errors in clang16
* be more selective
* disable a test in an obsolete module which is mysteriously failing
* fix two problems leading to bad double bond geometries from the conformer generator
* test for violations of double bond stereo in confgen
* some cleanup
* define constants
* better description of the test
* changes in response to review
- improved docs
- split linearity check from stereo check
- always do linearity checks
also: track double-bond stereo failures
* support tracking where the conformer generation code fails
* less verbose output
* tests now pass
* fix a stupid typo
* fix SWIG wrappers
* changes in response to review
* revert duplicate chunk in release notes
* replace deprecated ifdefs
This one gets rid of USE_BUILTIN_POPCNT and RDK_THREADSAFE_SS
use RDK_OPTIMIZE_POPCNT or RDK_BUILD_THREADSAFE_SSS instead
* get rid of BUILD_COORDGEN_SUPPORT from ROMol.i
* fix a stupid typo
* update release notes
* add custom parameter to tune the relative weights of distance bounds to all the other force terms during ETKDG conformer generation
* fixes as per reviewer comments
* MolFragmenter: fix a leak when exceptions are thrown
* DistGeomHelpers: fix leaks when exceptions are thrown
* SubstructLibrary: fix usage of invalid memory
* clear up leaks found during ASAN testing
* backup
* bug fix: ensure getTotalNumHs() alwasy considers neighbors
* make trans amides the default
ensure it works
cleanup expected tests
* note results-changing fix
* fix docs and run some clang-format
* cleanup in response to review
* add "needsHs()" query
* add warning for embedding without Hs
* add H checks to UFF and MMFF as well;
a small amount of cleanup in the MMFF atom typing
* adding a void pointer as a member for the EmbedParameters struct to allow aborting molecule embedder
* revert whitespace chage
* tabs->spaces
* have the callback function receive the iteration number as an argument, for progress monitoring
Co-authored-by: Jason Biggs <jasonb@wolfram.com>
* stop returning local memory in exceptions
* remove a couple unnecessary copies in loops
* fix a bug in the way the default MMFF aromatic parameters are constructed
* remove a bunch of loop-variable warnings
* remove a bunch of clang warnings
* disable clang warnings in python wrappers
* remove some warnings when building the python wrappers
* improvements for smal anr large ring conformer generation
* add documentation and reorder parameters in EmbedParam
* resolve merge conflict due to coordMap null pointer
* minor changes to address merge comments
* reorder variables in EmbedParameters
* add regression test for small ring and macrocycle torsion preferences
* not apply small ring torsions to bridged ring systems
* fix and test for bridged small rings torsion pattern exclusion
* add ETKDGv3 and srETKDGv3 option to keep compatiblity for original ETKDG
* EKTDG version 3 related minor fix
* add reference to doc string
* Java wrapper for ETKDGv3
* fix doc
* change CPCI to shared_ptr, but it seems to be much slower
* minor modifications to small bridged ring systems, and share_ptr from previous commit is fine
* rollback from shared_ptr(map) to just map
* run clang-format
Co-authored-by: Shuzhe Wang <shuwang@eu-login-10.euler.ethz.ch>
Co-authored-by: Shuzhe Wang <shuwang@eu-login-14.euler.ethz.ch>
Co-authored-by: Shuzhe Wang <shuwang@eu-login-17.euler.ethz.ch>
Co-authored-by: Shuzhe Wang <shuwang@eu-login-45.euler.ethz.ch>
Co-authored-by: Shuzhe Wang <shuwang@eu-login-05.euler.ethz.ch>
Co-authored-by: Shuzhe Wang <shuwang@eu-login-15.euler.ethz.ch>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* run clang-tidy with readability-braces-around-statements
clang-format the results
clean up all the parts that clang-tidy-8 broke
* fix problem on windows
* a round of cleanups courtesy of PVS studio
* add a test to make sure that a warning is a false alarm
* bug fix
* Fix a UFF bug
* more PVS studio cleanups
* next round of PVS studio cleanups
* completely remove the chances for that bug
* changes in response to review
* add an additional test
+ a bit of reformatting that snuck in
* Support providing a distance matrix for molecule embedding
* a bit of parameter checking
* allow fragmentation before embedding to be disabled
* fix a build problem on windows
change in response to review
* move _embedPoints over to use EmbedArgs structure
* move _embedWithExpTorsions over
* a few pointer cleanups
* step by step
* more
* wrap the ETKDG paramaters into a struct
* fix a typo
* additional cleanup
* more
* simplify the embedargs struct
* pass embedParams instead of having them in embedargs
* a bit more cleanup
* response to code review
* boost::thread mostly gone... still need to get rid of once
everything compiles
* replace boost::call_once
* remove link-time dependency on boost::thread
* first pass at using async
* switch to using async everywhere
* Make sure EmbedMultipleConfs is deterministic for very large seeds and a seed of 0.
Fixing two distinct bugs:
- A randomSeed of 0 didn't use '0' as the seed even though the
documentation said that it should.
- Very large seeds could overflow the 'int' representation during
calculation of a new internal seed. This would make
EmbedMultipleConfs non-deterministic even though the user provided a
valid seed.
* Adding a C++ test for case pull request #1635.
* version 2 of ETKDG
* setting default and changing to unsigned int
* ETversion 2 only via EmbedParams available
* Some refactoring so that the DG functions that take the parameter object are the primaries.
This should allow new parameters to be added without having to modify the API
* test and wrapper changes to go along with that
* update cookbook to use etkdg
* add a test (currently fails, of course)
* backup, not really working
* Fixes#1240
* a bit more parameter tweaking to get some more structures to embed
* initial version; no actual testing yet
* start on tests
* rename seed->randomSeed; add tests
* add support in java wrapper
* add support in python wrapper
* initial version; no actual testing yet
* start on tests
* rename seed->randomSeed; add tests
* add support in java wrapper
* add support in python wrapper
* yapf
* document the parameter object;
introduce pre-defined const objects for ETDG, ETKDG, and KDG
* this is why we write tests
* swig did not like the initialization in the header file
* passes all tests, but is still not 100 percent there
* generalize _centerInVolume for possible future use
* better testing of tetrahedral centers
update tests
* only test ring atoms
* handle 4-coordinate n too
* add a volume check; not all tests pass
* turn off debug printing
* rearrange the order of tests.
if this is not done, we get a seg fault when the github55 test runs.
the whole thing needs to be run under valgrind to track this down
* clear up a memory leak
* a bit more documentation
add a constant for one of the threshold values
* get more permissive on the energy tests.
Only do the extra tetrahedral tests for atoms in at least two rings.
* add a DEBUG_EMBEDDING option to make tracking down failures easier
* enable better debugging when the flag is set
* remove a FIX
* remove some debug printing from the tests
* enforce planarity
* increase the force constant for the impropers
* force constant adapted
* reduced tolerance for planarity and force constants changed for some torsions
* tolerance for planarity increased a bit again
* cerr outputs removed
* planarity tolerance increased
* boost log added in planarity check