Improved handling of SP/TB/OH reording in SMILES/SMARTS. #6777
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reference Issue
n/a
What does this implement/fix? Explain your changes.
getMaxNbors(tag)
utility function to avoid repeated logic in multiple placesgetChiralPermutation()
for handling implicit/missing ligands (uses -1), allow inverse lookupChange how missing/implicit ligands on SP/TB/OH atoms are treated. This does not change the internal RDKit semantics only the to/from SMILES. The missing functionality was
getChiralPermutation
needed to support missing ligands and being able to do the inverse look up.This is also useful for SMARTS matching, i.e. matching a partial substructure in a larger octahedral, but will add that another time.
There was also a minor oversight in the Canon.cp in that reordering was only done
if (trueOrder.size() >= 3)
which is not correct now for non-tetrahedral stereochemistry.I didn't think with would be case originally (hence I did them first) but these changes are independent of #6730 and #6772.
Any other comments?