* only exclude multiple double bonds from check if degree of center atom is 2
* clang-format
* add test for fix
* try fixing DLL build
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* fix Widnows build as suggested by @greglandrum
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* add support for allene- and cumulene-like structures to the K terms in KDG
* Update Code/GraphMol/DistGeomHelpers/BoundsMatrixBuilder.cpp
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
* Update Code/GraphMol/DistGeomHelpers/Embedder.cpp
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
---------
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
* refactor skeleton
* fix contribs
* adapt documentation
* clarify function names
* make variable names more readable and update documentation
* switch boost dynamic bitset with std::vector<bool>
* clearer const name
* fix typo and go back to dynamic bitset
* go back to old function signature
* add inline overload with fewer arguments
* remove unecessary doc lines and add tol to distance directly in function call
* use constexpr for known distance force constant
* update documentation
* enhance documentation
* english
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* make changes requested by @greglandrum
* make all constexprs
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* First try at using DistViolationContribs
only the most basic of testing has been done
also add ForceField::distance2 to allow some optimizations
* allow testing using old approach
* optimization
At this point testUFFForceFieldHelpers fails since the check for std::max_element
in the e_contribs vector at Embedder.cpp:513 is now doing something totally different
(instead of a bunch of small distance violation contribs, we have one big one).
We'll need to come up with something for this.
With the benchmarking set that I'm using - 500 DG conformers for ~465 COD molecules
using 10 threads - this runs in almost 10% less time than master.
* backup;
builds, tests do not pass
* all tests pass except the old failure
* more constification
* backup/debugging
* add fourthdim contribs the same way
* tests now pass
* deprecations
* remove unused vars and code
* changes in response to review
* first try
* do over with @greglandrum: fix atomPairs, lower SP angle force constant.
* change test file for 'update parameters from JSON':'ETKDGv2'
* adapt length to fix
* remove overwritten random seed
* adapt test files to changes
* adapt amide test, check with Greg
* fix python tests and remove unused imports
* proposal for new test molecule
* remove double comparison, increase threshold. Check with greg
* remove TODO comments
* remove debugging statements
* same code for both since they are doing the same
* format docstring to make more readable
* remove todo comments
* add indentation to angle param
* adapt doctest to newly generated conformers
* fix test to pass with fewer failures and move mol to mol file for less cluttered test.
* a bit of modernization
* remove cerrs and format correcly
* reverted test to old behavior
* use insert and make force field contribs exception safe
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* fix a logic error in one of the chiral volume tests
* check the magnitude of the chiral volume in the atropisomer tests
* make the espression more readable
---------
Co-authored-by: ptosco <paolo.tosco@novartis.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
* 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