* Add threaded runner for the filter catalog
* Add test for bad input smiles
* Remove old boost dependencies, update java swig api
* Add bad smiles filter for RunFilterCatalog
* documentation and copyright updates
* Make numThreads=1 the C++ default
* Bad smiles is now no valid RDKit molecule
* add AtomValenceException
* refactor a bit and add KekulizeException
* add copy ctor and copy() method
* add detectChemistryProblems
* add getType() method
want to be able to get the type of the exception without requiring doing a bunch of dynamic casts
* first pass at exception inheritance/translation
needs some cleanup and expansion, but this does pass all tests.
* cleanup and finish the python wrappers for the new exceptions
* make sure things are truly polymorphic
* wrap shared_ptrs of the new exception types
* expose DetectChemistryProblems()
* get the java wrappers building again
* transfer those changes to the c# wrapper
* add detectChemistryProblems()
and deal with the fun fun exception inheritance things that ensue
* response to review
* add the ring decomposer lib (temporarily?)
* simplify makefile
* very basics work
* backup
* basics working
* builds and basic tests pass
* get this building again
* expose the ring families
* add tests on the python side
* make the pywrapper for this optional
* remove some extra bits
* cleanup
* switch to using RDL as an external project
* make sure this still works if we do not use the URF code
* remove BUILD_ALWAYS
* fix linkage of Java wrapper and cartridge (hopefully)
* fix cmake for wrappers (hopefully)
* forgot a semicolon
* try to force URF lib to build first
* improve memory management and interface
* fix dependency specifier
* make pointer initialization explicit
This may not be necessary, but it feels safer.
* not pleasing and needs to be cleaned up
but it builds
* not pleasing and needs to be cleaned up
but it builds
* cleanup in preparation for merging
* cleanup in preparation for merging
* switch to rareylab repo
* fix updated copyright date
* Fix updated copyright date
* switch to a specific library tag
Co-Authored-By: Florian Flachsenberg <flachsenberg@zbh.uni-hamburg.de>
* change in response to review
* basic conrec integration
* basic conrec integration
* add molecule contouring
* update
* add an alpha channel to the color
* allow filling the grid
* cleanup
* remove some debugging output
* first pass at getting similarity maps to actually work
* updates
* add another test
explicitly set linewidth to 1
* some SVG cleanup
* add option for extra padding
* update expected test results
* efficiency
* at least something of a test
* forgot an import
* fix SWIG wrappers
* cleanups in response to review
* allow calling the functions without providing levels
* allow contouring numpy grids
* Remove out_1 and out_2, only need for directed graphs.
* Variable renaming, no other changes.
* Fix a couple things that were forgotten during the rename
* Only one of these counts is updated now.
* Add ifdef to enable/disable VF2Pruning
* Add degree bound check, could be pushed down to the generic VertexCheck predicate.
* The stack knows at each point what was added, by passing these into the Backtrack call the clone allocation can be removed.
* Indent and rename added_node1 to node1.
* Now the clone is removed we can add a member function to handle the recursion cleanly.
* Also make for MatchAll a member function.
* Set lim=0 to mean infinity.
* VF2Plus optimisation, when candidate is in the terminal set select from a mapped neighbours adjacency list.
* Optimisation hint.
* Use a struct for the Pair removing the need for double pointer and heap alloc/delete of the iterators.
* disable pruning by default (it's a bit quicker to not do this)
* update expected test results
The updated VF2 code can return symmetric results in a different order
than we were getting previously. The results are still correct, but they
change some of the downstream things that don't do symmetrization
* update expected java results
* Added rankAtoms to ROMol wrapper and added Java test case
* Added missing argument to rankMolAtoms call in wrapper
* Update ROMol.i
* Update ROMol.i
Removed circular reference to Canon
* Update ROMol.i
* Update ROMol.i
* Update SmilesTests.java
* minor stuff to force the CI builds to run again
* Update the test to match the current code
* updated atomic radii to follow the Blue Obelisk Data Repository
Ubuntu package bodr version 10-1; radii are from file
/usr/share/bodr/elements.xml
* typo
* use 2.0 as default VDW radius instead of 1.7
for elements missing from the Blue Obelisk Data Repository
* Document the atomic_data
* update expected test results
* update java tests
* allow a bit more slop when comparing confs
For cross-platform stability
* Wrapper fixes: Tversky for De Morgan and java byte functions for ExplicitBitVect
* Wrapper fixes: Tversky for De Morgan and java byte functions for ExplicitBitVect
* add linux_java build
* trigger azure pipelines builds on dev/ branches
* make sure boost::iostreams gets linked in the SWIG wrappers
* updates to get static boost builds working on mac
* update linux a bit and add mac build
* forgot to save the mac file
* install version of boost with -fPIC
* try to force use of the boost installed in /usr
* typo
* add library hint
* diagnosing a failing build
* be explicit about CXX version
* try to force use of the system compilers
instead of the ones from conda
* stop using conda
* typp
* re-enable full build
* disable the appveyor builds
* Move RDBoostStreams to RDStreams
* RDBoostStreams->RDStreams
* RDBoostStreams->RDStreams
* Wrap SWIG (with Java test)
* Fix missing declaration
* Use the file that already exists
* Revert to original version
* Revert to CXSMiles version
* Update boost version
* Remove redundant code
* Add zlib
* check for win32
* FileParsers now builds static on windows
* change to make the SWig builds work on windows
* add the wrapper. Still needs tests
* first rgd java wrapper test, does not pass
* get static builds working on windows
* remove all of the "from __future__" imports
* remove the first batch of rdkit.six imports/uses
* next step of rdkit.six removal
* removing xrange, range, and some maps
* next round of removals
* next round of cleanups
* fix inchi test
* last bits of "from rdkit.six" are gone
* and the last of the six stuff is gone
* strange importlib problem
* first pass at adding a SubstructMatchParameter struct
* start moving the rest of the backend to use the parameters
* backend at least mostly moved over
* add aromaticMatchesConjugated
add tests
* switch over the MolBundle too
Add templates to reduce duplicated code
* support older compilers
let's see if it works...
* add SubstructMatchParameters to Python wrapper
* remove some deprecations and warnings
* damn compilers
* parameter support for bundles in python wrapper
* add the parameters to the java wrappers
* response to review
* Fingerprint generator first prototype
* Added some more details to the prototype
* Update based on comments
* Added additional outputs and return type changes
* FingerprintGenerator updated and placeholder implementation added
* Added getFingerprint implementation to FingerprintGenerator
* Added comments for FingerprintGenerator
* WIP: Atom pairs fingerprint implementation for FingerprintGenerator
* Removed templates and added comments
* Fixed AtomPairEnvGenerator creating duplicate environments
* Added a atom pair old version compatibility test
* Moved the FingerprintGenerator related tests to a new file
* Added new comments and changes from the PR comments
* using int types from std instead of boost and remove cleanUpEnvironments
* Minor refactoring for atom-pair atom code generation
* Added more tests for AtomPairGenerator
* Removed additional clean up method from FingerprinGenerator
* Added additional output for atom-pair fingerprint and a test
* Removed leftover code
* Default argument changes
* Removed leftover include
* Default invariant generation logic seperated from env generation logic for AtomPairs
* Implemented fingerprint as bit vector type and added the test for it
* Folded fingerprint implementation and a test case added
* String representation for fingerprint generator is added
* Python wrapper for fingeprint generator added with a simple test
* Removed unused linked libraries
* AtomPair related wrapper code moved to its own file
* Python wrapper methods for different fingerprint output types added
* Wrappers for invariants generators and tests are added
* Added more comments and tests
* Changed python side names for FIngerprintGenerator and removed extra wrappers used for invariant generators on python
* Fixed object lifetime problems for invariant generators in Python
* Fixed typo
* Added a list of test molecules and made fingerprint generator related classes noncopyable
* Morgan fingerprint python wrappers
* Removed argument helper class for wrapper
* Morgan Fingerprint simple implementation
* Added more invariants generators for Morgan
* Fixed a bug in Morgan bond invariant generator
* Added invariant generator combination tests
* Added atom pair generator to the invariant generator combination test
* Fixed a problem in morgan feature invariant generator
* Overriding invariants without generators is made possible
* Added comments and documentation
* Radius changed for morgan fingerprint test
* RDKit fingerprint generator implementation with cpp tests
* 32 bit and 64 bit fingerprint support for FingerprintGenerator
* Common utilities moved to FingerprintUtil.h and code duplication reduced
* Solved undefined reference issues for FPGenerator templates
* Topological torsion fp generator added
* Fingerprint notebook added
* Python wrappers updated
* Morgan tests added
* Tests expanded and reduced excess amounts of collision in folded output
* Expanded tests
* More documentation
* Python docs for atom pair
* Updated fingerprint generator notebook
* Python wrapper documentation added
* Seperated FingerprintGenerator implementations into seperated file again
* Python wrapper names updated to reflect new naming
* getCountFingerprint now returns 32 bit output and count simulation does not affect count fingerprints
* Python 3 compatibility for fingerprint generator tests
* a bit of ABC cleanup
* some comment formatting got screwed up
* <sigh>
* fix an uninitialized memory problem
* Added copyright statement to new files
* Corrected some comments and docs according to the latest changes
* Bulk fingerprint generation and tests
* Convenience function wrappers and size limiting for getSparseFingerprint
* Copyright text fixed
* Info string added to python wrappers
* Some changes to get the swig wrappers building again
* short test file for MolVS standardize_sm
* short test file for MolVS fragment
* short test file for MolVS metals
* short test file for MolVS normalize
* short test file for MolVS reionize
* short test file for MolVS tautomer
* short test file for MolVS validate
* long test file for MolVS standardize smiles
* long test file for MolVS fragment
* long test file for MolVS metals
* long test file for MolVS normalize
* long test file for MolVS reionize
* long test file for MolVS tautomer
* long test file for MolVS validate
* Unit tests for MolVS steps
* dropping support for Python2
* molvs/__init__.py
* molvs/charge.py
* molvs/errors.py
* molvs/fragment.py
* molvs/metal.py
* molvs/normalize.py
* molvs/resonance.py
* molvs/standardize.py
* molvs/tautomer.py
* molvs/utils.py
* molvs/validate.py
* molvs/validations.py
* molvs/cli.py
* adapted and renamed molvs/cli.py to work within $RDBASE/Contrib/MolVS/
* setup MolStandardize directories, source with empty cleanup function, header, CMake files
* corrections to empty source, header and test1.cpp
* adding empty functions and initializers to MolStandardize
* empty Metal source, header and added test
* added most of Metal.cpp functionality and made some more tests
* empty functions and initializers to Normalize
* empty functions and initializers to Validate
* added most code for RDKitDefault mode, along with some tests
* restructure for abstract base class ValidateMethod
* written in isNoneValidation for MolVSValidation
* took out isNoneValidation, put in noAtomValidation, neutralValidation, isotopeValidation for MolVSValidation
* added in AllowedAtoms
* added in disallowedAtoms
* corrections to Validate
* added code for FragmentRemover
* extended fragment functionality to include choose largest fragment, added in tests for fragment catalog, fragment remover. Also added fragmentValidation method in MolStandardize
* added another test to testValidate test_fragment
* corrections to fragment
* corrections to Metal
* added code for Normalize
* added normalize member function to MolStandardize and added tests
* added multi fragment functionality to Normalize.cpp and additional tests
* TransformCatalog
* tests for Normalize.cpp
* first bit of cleanup
* added most of Charge functionality and some tests
* some corrections to Charge.cpp and some more tests to testCharge.cpp
* corrections to Charge.cpp
* start of Tautomer Enumerate with some tests
* added BondType option to Tautomer Enumeration
* correcting for some memory leakage
* a few alterations to formatting
* sorting out some memory leaks
* sorting out some memory leaks
* some corrections for PCS test set
* redo tests with updated RDKit
* fixing memory leak
* more fixes after 100kPCS set testing
* using tab as delimiter in CSVs rather than comma
* tutorial for MolStandardize
* still working on Tautomer enumeration
* deleted some empty tests
* starting writing tautomer canonicalize
* rename test_data -> data (the source still needs to be updated)
* automatic source reformatting
* adjust to directory rename
* move the fragment catalog test into the MolStandardize directory
do not create separate library for FragmentCatalog
* stop building separate libraries for the catalogs
* move the CleanupParameters into the MolStandardize namespace
* first pass at python wrapper
* move the py module to the correct dir;
add some python tests;
add standardizeSmiles to python wrapper
* disabling the compareMolVSTest since that requires command line arguments to run
* get this building on windows
* put the python lib in the right place
* further work on python wrapper for rdMolStandardize
* added get and set functions to Metal and wrapped them
* added get and set functions to Metal and wrapped them
* changed construstor of Reionizer class and input args for reionize, wrapped this default
* overload Reionizer constructor so user can input own AcidBaseFile from python
* added Uncharger class to Charge and added test for Uncharger
* wrapped Fragment, fixed some memory leakage, changed some args and return types, added some tests
* wrapped Normalized and changed how Normalizer class is initiated
* changing MolVSValidation structure so user can choose which MolVS submethod they want
* starting to write Wrap for Validate
* now it compiles with Wrap/Validate.cpp
* a couple refactorings around validate
* move the validate code into the rdMolStandardize module
* make sure a valid pointer is returned for standardizeSmiles
* rdMolStandardize.MolVSValidation done and tests added
* half way through AllowedAtomsValidation
* finished AllowedAtomsValidation and DisallowedAtomsValidation
* moved charge, fragment, metal, normalize into the rdMolStandardize module
* changed tutorial to use wrapped code
* added copyrights
* added copyrights
* move the data files
* modify source files to adjust to the move
* added validateSmiles functionality
* removed std::cout
* redid some of the 100k PCS tests
* working on the tutorial
* adding some documentation
* deleting some comment lines
* some changes after pull review
* More changes after pull review
* start of trying to make java wrap
* remove some warnings, add some questions
* additional warning removals, a bit more reporting
* some test cleanups
* enable testing of the java code
* add a couple test files
* backup
* first pass at some theory documentatin
* it's a draft
* Update enhanced stereochemistry documentation
Adds initial target use case and caveats about the tentative
nature of the current implementation.
* Support read/write of molfile enhanced stereochemistry
This includes reading and writing of enhanced stereochemistry
from v3000 molfiles (sdf). Enhanced stereochemistry encodes
the relative configuration of stereocenters, allowing
representation of racemic mixtures and compounds with
unknown absolute stereochemistry.
It does not include:
* Python wrapping
* invalidation of the enhanced stereochemistry
* use of enhanced stereochemistry in search
* depiction of enhanced stereochemistry.
* Update to reflect changes from #1971
* change names of enum elements to allow compilation in VS2017
I think it's also clearer to do things this way
* Addressed most review comments.
* Run missed test "testEnhancedStereoChemistry"
* In tests, added size checks to group equality checks
* Updated copyright statements
* Deleted mol created for a test
* Use perfect forwarding in RWMol::setStereoGroups()
* use references for stereo groups that are checked in write and pickle
* Updated stereogroup.h in hopes of fixing compilation on Windows.
* clang-format
* try allowing a switch to boost regex and requiring it for g++-4.8
* do a better job of that
* typo
* Code review comments. Updated Copyright notice.
* When an atom is deleted, delete stereo groups containing it.
Also updates StereoGroup toUse accessors instead of
constant member attributes. This allows move of StereoGroups.
* RDKit style guide
* Add header required on Windows.
* get the SWIG wrappers to build
* this is a rough first pass, needs to be finished and is a strong argument for changing the names of some of the #defines that are currently used
* rationalize the rest of the #defines
add something to the release notes about this
* This makes assignStereochemistry cleanIt=True not remove CIS/TRANS
bond stereo chemistry that was manually added as described in issue #1614.
Incorrect CIS/TRANS stereochemistry will still be removed by
'cleanIt=true' if symmetry is detected. However, this symmetry
detection doesn't work in more complex pseudo-stereo chemistry cases:
bond stereo that depends on other bond stereo to break symmetry; and
bond stereo that depends on other atom stereo centers to break
symmetry. Test cases for these cases have been added ifdef'd in based
on USE_NEW_STEREOCHEMISTRY.
However, getting USE_NEW_STEREOCHEMISTRY to work in a copacetic way is
not trivial, I tried a little bit here to no avail. I'm leaving the
test cases checked in as they should be useful when we decide to make
the plunge into using Canon::chiralRankMolAtoms for symmetry detection
instead of the CIP ranks.
So this fixes at least the glaring issue of STEREOCIS and STEREOTRANS
being incorrectly removed by 'cleanIt=true' when it is indeed valid
stereo. The checks made for symmetry are rudimentary, but don't feel
complete.
* add another test; make what's being tested explicit
* test smiles generation and function when Hs have been added
* add a test that fails
* I think that it's ok to remove this
* backup
* At this point all tests pass.
Bond wedging is now handled even if sanitization is turned off when mol files are read
* adjust to code changes
* fix a couple problems caused by rebase
* update docs
* first pass, does not yet actually work
* pass2, same problems
* pass2, same problems
* another test
* new tests; bugfix
* move the code out to a header
* add a double bond example
* enable auto-downloads of the code
* move the function to its own namespace
* first pass at a basic python wrapper
* change coordgen commit used
* try supporting bond stereo; does not currently work
* cis/trans seems to now work.
* first pass at templates; needs testing
* use the fixed flag too
* need mol align
* expand test
* initial pass at python wrapper for template
* simplify tests
* add an option to directly use a substructure match for alignment
* scaling
* add #define
* Define a cache setting for RDK_COORDGEN_LIBS to allow these to be used in other packages
* return the conformer id from addCoords
* Make CoordGen the default when it’s available.
This is a backup commit… the tests don’t even come close to passing.
* add some debugging options for a bit
* add alignment step to testing when using non-fixed coords
* Add global to allow use of CoordGen to be disabled
get the basic depictor tests working
* make coordgen the default when it is available
* make sure things continue to work when coordgen is disabled
* get windows builds working
* mods to get this building on windows.
something is screwy with the fileParsersTest1
* no need to generate coords for the 1K C string
* fix java wrappers
* works on linux
* update the (stupid) way dependencies were handled on windows.
this allows a lot of cleanup of cmake files (still more to do)
the linux build is unlikely to work due to the way _statics aren't handled
* docs
* extend forceRDKit applicability
* switch coordgen version
* try using templates
* try to get the template dir finding reasonably robust w.r.t. conda install
* continuing to iterate on the way the template file is installed
* fix a problem caused by the merge
* remove test that should never have been checked in
* update expected results for cartridge tests
* switch back to using the RDKit as the default coordinate generator