Class SmilesStereo


  • public class SmilesStereo
    extends java.lang.Object
    This class relates to stereochemical issues
    • Method Detail

      • getChiralityClass

        private static int getChiralityClass​(java.lang.String xx)
      • getChiralClass

        public int getChiralClass​(SmilesAtom sAtom)
      • setChiralClass

        private int setChiralClass​(SmilesAtom sAtom)
      • normalizeClass

        private boolean normalizeClass​(SmilesAtom atom)
        re-order bonds to match standard @ and @@ types
        Parameters:
        atom -
        Returns:
        true if OK
      • setTopoCoordinates

        public boolean setTopoCoordinates​(SmilesAtom sAtom0,
                                          SmilesAtom pAtom,
                                          SmilesAtom sAtom2,
                                          Node[] cAtoms,
                                          boolean isNot)
        Parameters:
        sAtom0 - the first target atom
        pAtom - the pattern atom connected to the target atoms
        sAtom2 - allene atom
        cAtoms - the target atoms
        isNot -
        Returns:
      • getMappedTopoAtoms

        private int[] getMappedTopoAtoms​(SmilesAtom atom,
                                         SmilesAtom a2,
                                         Node[] cAtoms,
                                         int[] map)
      • getTopoMapPt

        private static boolean getTopoMapPt​(int[] map,
                                            int i,
                                            SmilesAtom atom,
                                            SmilesAtom cAtom,
                                            SmilesBond[] bonds,
                                            int n000)
        Parameters:
        map -
        i -
        atom -
        cAtom -
        bonds -
        n000 -
        Returns:
        true if found
      • getJmolAtom

        private Node getJmolAtom​(int i)
      • sortPolyBondsByStereo

        void sortPolyBondsByStereo​(SimpleNode atom,
                                   SimpleNode ref,
                                   javajs.util.T3 center,
                                   SimpleEdge[] bonds,
                                   javajs.util.V3 vTemp)
        Sort bond array as ccw rotation around the axis connecting the atom and the reference point (polyhedron center) as seen from outside the polyhedron looking in. Since we are allowing no branching, all atoms will appear as separate components with only numbers after them. These numbers will be processed and listed in this order.
        Parameters:
        atom -
        ref -
        center -
        bonds -
        vTemp -
      • checkStereoChemistry

        boolean checkStereoChemistry​(SmilesSearch search,
                                     VTemp v)
      • checkStereoForAtom

        public int checkStereoForAtom​(SmilesAtom pAtom,
                                      boolean isNot,
                                      boolean haveTopo)
      • checkPolyHedralWinding

        private boolean checkPolyHedralWinding​(Node a0,
                                               Node[] a)
      • addAlleneLonePair

        private void addAlleneLonePair​(SmilesAtom pAtom,
                                       Node[] jn,
                                       int k)
        for allenes, we must check for missing atoms
        Parameters:
        pAtom -
        jn -
        k -
      • getStereoFlag

        static java.lang.String getStereoFlag​(SimpleNode atom0,
                                              SimpleNode[] atoms,
                                              int nAtoms,
                                              VTemp v,
                                              boolean is2D)
        Parameters:
        atom0 -
        atoms -
        nAtoms -
        v -
        is2D -
        Returns:
        String
      • getHandedness

        static int getHandedness​(SimpleNode a,
                                 SimpleNode b,
                                 SimpleNode c,
                                 SimpleNode pt,
                                 VTemp v)
        determine the winding of the circuit a--b--c relative to point pt
        Parameters:
        a -
        b -
        c -
        pt -
        v -
        Returns:
        1 for "@", 2 for "@@"
      • getPlaneNormals

        private static void getPlaneNormals​(javajs.util.P3 atom1,
                                            javajs.util.P3 atom2,
                                            javajs.util.P3 atom3,
                                            javajs.util.P3 atom4,
                                            VTemp v)
      • getAtropicStereoFlag

        public static int getAtropicStereoFlag​(Node[] nodes)