* 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>
* Skip -1 on valence lists for metals.
* Don't give metal a charge that exceeds the maximum valence.
* Re-format file.
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* Make MetalDisconnector more robust against metallorganics
* - fixed misbehavior with radicals
- added tests
- code cleanup
* - fixed MetalDisconnector with dative bonds
- removed pointless test
* 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
* 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