#705 SMARTS component-level grouping and stereo matching

Needs_Review
closed
nobody
None
master
1
2014-11-15
2013-11-18
John May
No

This builds on all other open patches. There's still more to fix in the SMARTS but these patches add a fair bit. It's probably best to apply other patches first and then see where it starts. Here's a summary of what has been added.
- nested recursion, previous SMARTS parser would only allow one level of recursive patterns. Extending the parsing to multiple matches actually makes it a lot simpler and is easier when we add component grouping / stereo.
- removes initialisation from recursive atom matches, these had to be set up separately but are now all done via a 'SMARTSInvariants' class. This was also need for the nest recursion to be clean.
- parse large ring numbers in SMARTS
- match component-level grouping, also meant an updated to the ConnectivityChecker. the component-level group is fundamental to SMIRKS... (maybe next weekend). the grouping also works in recursive patterns and fixes bug (#1312).
- match tetrahedral and geometric (double-bond) configurations in SMARTS. The matching is relative and tetrahedral chirality can use logical operators. the double-bond chemistry is more tricky, 'C/C=C/,\C' is technically valid but even DEPICTMATCH doesn't handle it correctly.

branch: master+

Discussion

  • John May
    John May
    2013-11-18

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,4 +1,4 @@
    -This builds on all other open commits. There's still more to fix in the SMARTS but these patches add a fair bit. It's probably best to apply those and then see where it starts. 
    +This builds on all other open patches. There's still more to fix in the SMARTS but these patches add a fair bit. It's probably best to apply other patches first and then see where it starts. Here's a summary of what has been added. 
     - nested recursion, previous SMARTS parser would only allow one level of recursive patterns. Extending the parsing to multiple matches actually makes it a lot 
     - removes initialisation from recursive atom matches, these had to be set up separately but are now all done via a 'SMARTSInvariants' class. This was also need for the nest recursion to be clean.
     - parse large ring numbers in SMARTS
    
     
  • John May
    John May
    2013-11-18

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,5 +1,5 @@
     This builds on all other open patches. There's still more to fix in the SMARTS but these patches add a fair bit. It's probably best to apply other patches first and then see where it starts. Here's a summary of what has been added. 
    -- nested recursion, previous SMARTS parser would only allow one level of recursive patterns. Extending the parsing to multiple matches actually makes it a lot 
    +- nested recursion, previous SMARTS parser would only allow one level of recursive patterns. Extending the parsing to multiple matches actually makes it a lot simpler and is easier when we add component grouping / stereo.
     - removes initialisation from recursive atom matches, these had to be set up separately but are now all done via a 'SMARTSInvariants' class. This was also need for the nest recursion to be clean.
     - parse large ring numbers in SMARTS
     - match component-level grouping, also meant an updated to the ConnectivityChecker. the component-level group is fundamental to SMIRKS... (maybe next weekend). the grouping also works in recursive patterns and fixes bug (#1312).
    
     
  • John May
    John May
    2013-12-11

    other parts on downnstream master+
    * renderer updates, (alignment of labels, correct bounding box and improved the specification of general shapes)
    * faster canonisation/symmetry perception
    * Inchi numbers for labelling universal SMILES
    * depiction of tetrahedral stereo chemistry (that is assignment of wedge/hatch bonds)
    * correction of double bond stereo chemistry (that is adjusting layout coordinates such the representation is correct).

     
    Last edit: John May 2013-12-11
  • John May
    John May
    2013-12-18

    • status: open --> closed
     
  • John May
    John May
    2013-12-18

    Applied