MMCifReader
Date: 2019-10-22

org.jmol.adapter.readers.cif

## Class MMCifReader

- java.lang.Object
- - org.jmol.adapter.smarter.AtomSetCollectionReader
  - - org.jmol.adapter.readers.cif.CifReader
    - - org.jmol.adapter.readers.cif.MMCifReader

- All Implemented Interfaces:
    javajs.api.GenericLineReader
  Direct Known Subclasses:
    MMTFReader

      public class MMCifReader
      extends CifReader

  mmCIF files are recognized prior to class creation. Required fields include one of: _entry.id _database_PDB_ _pdbx_ _chem_comp.pdbx_type _audit_author.name _atom_site.
  Author:
    Bob Hanson (hansonr@stolaf.edu)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static byte` | `ASSEM_ID`
    `private static byte` | `ASSEM_LIST`
    `private static byte` | `ASSEM_OPERS`
    `private static java.lang.String[]` | `assemblyFields`
    `private java.util.Map<java.lang.String,javajs.util.BS>` | `assemblyIdAtoms`
    `private static byte` | `BEG_ASYM_ID`
    `private static byte` | `BEG_INS_CODE`
    `private static byte` | `BEG_SEQ_ID`
    `private boolean` | `byChain`
    `private boolean` | `bySymop`
    `private int[]` | `chainAtomCount`
    `private java.util.Map<java.lang.String,int[]>` | `chainAtomCounts`
    `private java.util.Map<java.lang.String,javajs.util.P3>` | `chainAtomMap`
    `private javajs.util.P3` | `chainSum`
    `private static byte` | `CHEM_COMP_BOND_AROMATIC_FLAG`
    `private static byte` | `CHEM_COMP_BOND_ATOM_ID_1`
    `private static byte` | `CHEM_COMP_BOND_ATOM_ID_2`
    `private static byte` | `CHEM_COMP_BOND_ID`
    `private static byte` | `CHEM_COMP_BOND_VALUE_ORDER`
    `private static byte` | `CHEM_COMP_ID`
    `private static byte` | `CHEM_COMP_NAME`
    `private static java.lang.String[]` | `chemCompBondFields`
    `private static java.lang.String[]` | `chemCompFields`
    `private static byte` | `CONF_TYPE_ID`
    `protected boolean` | `done`
    `private boolean` | `doSetBonds`
    `private static byte` | `END_ASYM_ID`
    `private static byte` | `END_INS_CODE`
    `private static byte` | `END_SEQ_ID`
    `private static java.lang.String` | `FAMILY_ASSEM_CAT`
    `private static java.lang.String` | `FAMILY_CHEMCOMP_CAT`
    `private static java.lang.String` | `FAMILY_COMPBOND`
    `private static java.lang.String` | `FAMILY_COMPBOND_CAT`
    `private static java.lang.String` | `FAMILY_NCS`
    `private static java.lang.String` | `FAMILY_NCS_CAT`
    `private static java.lang.String` | `FAMILY_OPER`
    `private static java.lang.String` | `FAMILY_OPER_CAT`
    `private static java.lang.String` | `FAMILY_SEQUENCEDIF_CAT`
    `private static java.lang.String` | `FAMILY_SHEET`
    `private static java.lang.String` | `FAMILY_SHEET_CAT`
    `private static java.lang.String` | `FAMILY_STRUCSITE`
    `private static java.lang.String` | `FAMILY_STRUCSITE_CAT`
    `private static java.lang.String` | `FAMILY_STRUCTCONF`
    `private static java.lang.String` | `FAMILY_STRUCTCONF_CAT`
    `private static java.lang.String` | `FAMILY_STRUCTCONN`
    `private static java.lang.String` | `FAMILY_STRUCTCONN_CAT`
    `private static byte` | `HELIX_CLASS`
    `private java.util.Map<java.lang.String,javajs.util.M4>` | `htBiomts`
    `private java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object[]>>` | `htBondMap`
    `protected java.util.Map<java.lang.String,java.lang.String>` | `htHetero`
    `protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>>` | `htSites`
    `protected boolean` | `isBiomolecule`
    `private boolean` | `isLigandBondBug`
    `(package private) javajs.util.M4` | `mident`
    `private int` | `modelIndex`
    `private java.lang.String` | `modelStrings`
    `private static java.lang.String[]` | `ncsoperFields`
    `private static byte` | `OPER_ID`
    `private static byte` | `OPER_XYZ`
    `private static java.lang.String[]` | `operFields`
    `private boolean` | `requiresSorting`
    `private static byte` | `SERIAL_NO`
    `private static byte` | `SHEET_ID`
    `private static byte` | `SITE_ASYM_ID`
    `private static byte` | `SITE_COMP_ID`
    `private static byte` | `SITE_ID`
    `private static byte` | `SITE_INS_CODE`
    `private static byte` | `SITE_SEQ_ID`
    `private static byte` | `STRAND_ID`
    `private static byte` | `STRUCT_CONN_ALT1`
    `private static byte` | `STRUCT_CONN_ALT2`
    `private static byte` | `STRUCT_CONN_ASYM1`
    `private static byte` | `STRUCT_CONN_ASYM2`
    `private static byte` | `STRUCT_CONN_ATOM1`
    `private static byte` | `STRUCT_CONN_ATOM2`
    `private static byte` | `STRUCT_CONN_COMP1`
    `private static byte` | `STRUCT_CONN_COMP2`
    `private static byte` | `STRUCT_CONN_ORDER`
    `private static byte` | `STRUCT_CONN_SEQ1`
    `private static byte` | `STRUCT_CONN_SEQ2`
    `private static byte` | `STRUCT_CONN_SYMM1`
    `private static byte` | `STRUCT_CONN_SYMM2`
    `private static byte` | `STRUCT_CONN_TYPE`
    `private static byte` | `STRUCT_ID`
    `private static byte` | `STRUCT_REF_G1`
    `private static byte` | `STRUCT_REF_G3`
    `private static java.lang.String[]` | `structConfFields`
    `private static java.lang.String[]` | `structConnFields`
    `private java.lang.String` | `structConnList`
    `private javajs.util.Lst<java.lang.Object[]>` | `structConnMap`
    `private static java.lang.String[]` | `structRefFields`
    `private static java.lang.String[]` | `structSheetRangeFields`
    `private static java.lang.String[]` | `structSiteFields`
    `private int` | `thisChain`
    `protected javajs.util.Lst<java.util.Map<java.lang.String,java.lang.Object>>` | `vBiomolecules`

    - ### Fields inherited from class org.jmol.adapter.readers.cif.CifReader

      `ac, col2key, data, FAMILY_ATOM, field, firstChar, haveCellWaveVector, haveHAtoms, htGroup1, iHaveDesiredModel, isCourseGrained, isLigand, isMagCIF, isMMCIF, key, key0, key2col, lastDataSetName, maxSerial, modelMap, nAtoms, nAtoms0, NONE, parser, pdbID, skipping, thisDataSetName, useAuthorChainID`

    - ### Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader

      `addedData, addedDataKey, addVibrations, allowPDBFilter, ANGSTROMS_PER_BOHR, applySymmetryToBonds, asc, baseAtomIndex, binaryDoc, bsFilter, bsModels, calculationType, continuing, debugging, desiredModelNumber, desiredSpaceGroupIndex, desiredVibrationNumber, doApplySymmetry, doCentralize, doCheckUnitCell, doConvertToFractional, doPackUnitCell, doProcessLines, doReadMolecularOrbitals, dssr, fileName, fileOffset, filePath, fileScaling, fillRange, filter, filterHetero, fixJavaFloat, forcePacked, getHeader, haveAtomFilter, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, ignoreStructure, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, isBinary, isConcatenated, isDSSP1, isFinalized, isMolecular, isPrimitive, isSequential, isTrajectory, latticeCells, latticeScaling, line, lstNCS, matUnitCellOrientation, modDim, modelNumber, ms, mustFinalizeModelSet, next, out, packingError, prevline, primitiveToCrystal, ptLine, ptSupercell, reader, readerName, requiresBSFilter, reverseModels, rotateHexCell, sgName, stateScriptVersionInt, strSupercell, symmetry, templateAtomCount, thisBiomolecule, trajectorySteps, unitCellOffset, unitCellParams, useAltNames, useFileModelNumbers, validation, vibrationNumber, vibsFractional, vwr`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MMCifReader()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addAssembly(java.lang.String[] assem)`
    `protected void` | `addHetero(java.lang.String groupName, java.lang.String hetName, boolean doCheck, boolean addNote)`
    `protected void` | `addMatrix(java.lang.String id, javajs.util.M4 m4, boolean isNCS)`
    `private void` | `addStructure(Structure structure)`
    `protected void` | `checkFilterAssembly(java.lang.String id, java.util.Map<java.lang.String,java.lang.Object> info)`
    `protected int` | `checkPDBModelField(int modelField, int currentModelNo)`
    `protected boolean` | `checkSubclassSymmetry()`
    `private void` | `createParticle(java.lang.String id)`
    `private java.lang.String` | `crossBinary(java.lang.String ops1, java.lang.String ops2)`
    `private java.lang.String` | `decodeAssemblyOperators(java.lang.String ops)`
    `protected boolean` | `finalizeSubclass()`
    `private javajs.util.M4` | `getOpMatrix(java.lang.String ops)`
    `protected int` | `incrementModel(int modelNo)`
    `protected void` | `initSubclass()`
    `private boolean` | `processAssemblyGenBlock()`
    `private void` | `processBonds(javajs.util.Lst<java.lang.Object[]> cmap, java.util.Map<java.lang.Object,java.lang.Integer> map, boolean isStructConn)`
    `private boolean` | `processChemCompLoopBlock()` a general name definition field.
    `private boolean` | `processCompBondLoopBlock()`
    `private boolean` | `processSequence()` get canonical 1-letter DNA/RNA sequence code from 3-letter code.
    `private boolean` | `processStructConfLoopBlock()` identifies ranges for HELIX and TURN
    `private boolean` | `processStructConnLoopBlock()`
    `private boolean` | `processStructOperListBlock(boolean isNCS)`
    `private boolean` | `processStructSheetRangeLoopBlock()` identifies sheet ranges
    `private boolean` | `processStructSiteBlock()` identifies structure sites
    `boolean` | `processSubclassAtom(Atom atom, java.lang.String assemblyId, java.lang.String strChain)`
    `protected void` | `processSubclassEntry()`
    `protected boolean` | `processSubclassLoopBlock()`
    `private int` | `setBiomolecule(java.util.Map<java.lang.String,java.lang.Object> biomolecule, javajs.util.BS bsAll)`
    `private void` | `setBiomolecules()`
    `private void` | `setBonds()` Note that setting bonds from _struct_conn is only done if we have updated CIF files, which include _chem_comp_bond.
    `private void` | `setHetero()`
    `protected void` | `sortAssemblyModels()` issue here is that mmCIF assembly atoms can be in different blocks by chain: Model1:Chain1 Model2:Chain1 Model1:Chain2 Model2:Chain2 ...

    - ### Methods inherited from class org.jmol.adapter.readers.cif.CifReader

      `addHeader, applySymmetryAndSetTrajectory, checkAllFieldsPresent, doPreSymmetry, fieldProperty, filterCIFAtom, finalizeSubclassReader, finalizeSubclassSymmetry, getBondOrder, getCifDataParser, getField, initializeReader, isNull, newModel, nextAtomSet, parseLoopParameters, parseLoopParametersFor, processAtomSiteLoopBlock, processLoopBlock`

    - ### Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader

      `addAtomXYZSymName, addExplicitLatticeVector, addJmolScript, addSites, addSiteScript, appendLoadNote, appendUunitCellInfo, applySymTrajASCR, checkCurrentLineForScript, checkFilterKey, checkLastModel, checkLine, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, discardLinesUntilStartsWith, discardPreviousAtoms, doGetModel, doGetVibration, fill3x3, fillDataBlock, fillDataBlockFixed, fillFloatArray, fillFrequencyData, filterAtom, filterReject, finalizeMOData, finalizeModelSet, finalizeReaderASCR, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFortranFormatLengths, getInterface, getNewSymmetry, getStrings, getSymmetry, getTokens, getTokensFloat, initializeSymmetry, initializeSymmetryOptions, initializeTrajectoryFile, isLastModel, newAtomSet, parseFloat, parseFloatRange, parseFloatStr, parseInt, parseIntAt, parseIntRange, parseIntStr, parseToken, parseTokenNext, parseTokenRange, parseTokenStr, processBinaryDocument, processDOM, rd, read3Vectors, readDataObject, readLines, readNextLine, rejectAtomName, RL, set2D, setAtomCoord, setAtomCoordScaled, setAtomCoordTokens, setAtomCoordXYZ, setChainID, setElementAndIsotope, setFilter, setFilterAtomTypeStr, setFractionalCoordinates, setIsPDB, setLoadNote, setModelPDB, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem, setup, setupASCR`

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

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

- - ### Field Detail

    - #### isBiomolecule

          protected boolean isBiomolecule

    - #### byChain

          private boolean byChain

    - #### bySymop

          private boolean bySymop

    - #### chainAtomMap

          private java.util.Map<java.lang.String,javajs.util.P3> chainAtomMap

    - #### chainAtomCounts

          private java.util.Map<java.lang.String,int[]> chainAtomCounts

    - #### vBiomolecules

          protected javajs.util.Lst<java.util.Map<java.lang.String,java.lang.Object>> vBiomolecules

    - #### htBiomts

          private java.util.Map<java.lang.String,javajs.util.M4> htBiomts

    - #### htSites

          protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> htSites

    - #### htHetero

          protected java.util.Map<java.lang.String,java.lang.String> htHetero

    - #### htBondMap

          private java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object[]>> htBondMap

    - #### assemblyIdAtoms

          private java.util.Map<java.lang.String,javajs.util.BS> assemblyIdAtoms

    - #### thisChain

          private int thisChain

    - #### modelIndex

          private int modelIndex

    - #### chainSum

          private javajs.util.P3 chainSum

    - #### chainAtomCount

          private int[] chainAtomCount

    - #### isLigandBondBug

          private boolean isLigandBondBug

    - #### mident

          javajs.util.M4 mident

    - #### requiresSorting

          private boolean requiresSorting

    - #### OPER_ID

          private static final byte OPER_ID

      See Also:
        Constant Field Values

    - #### OPER_XYZ

          private static final byte OPER_XYZ

      See Also:
        Constant Field Values

    - #### FAMILY_NCS_CAT

          private static final java.lang.String FAMILY_NCS_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_NCS

          private static final java.lang.String FAMILY_NCS

      See Also:
        Constant Field Values

    - #### ncsoperFields

          private static final java.lang.String[] ncsoperFields

    - #### FAMILY_OPER_CAT

          private static final java.lang.String FAMILY_OPER_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_OPER

          private static final java.lang.String FAMILY_OPER

      See Also:
        Constant Field Values

    - #### operFields

          private static final java.lang.String[] operFields

    - #### ASSEM_ID

          private static final byte ASSEM_ID

      See Also:
        Constant Field Values

    - #### ASSEM_OPERS

          private static final byte ASSEM_OPERS

      See Also:
        Constant Field Values

    - #### ASSEM_LIST

          private static final byte ASSEM_LIST

      See Also:
        Constant Field Values

    - #### FAMILY_ASSEM_CAT

          private static final java.lang.String FAMILY_ASSEM_CAT

      See Also:
        Constant Field Values

    - #### assemblyFields

          private static final java.lang.String[] assemblyFields

    - #### FAMILY_SEQUENCEDIF_CAT

          private static final java.lang.String FAMILY_SEQUENCEDIF_CAT

      See Also:
        Constant Field Values

    - #### STRUCT_REF_G3

          private static final byte STRUCT_REF_G3

      See Also:
        Constant Field Values

    - #### STRUCT_REF_G1

          private static final byte STRUCT_REF_G1

      See Also:
        Constant Field Values

    - #### structRefFields

          private static final java.lang.String[] structRefFields

    - #### CHEM_COMP_ID

          private static final byte CHEM_COMP_ID

      See Also:
        Constant Field Values

    - #### CHEM_COMP_NAME

          private static final byte CHEM_COMP_NAME

      See Also:
        Constant Field Values

    - #### FAMILY_CHEMCOMP_CAT

          private static final java.lang.String FAMILY_CHEMCOMP_CAT

      See Also:
        Constant Field Values

    - #### chemCompFields

          private static final java.lang.String[] chemCompFields

    - #### CONF_TYPE_ID

          private static final byte CONF_TYPE_ID

      See Also:
        Constant Field Values

    - #### BEG_ASYM_ID

          private static final byte BEG_ASYM_ID

      See Also:
        Constant Field Values

    - #### BEG_SEQ_ID

          private static final byte BEG_SEQ_ID

      See Also:
        Constant Field Values

    - #### BEG_INS_CODE

          private static final byte BEG_INS_CODE

      See Also:
        Constant Field Values

    - #### END_ASYM_ID

          private static final byte END_ASYM_ID

      See Also:
        Constant Field Values

    - #### END_SEQ_ID

          private static final byte END_SEQ_ID

      See Also:
        Constant Field Values

    - #### END_INS_CODE

          private static final byte END_INS_CODE

      See Also:
        Constant Field Values

    - #### STRUCT_ID

          private static final byte STRUCT_ID

      See Also:
        Constant Field Values

    - #### SERIAL_NO

          private static final byte SERIAL_NO

      See Also:
        Constant Field Values

    - #### HELIX_CLASS

          private static final byte HELIX_CLASS

      See Also:
        Constant Field Values

    - #### FAMILY_STRUCTCONF_CAT

          private static final java.lang.String FAMILY_STRUCTCONF_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_STRUCTCONF

          private static final java.lang.String FAMILY_STRUCTCONF

      See Also:
        Constant Field Values

    - #### structConfFields

          private static final java.lang.String[] structConfFields

    - #### SHEET_ID

          private static final byte SHEET_ID

      See Also:
        Constant Field Values

    - #### STRAND_ID

          private static final byte STRAND_ID

      See Also:
        Constant Field Values

    - #### FAMILY_SHEET_CAT

          private static final java.lang.String FAMILY_SHEET_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_SHEET

          private static final java.lang.String FAMILY_SHEET

      See Also:
        Constant Field Values

    - #### structSheetRangeFields

          private static final java.lang.String[] structSheetRangeFields

    - #### SITE_ID

          private static final byte SITE_ID

      See Also:
        Constant Field Values

    - #### SITE_COMP_ID

          private static final byte SITE_COMP_ID

      See Also:
        Constant Field Values

    - #### SITE_ASYM_ID

          private static final byte SITE_ASYM_ID

      See Also:
        Constant Field Values

    - #### SITE_SEQ_ID

          private static final byte SITE_SEQ_ID

      See Also:
        Constant Field Values

    - #### SITE_INS_CODE

          private static final byte SITE_INS_CODE

      See Also:
        Constant Field Values

    - #### FAMILY_STRUCSITE_CAT

          private static final java.lang.String FAMILY_STRUCSITE_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_STRUCSITE

          private static final java.lang.String FAMILY_STRUCSITE

      See Also:
        Constant Field Values

    - #### structSiteFields

          private static final java.lang.String[] structSiteFields

    - #### STRUCT_CONN_ASYM1

          private static final byte STRUCT_CONN_ASYM1

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_SEQ1

          private static final byte STRUCT_CONN_SEQ1

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_COMP1

          private static final byte STRUCT_CONN_COMP1

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_ATOM1

          private static final byte STRUCT_CONN_ATOM1

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_ALT1

          private static final byte STRUCT_CONN_ALT1

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_SYMM1

          private static final byte STRUCT_CONN_SYMM1

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_ASYM2

          private static final byte STRUCT_CONN_ASYM2

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_SEQ2

          private static final byte STRUCT_CONN_SEQ2

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_COMP2

          private static final byte STRUCT_CONN_COMP2

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_ATOM2

          private static final byte STRUCT_CONN_ATOM2

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_ALT2

          private static final byte STRUCT_CONN_ALT2

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_SYMM2

          private static final byte STRUCT_CONN_SYMM2

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_TYPE

          private static final byte STRUCT_CONN_TYPE

      See Also:
        Constant Field Values

    - #### STRUCT_CONN_ORDER

          private static final byte STRUCT_CONN_ORDER

      See Also:
        Constant Field Values

    - #### FAMILY_STRUCTCONN_CAT

          private static final java.lang.String FAMILY_STRUCTCONN_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_STRUCTCONN

          private static final java.lang.String FAMILY_STRUCTCONN

      See Also:
        Constant Field Values

    - #### structConnFields

          private static final java.lang.String[] structConnFields

    - #### structConnMap

          private javajs.util.Lst<java.lang.Object[]> structConnMap

    - #### structConnList

          private java.lang.String structConnList

    - #### doSetBonds

          private boolean doSetBonds

    - #### CHEM_COMP_BOND_ID

          private static final byte CHEM_COMP_BOND_ID

      See Also:
        Constant Field Values

    - #### CHEM_COMP_BOND_ATOM_ID_1

          private static final byte CHEM_COMP_BOND_ATOM_ID_1

      See Also:
        Constant Field Values

    - #### CHEM_COMP_BOND_ATOM_ID_2

          private static final byte CHEM_COMP_BOND_ATOM_ID_2

      See Also:
        Constant Field Values

    - #### CHEM_COMP_BOND_VALUE_ORDER

          private static final byte CHEM_COMP_BOND_VALUE_ORDER

      See Also:
        Constant Field Values

    - #### CHEM_COMP_BOND_AROMATIC_FLAG

          private static final byte CHEM_COMP_BOND_AROMATIC_FLAG

      See Also:
        Constant Field Values

    - #### FAMILY_COMPBOND_CAT

          private static final java.lang.String FAMILY_COMPBOND_CAT

      See Also:
        Constant Field Values

    - #### FAMILY_COMPBOND

          private static final java.lang.String FAMILY_COMPBOND

      See Also:
        Constant Field Values

    - #### chemCompBondFields

          private static final java.lang.String[] chemCompBondFields

    - #### modelStrings

          private java.lang.String modelStrings

    - #### done

          protected boolean done

  - ### Constructor Detail

    - #### MMCifReader

          public MMCifReader()

  - ### Method Detail

    - #### initSubclass

          protected void initSubclass()

      Overrides:
        `initSubclass` in class `CifReader`

    - #### processSubclassEntry

          protected void processSubclassEntry()
                                       throws java.lang.Exception

      Overrides:
        `processSubclassEntry` in class `CifReader`
      Throws:
        `java.lang.Exception`

    - #### processSubclassLoopBlock

          protected boolean processSubclassLoopBlock()
                                              throws java.lang.Exception

      Overrides:
        `processSubclassLoopBlock` in class `CifReader`
      Throws:
        `java.lang.Exception`

    - #### sortAssemblyModels

          protected void sortAssemblyModels()

      issue here is that mmCIF assembly atoms can be in different blocks by chain: Model1:Chain1 Model2:Chain1 Model1:Chain2 Model2:Chain2 ... and so assigned to too many atom sets.

    - #### finalizeSubclass

          protected boolean finalizeSubclass()
                                      throws java.lang.Exception

      Overrides:
        `finalizeSubclass` in class `CifReader`
      Throws:
        `java.lang.Exception`

    - #### checkSubclassSymmetry

          protected boolean checkSubclassSymmetry()

      Overrides:
        `checkSubclassSymmetry` in class `CifReader`

    - #### setBonds

          private void setBonds()

      Note that setting bonds from _struct_conn is only done if we have updated CIF files, which include _chem_comp_bond.

    - #### processBonds

          private void processBonds(javajs.util.Lst<java.lang.Object[]> cmap,
                                    java.util.Map<java.lang.Object,java.lang.Integer> map,
                                    boolean isStructConn)

    - #### processSequence

          private boolean processSequence()
                                   throws java.lang.Exception

      get canonical 1-letter DNA/RNA sequence code from 3-letter code. For example, "2MG" --> "G"
      Returns:
        true
      Throws:
        `java.lang.Exception`

    - #### processAssemblyGenBlock

          private boolean processAssemblyGenBlock()
                                           throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### addAssembly

          protected void addAssembly(java.lang.String[] assem)
                              throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### checkFilterAssembly

          protected void checkFilterAssembly(java.lang.String id,
                                             java.util.Map<java.lang.String,java.lang.Object> info)

    - #### decodeAssemblyOperators

          private java.lang.String decodeAssemblyOperators(java.lang.String ops)

    - #### crossBinary

          private java.lang.String crossBinary(java.lang.String ops1,
                                               java.lang.String ops2)

    - #### processStructOperListBlock

          private boolean processStructOperListBlock(boolean isNCS)
                                              throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### addMatrix

          protected void addMatrix(java.lang.String id,
                                   javajs.util.M4 m4,
                                   boolean isNCS)

    - #### processChemCompLoopBlock

          private boolean processChemCompLoopBlock()
                                            throws java.lang.Exception

      a general name definition field. Not all hetero
      Returns:
        true if successful; false to skip
      Throws:
        `java.lang.Exception`

    - #### addHetero

          protected void addHetero(java.lang.String groupName,
                                   java.lang.String hetName,
                                   boolean doCheck,
                                   boolean addNote)

    - #### processStructConfLoopBlock

          private boolean processStructConfLoopBlock()
                                              throws java.lang.Exception

      identifies ranges for HELIX and TURN
      Returns:
        true if successful; false to skip
      Throws:
        `java.lang.Exception`

    - #### addStructure

          private void addStructure(Structure structure)

    - #### processStructSheetRangeLoopBlock

          private boolean processStructSheetRangeLoopBlock()
                                                    throws java.lang.Exception

      identifies sheet ranges
      Returns:
        true if successful; false to skip
      Throws:
        `java.lang.Exception`

    - #### processStructSiteBlock

          private boolean processStructSiteBlock()
                                          throws java.lang.Exception

      identifies structure sites
      Returns:
        true if successful; false to skip
      Throws:
        `java.lang.Exception`

    - #### setBiomolecules

          private void setBiomolecules()

    - #### setBiomolecule

          private int setBiomolecule(java.util.Map<java.lang.String,java.lang.Object> biomolecule,
                                     javajs.util.BS bsAll)

    - #### createParticle

          private void createParticle(java.lang.String id)

    - #### getOpMatrix

          private javajs.util.M4 getOpMatrix(java.lang.String ops)

    - #### processStructConnLoopBlock

          private boolean processStructConnLoopBlock()
                                              throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### processCompBondLoopBlock

          private boolean processCompBondLoopBlock()
                                            throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### processSubclassAtom

          public boolean processSubclassAtom(Atom atom,
                                             java.lang.String assemblyId,
                                             java.lang.String strChain)

      Overrides:
        `processSubclassAtom` in class `CifReader`
      Returns:
        true if valid atom

    - #### checkPDBModelField

          protected int checkPDBModelField(int modelField,
                                           int currentModelNo)
                                    throws java.lang.Exception

      Overrides:
        `checkPDBModelField` in class `CifReader`
      Returns:
        new currentModelNo
      Throws:
        `java.lang.Exception`

    - #### incrementModel

          protected int incrementModel(int modelNo)
                                throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### setHetero

          private void setHetero()