* not quite done yet
* Fixes#2244
* Fixes#2148
This fixes a few of the knock-on effects of the actual fix.
* Test that we still write SMILES properly
* Fixes#2266 (#2269)
* Fixes#2268 (#2270)
* Improve interactivity of output SVG (#2253)
* Add clickable atoms when tagAtoms() is called
* add python tests
* add class tags for atoms and bonds
* add marker to allow easy insertion of extra text
* 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
* 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
* move detectBondStereoChemistry() into MolOps
* switch more code over to using the new function
* add an addStereoChemistryFrom3D() function. Needs testing still.
* add some tests
* cleanups and rename
* 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.
* Fixes#1021, kind of.
The test for the bug passes, but there are other failures
* all tests except hanoi pass
* passes all tests
* remove some vestigial code
* remove debug-droppings
* minor documentation
This changes the CIPCode and CIPRank atom properties to no longer be computed properties.
Note: under linux I was unable to actually get the bug to manifest (converting the uint property to an int didn't cause problems), but that doesn't mean it shouldn't still be fixed.
o rdkit gains a RDKit::common_properties namespace that contains common string value properties
o Dict.h and below gain getPropIfPresent that attempts to retrieve a property and returns
true/false on success or failure. This is used to optimize access.
o rdkit learns how to pass property keys by reference, not value.
A new namespace has been added to RDKit, common_properties
that contains the std::string values for commonly used
properties. This helps to avoid typos in string values
but also avoids a creation of std::strings from character
values. All accessors (has/get/clear and getPropIfPresent) now pass
the key by reference.
Additionally, getPropIfPresent removes the double lookup
of hasProp/getProp which can be a significant speedup
in the smiles and smarts parsers (10-20%)