* 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
* Removes ATOM/BOND_SPTR in boost::graph in favor of raw pointers
* Actually delete atoms and bonds...
* RWMol::clear now calls destroy to handle atom/bond deletion
* Changes broken Atom lookup for windows/gcc
* Adds tests for running with valgrind
* Adds test designed for valgrind and molecule deletions
* Removes RNG, actually tests bond deletions
* update swig wrappers
* deal with most recent changes on the main branch
* Add parameter to skip proximity bonding during PDB reading
* Test proximityBonding flag
* Remove multivalent Hs and bonds to metals in PDB
* Add tests for multivalent Hs and metal unbinding
* Remove covalent bonds to waters
* Test unbinding of HOHs
* Refactor funxtions
* Rename flag for cosistency
* Include flavor in double bond perception
* Add metalorganic test (APW ligand)
* Validate input foe IsBlacklistedPair and minor changes.
* first steps towards flexible colour palettes
* add B&W palette and a test for it
* add python support;
this is, once again, not the best API due to the inability to auto-translate boost::tuples at this point
* more palette control from python
* rename some of the swig-wrapped types to make them more consistent
* handle palettes that do not have a default value
* a bit of cleanup and modernization
* switch to -j3
* back to -j2
* disable static libs
* allow dynamic linking of swig wrappers
* turn off the py27 builds while we are testing
* Install java and SWIG
* re-enable python2.7
* Wrap Chem.FindPotentialStereoBonds into Python.
* findPotentialStereoBonds now sets the Bond.GetStereo property of the double bond to Bond::STEREOANY.
Some of the doc strings indicated this as the desired behavior, but
some others also indicated otherwise. So I've cleaned up and
refactored those doc strings as well to be consistent. Pulled all the
doc string comments from the .cpp file up to the .h file and merged
all the necessary prose, including adding some about the fact rings
are ignored.
Previously, users would have to test the size of the GetStereoAtoms
vector to determine whether this function found potential double bond
stereo. Testing for Bond::STEREOANY instead is way more straight
forward.
* Added getAlignmentTransform to ROMol.i to expose in Java SWIG wrapper
* Added missing argument
Added missing argument to call to getAlignmentTransform causing build failure
* Added test case for getAlignmentTransform
* Update AlignTests.java
* Update AlignTests.java
* Update AlignTests.java
* 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
* Fixes csharp build for 64 bit systems
* Need to support make and make install stages
* switch to an alternate strategy and get it working for the java wrappers too
this now builds for me on 64bit win10 with MSVC14
* add missing files from that last commit
* Hopefully fixes unix and osx builds while maintaining msvc builds
* Fixes mono builds, removes python check
* update .gitignore
* foundation for 3D descriptors
move PBF into core
* cleanup work
* a bit more cleanup
* move the principal moments calc to MolTransforms
* cleanup
* cleanups
* add caching of the principal moments and values
* do not include the 3D descriptors in MolDescriptors.h
* the properties are computed
* add PMI descriptors and tests
* add tests for NPR descriptors
* return 0 when the largest PMI is zero
* PMI edge case tests
* NPR edge case tests
* PBF edge case tests
* PBF edge case tests
* more edge cases
* add a few more 3d descriptors
* add defns to docs
* tests for the new descriptors
* add versions to new descriptors
* add 3d descriptors to python wrapper
* add eigen support to the travis build
* try to get non-windows builds working
* remove computeCovarianceMatrix() from java wrapper
* make pmi property names "private"