* fixes
* do not leak MolCatalogParams
* do not leak points on align failures
* give python ownership of pointers returned in getFingerprintsHelper
* clean up ScaffoldNetwork ptr if createNetworkHelper fails
* manage FF ptrs during construction
* wire in ownsBondInvGenerator in getMorganGenerator
* manage weights in rdMolAlign CalcRMS
* fix ownership of matches list/tuple in generateRmsdTransMatchPyTuple
* manage stream in createForwardSupplier during construction
* drop redundant Point3D allocations in GetUSRDistributionsFromPoints
* fix signed comparison mismatch
* 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>
* Compile time and runtime deprecation warnings
* Used [[deprecated]] attribute to mark deprecation on cpp side
* Used RDLog to escalate deprecation warnings to python
* deprecated non fingerprint generator fingerprint generation functions
* Address build errors
* suppress deprecation warnings in cpps and tests
* experiment with new SWIG versions in the mac azure pipeline
* More deprecation suppression
* revert mac java experiment
* Fix SWIG syntax errors
* Attempt to fix windows unit test
* Remove test because of logging behavior
* Change linux java build to SWIG 4.1
- removes the need for preprocessor interaction
* Change mac java build to SWIG 4.1
* try updating the CI buid
* lock cmake version
needed to find JNI correctly
* update compiler versions
needed for the boost
* Fix typo and unavailable version
* Fix version conflict
* update mac build
* get linux build working?
---------
Co-authored-by: Patrick Penner <patrick@ppenner.com>
* - added gen_rdkit_stubs Python module to generate rdkit-stubs
- added patch_rdkit_docstrings Python module to patch existing C++ sources to fix docstrings missing self parameter and add named parameters taken from C++ signatures where possible
- added rdkit-stubs/CMakeLists.txt to build rdkit-stubs as part of the RDKit build
- added an option to CMakeLists.txt to enable building rdkit-stubs as part of the RDKit build (defaults to OFF)
* fixed CMakeLists.txt, rdkit-stubs/CMakeLists.txt and a doctest
* - added missing cmp_func parameter
- fixed case with overloads with optional parameters
- do not trim params if expected_param_count == -1
- add dummy parameter names if we could not find any
- keep into account member functions when making up parameter names
- address __init__ and make_constructor __init__ functions
- fix incorrectly assigned staticmethods
* patched sources
* address residual few remarks
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* First stab at disconnecting organometallics the Syngenta way.
* Add support for Li and Na compounds, with tests.
* Correct docstrings.
* Add -1 valence to sodium.
* Add changes from PR 5997.
* Move declaration of disconnectOrganometallics.
* Re-factor tests for disconnectOrganometallics to read V3000 files rather than hard-code in file.
* Add optional options to constructor.
* Python wrapping for disconnectOrganometallics.
* Python tests.
* Correct docString.
* Test using in place overload of disconnect free function.
* options_ should not be a reference.
* Re-work the wrappers.
* Added test MOL files.
* Correct charge on iron atoms.
* Fix tests for charged iron.
* Added some more test complexes.
* Port Marco's oxidation number Python to C++ Descriptor.
* Rename functions.
* Another test.
* Python wrappers.
* Comment in test.
* Throws exception if atom-based function called with non-kekulized parent.
* Fix typo.
* Allow potassium as well.
* Whole molecule calculations for oxidation number only.
Rename prop to OxidationNumber.
* Add OxidationNumber to common_properties.
* Extra comment.
* When deleting atom, update any ENDPTS props on bonds.
Copied in from stale PR ExtraDoc.
* Added hapticBondsToDative with python wrapper.
* Extra test.
* Re-factor endpts parsing.
* Typo.
* Add function for haptic end points inc. Python wrapper.
* Add dative bonds in separate step.
* C++ version of dativeBondstoHaptic.
* Update test mols.
* Python wrapper.
* Fix indents in Python test script.
* Corrected expected test result.
* Only do non-metal to metal conversion of single bond to dative if the explicit valence of the non-metal allows it.
* Fix test broken in a non-material way by previous change.
* Export for DLL.
* Remove redundant function declaration.
* Dave hates Windows.
* Move hapticBondEndpoints to Molops::details.
* And take it out of the Python wrappers.
* Run yapf on reformatted test script.
* Get the DLL builds going.
* addDativeBond -> addHapticBond.
* Batch edits.
* Position arithmetic.
* setQuery.
* Dummy positions for all confs.
* Fix tests for dummy positions for all confs.
* Move tests to catch_organometallics.cpp.
* Modern docString.
* Change member variable names.
* sProp length, bonus batchEdit.
* Add options object to disconnectOrganometallics.
* Tidied license.
Atom precondition.
* GetIntProp.
* Test opts aren't defaults.
* Python wrapper for disconnectOrganometallics with options.
* Minor edit.
* Slightly random attempt to fix Java build.
* Response to review.
* Another stab at the doc strings.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* remove include from headers
* update implementation files
* completely remove BOOST_FOREACH (#7)
* convert those changes to use auto
* get rid of all usage of BOOST_FOREACH
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Coulomb Mat v0.1 issue on linux
* use static 3D molecule instead of generating 3D conf for testing
* fix tokenize
* fix issue removeHs
* update test for sdf 3D molecule
* strip things back to just do the basic coulomb matrix
* add RDKIT_DESCRIPTORS_EXPORT
* fix 3 typos and a missing const
* Update rdMolDescriptors.cpp
Co-authored-by: greg landrum <greg.landrum@gmail.com>
Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
* [WIP] Add BCUT 2D descriptors
* Use the standard RDKit license
* Add Check for EIGEN3
* Add vector param, fix some formatting, remove debug print
* Add make_burden function, optimize symmetric eigenvalues
* Add some tests, finalize API
* Make the python API return tuples
* Updates docs
* Remove unused variable
* Fixed up C++ tests
* Remove std::pair wrapper, don't build BCUT when missing EIGEN
* Add bigger test case for BCUTs
* Accidentally removed the wrong code
* backup
* backup
* backup
* getting close to v0.1
* switch to using node indices
* add pruning and flattening
* support multiple mols
* example notebook
* backup
* initial commit
Just includes the basic API and flatten
* add the pruning step
* add removeAttachmentPoints()
* add makeScaffoldGeneric()
* improve compilation speed by adding catch_main.cpp
* add getMolFragments()
* doc cleanup
* actually add the network building code
* first pass at python wrapper
* allow edges to be nicely converted to strings
* get node counts working
* backup python notebook
* switch example notebook to use wrapped C++ code
* add BRICS fragmentation option
* fix a bug with removing attachment points to aromatic heteroatoms
* add provisional attachment point merger to notebook
* fix a bug with includeScaffoldsWithAttachments=false
* backup of efforts to get this working on windows
* backup of efforts to get this working on windows
* does not work. backup
* Fix a substructure crash on Windows
* re-enable tests
* adjust to the new BRICS form
* in-code documentation
* more doc updates
* reformat
* change the string output format for edges
* remove old python implementation
* remove obsolete test
* include a generic scaffold for the pruned structure too
* default to keepOnlyFirstFragment=false with BRICS params
* bug in removal of attachment points from generic scaffolds
* more testing
* support working from std::shared_ptr as well as boost::shared_ptr
* more testing
* disable debug printing
* use memo-ization in getMolFragments() to avoid duplicate work
* add SWIG wrapper and basic testing
* add define for RDK_USE_BOOST_SERIALIZATION
* add serialization at the C++ level
* add a string ctor for a scaffold networks
* add pickle support on the python side
* formatting
* remove old notebook
* move the fantastically useful iterable_convertor to RDBoost/Wrap.h
* expose parameter constructor with std::vector<std::string>
* add scaffoldnetwork to documentation
* 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
* Addition of CustomProp_VSA
* Small fix in CustomProp_VSA
* bins made constant in calcCustomProp_VSA
* small fix in calcCustomProp_VSA
* dependency on MolData3Ddescriptors removed
* 3D customs Descriptors
* some cleanups
* adding tests for 3D customs
* add WHIM out files
* fix div by zeros and add testcases
* add back a local change
* run clang-format
* switch to fabs
* EEM implementation
* EEM
improve speed by a factor of 2
remove lapack
* Rename eem.out to eem1.out
* Add new test_data
* Delete set00.sdf
* Add files via upload
* Update testEEM.cpp
add testEEM2 not sure rdkit can read the zip file not tested... github cannot handle this large sdf file
* Add files via upload
* Delete setEEM2.sdf.zip
* Add files via upload
* Update testEEM.cpp
* cleaning EEM implementation
* few modifications on EEM imp
* remove compiler warnings; make tests actually test
* more cleanup
* unique_ptrs instead of bare ptrs
* more cleanup
* cleanup to get non-VC++ builds to work
* 3D Descriptors Dragons
* stripped down, not yet working
* get this building on a non C++-11 compiler
* move the python test to the python directory
* move the python test to the python directory
* add the python test
* now at least those tests runn
* warning comment
* some basic refactoring and cleanup
* get python wrapper "working" (completely untested)
* fix Name
* fixing AutoCorr & RDF
* AutoCorr test added
* RDF reviewed based on AutoCorr comments
* fix Morse code
* Morse reviewed
* Correct Morse & start Getaway
* correct MORSE test
* start Getaway clean up
* simplification of Whim
* better
* fix Getaway
* fix RCON
* merge repaired
* adding Dragon 2D autocorrelations descriptors
* fix the 3D autocorrelation descriptors based on the modification in
Dragon.
* Adding the 2D autocorrelation descriptors (no need of Eigen
dependency for this one)
* Adding 2D test case
* IState … no idea for the moment
* there is an error in 2D computation (memory error ???)
* fix the IState for molecules with Hs
* need to use getTotalNumHs(true) not getTotalNumHs()
* also need to remove Hs in both dv and d!
* fixing Rcov values
I fix the Rcov values
* fix Getaway
* remove push_back
* remove call to sum
* improve tests
* fix getaway
* adding precision parameter to GETAWAY
* adding rouding (1e-3)
* fix WHIM
* use void in declarations of function
* update MolDescriptors link
* remove print option in WHIM
* fix python wrapper to 3D descriptors.
- all modifications reduce computation time by a factor of 3!
* final fix for Getaway
* all output are fixed except the 2 first values due to clustering
approach.
* cluster cannot be fixed du tu float precision issue between Java &
c++
* best fix of ITH and ISH
* use the same algorithm as in Dragon 6 but there is still a deviation
* remove std::move
* std:move only works on c++ 11
* fixing issue based on Greg Comments
* auto2D still not working on my env
* update 3d test.py
* auto 2D not working after the first loop test
* tighten up the tests
* change name
* update, but still does not pass
* make this run (though it does not work)
* re-enable test3D
* some cleanup
* add GETAWAY test data. Note that the tests fail
* fix the ATS and ATSC autocorrelation 2D
Broto Moreau and Geary autocorrelation are not correct again a specificity of Dragon to compute them. The result are not consistant with Padel because we use the relative weigth not in Padel.
* one minor change to get things to compile
* fix the M & G matrix computation
fix inversion in the computation of the equations for both M & G matrixes
* update autocorr2d tests
* 192 examples
* fix issue in cluster 0.01 0.009 case
this is not correct all the cases
* update GETAWAY expected values to reflect the fact that we cannot reproduce the literature values exactly
fix a leak in GETAWAY
* fix the negative values in gamma
this is strickly the implementation that we find in the book molecular descriptors for chemoinformatics (except the case where an atom is already in the axis in this case it should be added in the symetric list which is not the case in this implementation)
* Update WHIM.cpp
adding the axis atoms to the symetrical list
* update WHIM tests
* add AUTOCORR2D to MolDescriptors and the python wrappers
* start adding tests
* test the python versions of the new descriptors
* update list of descriptors
* 3D Descriptors Dragons
* stripped down, not yet working
* get this building on a non C++-11 compiler
* move the python test to the python directory
* move the python test to the python directory
* add the python test
* now at least those tests runn
* warning comment
* some basic refactoring and cleanup
* get python wrapper "working" (completely untested)
* fix Name
* fixing AutoCorr & RDF
* AutoCorr test added
* RDF reviewed based on AutoCorr comments
* fix Morse code
* Morse reviewed
* Correct Morse & start Getaway
* correct MORSE test
* start Getaway clean up
* simplification of Whim
* better
* fix Getaway
* fix RCON
* merge repaired
* adding Dragon 2D autocorrelations descriptors
* fix the 3D autocorrelation descriptors based on the modification in
Dragon.
* Adding the 2D autocorrelation descriptors (no need of Eigen
dependency for this one)
* Adding 2D test case
* IState … no idea for the moment
* there is an error in 2D computation (memory error ???)
* fix the IState for molecules with Hs
* need to use getTotalNumHs(true) not getTotalNumHs()
* also need to remove Hs in both dv and d!
* fixing Rcov values
I fix the Rcov values
* fix Getaway
* remove push_back
* remove call to sum
* improve tests
* fix getaway
* adding precision parameter to GETAWAY
* adding rouding (1e-3)
* fix WHIM
* use void in declarations of function
* update MolDescriptors link
* remove print option in WHIM
* fix python wrapper to 3D descriptors.
- all modifications reduce computation time by a factor of 3!
* final fix for Getaway
* all output are fixed except the 2 first values due to clustering
approach.
* cluster cannot be fixed du tu float precision issue between Java &
c++
* best fix of ITH and ISH
* use the same algorithm as in Dragon 6 but there is still a deviation
* remove std::move
* std:move only works on c++ 11
* fixing issue based on Greg Comments
* auto2D still not working on my env
* update 3d test.py
* auto 2D not working after the first loop test
* tighten up the tests
* change name
* update, but still does not pass
* make this run (though it does not work)
* re-enable test3D
* some cleanup
* add GETAWAY test data. Note that the tests fail
* fix the ATS and ATSC autocorrelation 2D
Broto Moreau and Geary autocorrelation are not correct again a specificity of Dragon to compute them. The result are not consistant with Padel because we use the relative weigth not in Padel.
* one minor change to get things to compile
* fix the M & G matrix computation
fix inversion in the computation of the equations for both M & G matrixes
* update autocorr2d tests
* 192 examples
* fix issue in cluster 0.01 0.009 case
this is not correct all the cases
* update GETAWAY expected values to reflect the fact that we cannot reproduce the literature values exactly
fix a leak in GETAWAY
* fix the negative values in gamma
this is strickly the implementation that we find in the book molecular descriptors for chemoinformatics (except the case where an atom is already in the axis in this case it should be added in the symetric list which is not the case in this implementation)
* Update WHIM.cpp
adding the axis atoms to the symetrical list
* update WHIM tests
* add AUTOCORR2D to MolDescriptors and the python wrappers
* start adding tests
* test the python versions of the new descriptors
* update list of descriptors