NucleicMonomer
Date: 2019-10-22

org.jmol.modelsetbio

## Class NucleicMonomer

- java.lang.Object
- - org.jmol.modelset.Group
  - - org.jmol.modelsetbio.Monomer
    - - org.jmol.modelsetbio.PhosphorusMonomer
      - - org.jmol.modelsetbio.NucleicMonomer

- All Implemented Interfaces:
    Structure

      public class NucleicMonomer
      extends PhosphorusMonomer

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) javajs.util.P3` | `baseCenter`
    `private javajs.util.Lst<BasePair>` | `bps`
    `private static byte` | `C1P`
    `private static byte` | `C2`
    `private static byte` | `C2P`
    `private static byte` | `C3P`
    `private static byte` | `C4`
    `private static byte` | `C4P`
    `private static byte` | `C5`
    `private static byte` | `C5P`
    `(package private) static byte` | `C6`
    `private static byte` | `C8`
    `javajs.util.P3[]` | `dssrBox`
    `float` | `dssrBoxHeight`
    `javajs.util.P3[]` | `dssrFrame`
    `private static byte` | `H3T`
    `private static byte` | `H5T`
    `private boolean` | `hasRnaO2Prime`
    `private static byte[]` | `heavyAtomIndexes`
    `(package private) static byte[]` | `interestingNucleicAtomIDs`
    `private boolean` | `isPurine`
    `(package private) boolean` | `isPyrimidine`
    `private static byte` | `N1`
    `private static byte` | `N2`
    `private static byte` | `N3`
    `private static byte` | `N4`
    `private static byte` | `N6`
    `private static byte` | `N7`
    `private static byte` | `N9`
    `private static byte` | `NP`
    `private static byte` | `O1P`
    `private static byte` | `O2`
    `private static byte` | `O2P`
    `private static byte` | `O2Pr`
    `private static byte` | `O3P`
    `private static byte` | `O4`
    `private static byte` | `O4P`
    `private static byte` | `O5P`
    `private static byte` | `O6`
    `private static byte[]` | `riboseOffsetIndexes`
    `private static byte[]` | `ring5OffsetIndexes`
    `private static byte[]` | `ring6OffsetIndexes`

    - ### Fields inherited from class org.jmol.modelsetbio.PhosphorusMonomer

      `P`

    - ### Fields inherited from class org.jmol.modelsetbio.Monomer

      `backboneBlockVis, bioPolymer, monomerIndex, offsets`

    - ### Fields inherited from class org.jmol.modelset.Group

      `chain, dssrNT, firstAtomIndex, group1, group3Names, groupID, groupIndex, lastAtomIndex, leadAtomIndex, selectedIndex, seqcode, shapeVisibilityFlags, specialAtomNames, standardGroupList`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `NucleicMonomer()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBasePair(BasePair bp)`
    `void` | `findNearestAtomIndex(int x, int y, Atom[] closest, short madBegin, short madEnd)` Selects LeadAtom when this Monomer is clicked iff it is closer to the user.
    `javajs.util.Lst<BasePair>` | `getBasePairs()`
    `void` | `getBaseRing6Points(javajs.util.P3[] pts)`
    `Atom` | `getC1P()`
    `(package private) Atom` | `getC2()`
    `(package private) Atom` | `getC4P()`
    `(package private) Atom` | `getC5()`
    `(package private) Atom` | `getC6()`
    `(package private) Atom` | `getC8()`
    `boolean` | `getCrossLinkVector(javajs.util.Lst<java.lang.Integer> vReturn, boolean crosslinkCovalent, boolean crosslinkHBond)`
    `javajs.util.P3[]` | `getDSSRFrame(Viewer vwr)`
    `boolean` | `getEdgePoints(javajs.util.P3[] pts)`
    `protected char` | `getGroup1b()`
    `java.lang.Object` | `getHelixData(int tokType, char qType, int mStep)`
    `Atom` | `getN0()`
    `(package private) Atom` | `getN1()`
    `(package private) Atom` | `getN2()`
    `Atom` | `getN3()`
    `(package private) Atom` | `getN4()`
    `(package private) Atom` | `getN6()`
    `(package private) Atom` | `getO2()`
    `(package private) Atom` | `getO4()`
    `(package private) Atom` | `getO6()`
    `(package private) Atom` | `getP()`
    `private void` | `getPoints(byte[] a, javajs.util.P3[] pts)`
    `STR` | `getProteinStructureType()`
    `javajs.util.Quat` | `getQuaternion(char qType)`
    `(package private) javajs.util.P3` | `getQuaternionFrameCenter(char qType)`
    `void` | `getRiboseRing5Points(javajs.util.P3[] pts)`
    `(package private) Atom` | `getTerminatorAtom()`
    `(package private) boolean` | `isConnectedAfter(Monomer possiblyPreviousMonomer)`
    `boolean` | `isCrossLinked(Group g)`
    `boolean` | `isDna()` group ID-based definition
    `boolean` | `isGuanine()`
    `boolean` | `isNucleicMonomer()`
    `boolean` | `isPurine()` group ID-based definition
    `boolean` | `isPyrimidine()` group ID-based definition
    `boolean` | `isRna()` group ID-based definition
    `boolean` | `maybeGetBaseRing5Points(javajs.util.P3[] pts)`
    `private NucleicMonomer` | `set4(Chain chain, java.lang.String group3, int seqcode, int firstAtomIndex, int lastAtomIndex, byte[] offsets)`
    `void` | `setGroup1(char g)`
    `void` | `setRingsClickable()`
    `void` | `setRingsVisible(boolean isVisible)`
    `static Monomer` | `validateAndAllocate(Chain chain, java.lang.String group3, int seqcode, int firstAtomIndex, int lastAtomIndex, int[] specialAtomIndexes)`

    - ### Methods inherited from class org.jmol.modelsetbio.PhosphorusMonomer

      `getQuaternionP, getStructure, isCA2, isNucleic, validateAndAllocateP`

    - ### Methods inherited from class org.jmol.modelsetbio.Monomer

      `checkOptional, getAtomFromOffsetIndex, getAtomIndex, getBioPolymerIndexInModel, getBioPolymerLength, getCrossLinkGroup, getGroup1, getGroupParameter, getHelixData2, getInitiatorAtom, getLeadAtom, getMonomerIndex, getMonomerSequenceAtoms, getMyInfo, getSelectedMonomerCount, getSelectedMonomerIndex, getSpecialAtom, getSpecialAtomPoint, getStructureId, getUniqueID, getWingAtom, have, isConnectedPrevious, isHelix, isLeadAtom, isSheet, scanForOffsets, set2, setBioPolymer, setGroupID, setGroupParameter, setLeadAtomIndex, setStrucNo, updateOffsetsForAlternativeLocations`

    - ### Methods inherited from class org.jmol.modelset.Group

      `addAtoms, fixIndices, getBSSideChain, getCarbonylOxygenAtom, getGroup3, getGroupInfo, getInsCode, getInsertionCode, getInsertionCodeChar, getInsertionCodeFor, getLeadAtomOr, getMinZ, getModel, getNitrogenAtom, getProteinStructureSubType, getProteinStructureTag, getQuaternionFrame, getResno, getSeqcodeFor, getSeqcodeString, getSeqcodeStringFor, getSeqNumberFor, getStrucNo, haveSequenceNumber, isAdded, isCarbohydrate, isCursorOnTopOf, isDnaByID, isProtein, isPurineByID, isPyrimidineByID, isRnaByID, isSelected, isWithinStructure, scaleToScreen, setAtomBits, setAtomBitsAndClear, setGroup, setProteinStructureType, setResno, setShapeVisibility, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### C6

          static final byte C6

      See Also:
        Constant Field Values

    - #### O2Pr

          private static final byte O2Pr

      See Also:
        Constant Field Values

    - #### C5

          private static final byte C5

      See Also:
        Constant Field Values

    - #### N1

          private static final byte N1

      See Also:
        Constant Field Values

    - #### C2

          private static final byte C2

      See Also:
        Constant Field Values

    - #### N3

          private static final byte N3

      See Also:
        Constant Field Values

    - #### C4

          private static final byte C4

      See Also:
        Constant Field Values

    - #### O2

          private static final byte O2

      See Also:
        Constant Field Values

    - #### N7

          private static final byte N7

      See Also:
        Constant Field Values

    - #### C8

          private static final byte C8

      See Also:
        Constant Field Values

    - #### N9

          private static final byte N9

      See Also:
        Constant Field Values

    - #### O4

          private static final byte O4

      See Also:
        Constant Field Values

    - #### O6

          private static final byte O6

      See Also:
        Constant Field Values

    - #### N4

          private static final byte N4

      See Also:
        Constant Field Values

    - #### NP

          private static final byte NP

      See Also:
        Constant Field Values

    - #### N6

          private static final byte N6

      See Also:
        Constant Field Values

    - #### N2

          private static final byte N2

      See Also:
        Constant Field Values

    - #### H5T

          private static final byte H5T

      See Also:
        Constant Field Values

    - #### O5P

          private static final byte O5P

      See Also:
        Constant Field Values

    - #### H3T

          private static final byte H3T

      See Also:
        Constant Field Values

    - #### O3P

          private static final byte O3P

      See Also:
        Constant Field Values

    - #### C3P

          private static final byte C3P

      See Also:
        Constant Field Values

    - #### O1P

          private static final byte O1P

      See Also:
        Constant Field Values

    - #### O2P

          private static final byte O2P

      See Also:
        Constant Field Values

    - #### C1P

          private static final byte C1P

      See Also:
        Constant Field Values

    - #### C2P

          private static final byte C2P

      See Also:
        Constant Field Values

    - #### C4P

          private static final byte C4P

      See Also:
        Constant Field Values

    - #### O4P

          private static final byte O4P

      See Also:
        Constant Field Values

    - #### C5P

          private static final byte C5P

      See Also:
        Constant Field Values

    - #### interestingNucleicAtomIDs

          static final byte[] interestingNucleicAtomIDs

    - #### isPurine

          private boolean isPurine

    - #### isPyrimidine

          boolean isPyrimidine

    - #### hasRnaO2Prime

          private boolean hasRnaO2Prime

    - #### ring6OffsetIndexes

          private static final byte[] ring6OffsetIndexes

    - #### ring5OffsetIndexes

          private static final byte[] ring5OffsetIndexes

    - #### riboseOffsetIndexes

          private static final byte[] riboseOffsetIndexes

    - #### heavyAtomIndexes

          private static final byte[] heavyAtomIndexes

    - #### baseCenter

          javajs.util.P3 baseCenter

    - #### bps

          private javajs.util.Lst<BasePair> bps

    - #### dssrBox

          public javajs.util.P3[] dssrBox

    - #### dssrBoxHeight

          public float dssrBoxHeight

    - #### dssrFrame

          public javajs.util.P3[] dssrFrame

  - ### Constructor Detail

    - #### NucleicMonomer

          private NucleicMonomer()

  - ### Method Detail

    - #### validateAndAllocate

          public static Monomer validateAndAllocate(Chain chain,
                                                    java.lang.String group3,
                                                    int seqcode,
                                                    int firstAtomIndex,
                                                    int lastAtomIndex,
                                                    int[] specialAtomIndexes)

    - #### set4

          private NucleicMonomer set4(Chain chain,
                                      java.lang.String group3,
                                      int seqcode,
                                      int firstAtomIndex,
                                      int lastAtomIndex,
                                      byte[] offsets)

    - #### isNucleicMonomer

          public boolean isNucleicMonomer()

      Overrides:
        `isNucleicMonomer` in class `Group`

    - #### isDna

          public boolean isDna()

      Description copied from class: `Group`
      group ID-based definition
      Overrides:
        `isDna` in class `PhosphorusMonomer`
      Returns:
        boolean

    - #### isRna

          public boolean isRna()

      Description copied from class: `Group`
      group ID-based definition
      Overrides:
        `isRna` in class `PhosphorusMonomer`
      Returns:
        boolean

    - #### isPurine

          public boolean isPurine()

      Description copied from class: `Group`
      group ID-based definition
      Overrides:
        `isPurine` in class `PhosphorusMonomer`
      Returns:
        boolean

    - #### isPyrimidine

          public boolean isPyrimidine()

      Description copied from class: `Group`
      group ID-based definition
      Overrides:
        `isPyrimidine` in class `PhosphorusMonomer`
      Returns:
        boolean

    - #### isGuanine

          public boolean isGuanine()

    - #### getProteinStructureType

          public STR getProteinStructureType()

      Overrides:
        `getProteinStructureType` in class `PhosphorusMonomer`

    - #### getP

          Atom getP()

    - #### getC1P

          public Atom getC1P()

    - #### getC2

          Atom getC2()

    - #### getC5

          Atom getC5()

    - #### getC6

          Atom getC6()

    - #### getC8

          Atom getC8()

    - #### getC4P

          Atom getC4P()

    - #### getN1

          Atom getN1()

    - #### getN3

          public Atom getN3()

    - #### getN2

          Atom getN2()

    - #### getN4

          Atom getN4()

    - #### getN6

          Atom getN6()

    - #### getO2

          Atom getO2()

    - #### getO4

          Atom getO4()

    - #### getO6

          Atom getO6()

    - #### getTerminatorAtom

          Atom getTerminatorAtom()

      Overrides:
        `getTerminatorAtom` in class `Monomer`

    - #### getBaseRing6Points

          public void getBaseRing6Points(javajs.util.P3[] pts)

    - #### getPoints

          private void getPoints(byte[] a,
                                 javajs.util.P3[] pts)

    - #### maybeGetBaseRing5Points

          public boolean maybeGetBaseRing5Points(javajs.util.P3[] pts)

    - #### getRiboseRing5Points

          public void getRiboseRing5Points(javajs.util.P3[] pts)

    - #### isConnectedAfter

          boolean isConnectedAfter(Monomer possiblyPreviousMonomer)

      Overrides:
        `isConnectedAfter` in class `PhosphorusMonomer`

    - #### findNearestAtomIndex

          public void findNearestAtomIndex(int x,
                                           int y,
                                           Atom[] closest,
                                           short madBegin,
                                           short madEnd)

      Description copied from class: `Monomer`
      Selects LeadAtom when this Monomer is clicked iff it is closer to the user.
      Overrides:
        `findNearestAtomIndex` in class `Monomer`

    - #### setRingsVisible

          public void setRingsVisible(boolean isVisible)

    - #### setRingsClickable

          public void setRingsClickable()

    - #### getN0

          public Atom getN0()

    - #### getHelixData

          public java.lang.Object getHelixData(int tokType,
                                               char qType,
                                               int mStep)

      Overrides:
        `getHelixData` in class `PhosphorusMonomer`
      Returns:
        helix data of some sort

    - #### getQuaternionFrameCenter

          javajs.util.P3 getQuaternionFrameCenter(char qType)

      Overrides:
        `getQuaternionFrameCenter` in class `PhosphorusMonomer`
      Returns:
        center

    - #### getQuaternion

          public javajs.util.Quat getQuaternion(char qType)

      Overrides:
        `getQuaternion` in class `PhosphorusMonomer`
      Returns:
        quaternion

    - #### isCrossLinked

          public boolean isCrossLinked(Group g)

      Overrides:
        `isCrossLinked` in class `Monomer`
      Returns:
        T/F

    - #### getCrossLinkVector

          public boolean getCrossLinkVector(javajs.util.Lst<java.lang.Integer> vReturn,
                                            boolean crosslinkCovalent,
                                            boolean crosslinkHBond)

      Overrides:
        `getCrossLinkVector` in class `Monomer`
      Returns:
        T/F

    - #### getEdgePoints

          public boolean getEdgePoints(javajs.util.P3[] pts)

    - #### addBasePair

          public void addBasePair(BasePair bp)

    - #### setGroup1

          public void setGroup1(char g)

    - #### getBasePairs

          public javajs.util.Lst<BasePair> getBasePairs()

      Returns:
        list of base pairs associated with this monomer, possibly more than one if noncanonical

    - #### getGroup1b

          protected char getGroup1b()

      Overrides:
        `getGroup1b` in class `Monomer`

    - #### getDSSRFrame

          public javajs.util.P3[] getDSSRFrame(Viewer vwr)