Class 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 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,​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
      • ncsoperFields

        private static final java.lang.String[] ncsoperFields
      • operFields

        private static final java.lang.String[] operFields
      • 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
      • structRefFields

        private static final java.lang.String[] structRefFields
      • 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
      • 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
      • FAMILY_SHEET_CAT

        private static final java.lang.String FAMILY_SHEET_CAT
        See Also:
        Constant Field Values
      • structSheetRangeFields

        private static final java.lang.String[] structSheetRangeFields
      • 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
      • 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_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
      • 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

      • 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
      • 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,
                                   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()