org.jmol.adapter.readers.cifpdb
Class CifReader

java.lang.Object
  extended by org.jmol.adapter.smarter.AtomSetCollectionReader
      extended by org.jmol.adapter.readers.cifpdb.CifReader
All Implemented Interfaces:
JmolLineReader

public class CifReader
extends AtomSetCollectionReader
implements JmolLineReader

A true line-free CIF file reader for CIF and mmCIF files.

http://www.iucr.org/iucr-top/cif/ http://www.iucr.org/iucr-top/cif/standard/cifstd5.html

Author:
Miguel, Egon, and Bob (hansonr@stolaf.edu) symmetry added by Bob Hanson: setSpaceGroupName() setSymmetryOperator() setUnitCellItem() setFractionalCoordinates() setAtomCoord() applySymmetryAndSetTrajectory()

Field Summary
private static byte ADP_TYPE
           
private static byte ALT_ID
           
private static byte ANISO_B11
           
private static byte ANISO_B12
           
private static byte ANISO_B13
           
private static byte ANISO_B22
           
private static byte ANISO_B23
           
private static byte ANISO_B33
           
private static byte ANISO_Beta_11
           
private static byte ANISO_Beta_12
           
private static byte ANISO_Beta_13
           
private static byte ANISO_Beta_22
           
private static byte ANISO_Beta_23
           
private static byte ANISO_Beta_33
           
private static byte ANISO_LABEL
           
private static byte ANISO_MMCIF_ID
           
private static byte ANISO_MMCIF_U11
           
private static byte ANISO_MMCIF_U12
           
private static byte ANISO_MMCIF_U13
           
private static byte ANISO_MMCIF_U22
           
private static byte ANISO_MMCIF_U23
           
private static byte ANISO_MMCIF_U33
           
private static byte ANISO_U11
           
private static byte ANISO_U12
           
private static byte ANISO_U13
           
private static byte ANISO_U22
           
private static byte ANISO_U23
           
private static byte ANISO_U33
           
private static byte ASYM_ID
           
private static byte ATOM_TYPE_OXIDATION_NUMBER
           
private static byte ATOM_TYPE_SYMBOL
           
private  int atomCount
           
private static java.lang.String[] atomFields
           
private  float[] atomRadius
           
private  Atom[] atoms
           
private static java.lang.String[] atomTypeFields
           
private  java.util.Map<java.lang.String,java.lang.Float> atomTypes
           
private static byte AUTH_ATOM
           
private static byte B_ISO
           
private static byte BEG_ASYM_ID
           
private static byte BEG_INS_CODE
           
private static byte BEG_SEQ_ID
           
private  java.util.List<java.lang.Object[]> bondTypes
           
private  java.util.BitSet[] bsConnected
           
private  java.util.BitSet bsExclude
           
private  java.util.BitSet bsMolecule
           
private  java.util.BitSet[] bsSets
           
private static byte CARTN_X
           
private static byte CARTN_Y
           
private static byte CARTN_Z
           
static java.lang.String[] cellParamNames
           
private static byte CHEM_COMP_AC_CHARGE
           
private static byte CHEM_COMP_AC_ID
           
private static byte CHEM_COMP_AC_NAME
           
private static byte CHEM_COMP_AC_SYM
           
private static byte CHEM_COMP_AC_X
           
private static byte CHEM_COMP_AC_X_IDEAL
           
private static byte CHEM_COMP_AC_Y
           
private static byte CHEM_COMP_AC_Y_IDEAL
           
private static byte CHEM_COMP_AC_Z
           
private static byte CHEM_COMP_AC_Z_IDEAL
           
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_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  java.lang.String chemicalName
           
private static byte COMP_ID
           
private static byte CONF_TYPE_ID
           
private  int configurationPtr
           
private  int conformationIndex
           
private  java.lang.String data
           
private static byte DISORDER_ASSEMBLY
           
private static byte DISORDER_GROUP
           
private  java.lang.String disorderAssembly
           
private static byte DUMMY_ATOM
           
private static byte END_ASYM_ID
           
private static byte END_INS_CODE
           
private static byte END_SEQ_ID
           
(package private)  java.lang.String field
           
private  byte[] fieldOf
           
private  int firstAtom
           
private  char firstChar
           
private static byte FRACT_X
           
private static byte FRACT_Y
           
private static byte FRACT_Z
           
private static byte GEOM_BOND_ATOM_SITE_LABEL_1
           
private static byte GEOM_BOND_ATOM_SITE_LABEL_2
           
private static byte GEOM_BOND_DISTANCE
           
private static java.lang.String[] geomBondFields
           
private static byte GROUP_PDB
           
private static byte HELIX_CLASS
           
private  java.lang.String[] hetatmData
          optional nonloop format -- see 1jsa.cif
private  java.util.Map<java.lang.String,java.lang.String> htHetero
           
private  java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> htSites
           
private  boolean iHaveDesiredModel
           
private static byte INS_CODE
           
private  boolean isMolecular
           
private  boolean isPDB
           
private  java.lang.String key
           
private static byte LABEL
           
private  char lastAltLoc
           
private  java.lang.String lastDisorderAssembly
           
private static byte MODEL_NO
           
private  java.lang.String molecularType
           
private  int nMolecular
           
private static byte NONE
           
private static byte NONPOLY_COMP_ID
           
private static byte NONPOLY_ENTITY_ID
           
private static byte NONPOLY_NAME
           
private static java.lang.String[] nonpolyFields
           
private static byte OCCUPANCY
           
private  int propertyCount
           
private  int[] propertyOf
           
private  javax.vecmath.Point3f ptOffset
           
private static byte SEQ_ID
           
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_ID
           
private static java.lang.String[] structConfFields
           
private static java.lang.String[] structSheetRangeFields
           
private static java.lang.String[] structSiteRangeFields
           
private static byte SYM_EQUIV_XYZ
           
private static java.lang.String[] symmetryOperationsFields
           
private static byte SYMOP_XYZ
           
private  java.lang.String thisDataSetName
           
private  java.lang.String thisFormula
           
private  java.lang.String thisStructuralFormula
           
private  CifDataReader tokenizer
           
private static java.lang.String[] TransformFields
           
private static byte TYPE_SYMBOL
           
private static byte U_ISO_OR_EQUIV
           
 
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addVibrations, ANGSTROMS_PER_BOHR, applySymmetryToBonds, atomSetCollection, bsFilter, bsModels, calculationType, continuing, desiredModelNumber, desiredVibrationNumber, doApplySymmetry, doc, doCheckUnitCell, doPackUnitCell, doProcessLines, filter, filterHetero, getHeader, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, isBinary, isSequential, isTrajectory, latticeCells, line, matUnitCellOrientation, modelNumber, next, notionalUnitCell, os, prevline, ptLine, reader, readerName, readMolecularOrbitals, spaceGroup, stateScriptVersionInt, supercell, symmetry, templateAtomCount, useAltNames, vibrationNumber, viewer
 
Constructor Summary
CifReader()
           
 
Method Summary
private  void addHetero(java.lang.String groupName, java.lang.String hetName)
           
private  void addNewBond(int i, int j)
          add the bond and mark it for molecular processing
 void applySymmetryAndSetTrajectory()
           
private  boolean createBonds(boolean doInit)
          Use the site bitset to check for atoms that are within +/-dx Angstroms of the specified distances in GEOM_BOND where dx is determined by the uncertainty (dx) in the record.
private  void disableField(int fieldIndex)
          used for turning off fractional or nonfractional coord.
private  int fieldProperty(int i)
           
protected  boolean filterAtom(Atom atom, int iAtom)
           
protected  void finalizeReader()
           
private  boolean getData()
           
 void initializeReader()
           
private static boolean isMatch(java.lang.String str1, java.lang.String str2)
           
private  void parseLoopParameters(java.lang.String[] fields)
          sets up arrays and variables for tokenizer.getData()
(package private)  boolean processAtomSiteLoopBlock(boolean isLigand)
          reads atom data in any order
private  void processAtomTypeLoopBlock()
          reads the oxidation number and associates it with an atom name, which can then later be associated with the right atom indirectly.
private  void processCellParameter()
          unit cell parameters -- two options, so we use MOD 6
private  void processChemCompLoopBlock()
          a general name definition field.
private  java.lang.String processChemicalInfo(java.lang.String type)
          reads some of the more interesting info into specific atomSetAuxiliaryInfo elements
private  void processDataParameter()
          initialize a new atom set
private  void processGeomBondLoopBlock()
          reads bond data -- N_ijk symmetry business is ignored, so we only indicate bonds within the unit cell to just the original set of atoms.
private  void processLigandBondLoopBlock()
           
private  void processLoopBlock()
          processes loop_ blocks of interest or skips the data
private  void processNonpolyData()
           
private  void processNonpolyLoopBlock()
          a HETERO name definition field.
private  void processStructConfLoopBlock()
          identifies ranges for HELIX and TURN
private  void processStructSheetRangeLoopBlock()
          identifies sheet ranges
private  void processStructSiteBlock()
          identifies structure sites
private  void processSymmetryOperationsLoopBlock()
          retrieves symmetry operations
private  void processSymmetrySpaceGroupName()
          done by AtomSetCollectionReader
private  void processUnitCellTransformMatrix()
          the PDB transformation matrix cartesian --> fractional
 java.lang.String readLine()
           
private  void setBondingAndMolecules()
          (1) If GEOM_BOND records are present, we (a) use them to generate bonds (b) add H atoms to bonds if necessary (c) turn off autoBonding ("hasBonds") (2) If MOLECULAR, then we (a) use {1 1 1} if lattice is not defined (b) use atomSetCollection.bonds[] to construct a preliminary molecule and connect as we go (c) check symmetry for connections to molecule in any one of the 27 3x3 adjacent cells (d) move those atoms and their connected branch set (e) iterate as necessary to get all atoms desired (f) delete unselected atoms (g) set all coordinates as Cartesians (h) remove all unit cell information
private  void setBs(Atom[] atoms, int iatom, java.util.BitSet[] bsBonds, java.util.BitSet bs)
          iteratively run through connected atoms, adding them to the set
private  void skipLoop()
          skips all associated loop data
 
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addJmolScript, addPrimitiveLatticeVector, addSites, addSiteScript, appendLoadNote, checkFilter, checkLastModel, checkLine, checkLineForScript, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains, discardLinesUntilNonBlank, discardLinesUntilStartsWith, doGetModel, doGetVibration, fillDataBlock, fillDataBlock, fillFloatArray, fillFrequencyData, getElementSymbol, getFortranFormatLengths, getStrings, getSymmetry, getTokens, getTokens, getTokens, getTokensFloat, initializeSymmetry, isLastModel, newAtomSet, parseFloat, parseFloat, parseFloat, parseInt, parseInt, parseInt, parseInt, parseStringInfestedFloatArray, parseToken, parseToken, parseToken, parseTokenNext, parseTrimmed, parseTrimmed, processBinaryDocument, processXml, read3Vectors, readData, readLines, set2D, setAtomCoord, setAtomCoord, setFilter, setFractionalCoordinates, setIsPDB, setMOData, setPdb, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tokenizer

private CifDataReader tokenizer

thisDataSetName

private java.lang.String thisDataSetName

chemicalName

private java.lang.String chemicalName

thisStructuralFormula

private java.lang.String thisStructuralFormula

thisFormula

private java.lang.String thisFormula

iHaveDesiredModel

private boolean iHaveDesiredModel

isPDB

private boolean isPDB

htHetero

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

isMolecular

private boolean isMolecular

molecularType

private java.lang.String molecularType

lastAltLoc

private char lastAltLoc

configurationPtr

private int configurationPtr

conformationIndex

private int conformationIndex

nMolecular

private int nMolecular

cellParamNames

public static final java.lang.String[] cellParamNames

TransformFields

private static final java.lang.String[] TransformFields

key

private java.lang.String key

data

private java.lang.String data

atomTypes

private java.util.Map<java.lang.String,java.lang.Float> atomTypes

bondTypes

private java.util.List<java.lang.Object[]> bondTypes

disorderAssembly

private java.lang.String disorderAssembly

lastDisorderAssembly

private java.lang.String lastDisorderAssembly

ATOM_TYPE_SYMBOL

private static final byte ATOM_TYPE_SYMBOL
See Also:
Constant Field Values

ATOM_TYPE_OXIDATION_NUMBER

private static final byte ATOM_TYPE_OXIDATION_NUMBER
See Also:
Constant Field Values

atomTypeFields

private static final java.lang.String[] atomTypeFields

NONE

private static final byte NONE
See Also:
Constant Field Values

TYPE_SYMBOL

private static final byte TYPE_SYMBOL
See Also:
Constant Field Values

LABEL

private static final byte LABEL
See Also:
Constant Field Values

AUTH_ATOM

private static final byte AUTH_ATOM
See Also:
Constant Field Values

FRACT_X

private static final byte FRACT_X
See Also:
Constant Field Values

FRACT_Y

private static final byte FRACT_Y
See Also:
Constant Field Values

FRACT_Z

private static final byte FRACT_Z
See Also:
Constant Field Values

CARTN_X

private static final byte CARTN_X
See Also:
Constant Field Values

CARTN_Y

private static final byte CARTN_Y
See Also:
Constant Field Values

CARTN_Z

private static final byte CARTN_Z
See Also:
Constant Field Values

OCCUPANCY

private static final byte OCCUPANCY
See Also:
Constant Field Values

B_ISO

private static final byte B_ISO
See Also:
Constant Field Values

COMP_ID

private static final byte COMP_ID
See Also:
Constant Field Values

ASYM_ID

private static final byte ASYM_ID
See Also:
Constant Field Values

SEQ_ID

private static final byte SEQ_ID
See Also:
Constant Field Values

INS_CODE

private static final byte INS_CODE
See Also:
Constant Field Values

ALT_ID

private static final byte ALT_ID
See Also:
Constant Field Values

GROUP_PDB

private static final byte GROUP_PDB
See Also:
Constant Field Values

MODEL_NO

private static final byte MODEL_NO
See Also:
Constant Field Values

DUMMY_ATOM

private static final byte DUMMY_ATOM
See Also:
Constant Field Values

DISORDER_GROUP

private static final byte DISORDER_GROUP
See Also:
Constant Field Values

ANISO_LABEL

private static final byte ANISO_LABEL
See Also:
Constant Field Values

ANISO_MMCIF_ID

private static final byte ANISO_MMCIF_ID
See Also:
Constant Field Values

ANISO_U11

private static final byte ANISO_U11
See Also:
Constant Field Values

ANISO_U22

private static final byte ANISO_U22
See Also:
Constant Field Values

ANISO_U33

private static final byte ANISO_U33
See Also:
Constant Field Values

ANISO_U12

private static final byte ANISO_U12
See Also:
Constant Field Values

ANISO_U13

private static final byte ANISO_U13
See Also:
Constant Field Values

ANISO_U23

private static final byte ANISO_U23
See Also:
Constant Field Values

ANISO_MMCIF_U11

private static final byte ANISO_MMCIF_U11
See Also:
Constant Field Values

ANISO_MMCIF_U22

private static final byte ANISO_MMCIF_U22
See Also:
Constant Field Values

ANISO_MMCIF_U33

private static final byte ANISO_MMCIF_U33
See Also:
Constant Field Values

ANISO_MMCIF_U12

private static final byte ANISO_MMCIF_U12
See Also:
Constant Field Values

ANISO_MMCIF_U13

private static final byte ANISO_MMCIF_U13
See Also:
Constant Field Values

ANISO_MMCIF_U23

private static final byte ANISO_MMCIF_U23
See Also:
Constant Field Values

U_ISO_OR_EQUIV

private static final byte U_ISO_OR_EQUIV
See Also:
Constant Field Values

ANISO_B11

private static final byte ANISO_B11
See Also:
Constant Field Values

ANISO_B22

private static final byte ANISO_B22
See Also:
Constant Field Values

ANISO_B33

private static final byte ANISO_B33
See Also:
Constant Field Values

ANISO_B12

private static final byte ANISO_B12
See Also:
Constant Field Values

ANISO_B13

private static final byte ANISO_B13
See Also:
Constant Field Values

ANISO_B23

private static final byte ANISO_B23
See Also:
Constant Field Values

ANISO_Beta_11

private static final byte ANISO_Beta_11
See Also:
Constant Field Values

ANISO_Beta_22

private static final byte ANISO_Beta_22
See Also:
Constant Field Values

ANISO_Beta_33

private static final byte ANISO_Beta_33
See Also:
Constant Field Values

ANISO_Beta_12

private static final byte ANISO_Beta_12
See Also:
Constant Field Values

ANISO_Beta_13

private static final byte ANISO_Beta_13
See Also:
Constant Field Values

ANISO_Beta_23

private static final byte ANISO_Beta_23
See Also:
Constant Field Values

ADP_TYPE

private static final byte ADP_TYPE
See Also:
Constant Field Values

CHEM_COMP_AC_ID

private static final byte CHEM_COMP_AC_ID
See Also:
Constant Field Values

CHEM_COMP_AC_NAME

private static final byte CHEM_COMP_AC_NAME
See Also:
Constant Field Values

CHEM_COMP_AC_SYM

private static final byte CHEM_COMP_AC_SYM
See Also:
Constant Field Values

CHEM_COMP_AC_CHARGE

private static final byte CHEM_COMP_AC_CHARGE
See Also:
Constant Field Values

CHEM_COMP_AC_X

private static final byte CHEM_COMP_AC_X
See Also:
Constant Field Values

CHEM_COMP_AC_Y

private static final byte CHEM_COMP_AC_Y
See Also:
Constant Field Values

CHEM_COMP_AC_Z

private static final byte CHEM_COMP_AC_Z
See Also:
Constant Field Values

CHEM_COMP_AC_X_IDEAL

private static final byte CHEM_COMP_AC_X_IDEAL
See Also:
Constant Field Values

CHEM_COMP_AC_Y_IDEAL

private static final byte CHEM_COMP_AC_Y_IDEAL
See Also:
Constant Field Values

CHEM_COMP_AC_Z_IDEAL

private static final byte CHEM_COMP_AC_Z_IDEAL
See Also:
Constant Field Values

DISORDER_ASSEMBLY

private static final byte DISORDER_ASSEMBLY
See Also:
Constant Field Values

atomFields

private static final java.lang.String[] atomFields

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

chemCompBondFields

private static final java.lang.String[] chemCompBondFields

GEOM_BOND_ATOM_SITE_LABEL_1

private static final byte GEOM_BOND_ATOM_SITE_LABEL_1
See Also:
Constant Field Values

GEOM_BOND_ATOM_SITE_LABEL_2

private static final byte GEOM_BOND_ATOM_SITE_LABEL_2
See Also:
Constant Field Values

GEOM_BOND_DISTANCE

private static final byte GEOM_BOND_DISTANCE
See Also:
Constant Field Values

geomBondFields

private static final java.lang.String[] geomBondFields

NONPOLY_ENTITY_ID

private static final byte NONPOLY_ENTITY_ID
See Also:
Constant Field Values

NONPOLY_NAME

private static final byte NONPOLY_NAME
See Also:
Constant Field Values

NONPOLY_COMP_ID

private static final byte NONPOLY_COMP_ID
See Also:
Constant Field Values

nonpolyFields

private static final java.lang.String[] nonpolyFields

hetatmData

private java.lang.String[] hetatmData
optional nonloop format -- see 1jsa.cif


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

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

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

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

structSiteRangeFields

private static final java.lang.String[] structSiteRangeFields

htSites

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

SYMOP_XYZ

private static final byte SYMOP_XYZ
See Also:
Constant Field Values

SYM_EQUIV_XYZ

private static final byte SYM_EQUIV_XYZ
See Also:
Constant Field Values

symmetryOperationsFields

private static final java.lang.String[] symmetryOperationsFields

field

java.lang.String field

firstChar

private char firstChar

propertyOf

private int[] propertyOf

fieldOf

private byte[] fieldOf

propertyCount

private int propertyCount

atomRadius

private float[] atomRadius

bsConnected

private java.util.BitSet[] bsConnected

bsSets

private java.util.BitSet[] bsSets

ptOffset

private final javax.vecmath.Point3f ptOffset

bsMolecule

private java.util.BitSet bsMolecule

bsExclude

private java.util.BitSet bsExclude

firstAtom

private int firstAtom

atomCount

private int atomCount

atoms

private Atom[] atoms
Constructor Detail

CifReader

public CifReader()
Method Detail

initializeReader

public void initializeReader()
                      throws java.lang.Exception
Overrides:
initializeReader in class AtomSetCollectionReader
Throws:
java.lang.Exception

finalizeReader

protected void finalizeReader()
                       throws java.lang.Exception
Overrides:
finalizeReader in class AtomSetCollectionReader
Throws:
java.lang.Exception

applySymmetryAndSetTrajectory

public void applySymmetryAndSetTrajectory()
                                   throws java.lang.Exception
Overrides:
applySymmetryAndSetTrajectory in class AtomSetCollectionReader
Throws:
java.lang.Exception

processDataParameter

private void processDataParameter()
initialize a new atom set


processChemicalInfo

private java.lang.String processChemicalInfo(java.lang.String type)
                                      throws java.lang.Exception
reads some of the more interesting info into specific atomSetAuxiliaryInfo elements

Parameters:
type - "name" "formula" etc.
Returns:
data
Throws:
java.lang.Exception

processSymmetrySpaceGroupName

private void processSymmetrySpaceGroupName()
                                    throws java.lang.Exception
done by AtomSetCollectionReader

Throws:
java.lang.Exception

processCellParameter

private void processCellParameter()
                           throws java.lang.Exception
unit cell parameters -- two options, so we use MOD 6

Throws:
java.lang.Exception

processUnitCellTransformMatrix

private void processUnitCellTransformMatrix()
                                     throws java.lang.Exception
the PDB transformation matrix cartesian --> fractional

Throws:
java.lang.Exception

getData

private boolean getData()
                 throws java.lang.Exception
Returns:
TRUE if data, even if ''; FALSE if '.' or '?' or eof.
Throws:
java.lang.Exception

processLoopBlock

private void processLoopBlock()
                       throws java.lang.Exception
processes loop_ blocks of interest or skips the data

Throws:
java.lang.Exception

processAtomTypeLoopBlock

private void processAtomTypeLoopBlock()
                               throws java.lang.Exception
reads the oxidation number and associates it with an atom name, which can then later be associated with the right atom indirectly.

Throws:
java.lang.Exception

processAtomSiteLoopBlock

boolean processAtomSiteLoopBlock(boolean isLigand)
                           throws java.lang.Exception
reads atom data in any order

Parameters:
isLigand -
Returns:
TRUE if successful; FALS if EOF encountered
Throws:
java.lang.Exception

filterAtom

protected boolean filterAtom(Atom atom,
                             int iAtom)
Overrides:
filterAtom in class AtomSetCollectionReader
Returns:
true if we want this atom

processLigandBondLoopBlock

private void processLigandBondLoopBlock()
                                 throws java.lang.Exception
Throws:
java.lang.Exception

processGeomBondLoopBlock

private void processGeomBondLoopBlock()
                               throws java.lang.Exception
reads bond data -- N_ijk symmetry business is ignored, so we only indicate bonds within the unit cell to just the original set of atoms. "connect" script or "set forceAutoBond" will override these values.

Throws:
java.lang.Exception

processNonpolyData

private void processNonpolyData()

processChemCompLoopBlock

private void processChemCompLoopBlock()
                               throws java.lang.Exception
a general name definition field. Not all hetero

Throws:
java.lang.Exception

processNonpolyLoopBlock

private void processNonpolyLoopBlock()
                              throws java.lang.Exception
a HETERO name definition field. Maybe not all hetero? nonpoly?

Throws:
java.lang.Exception

addHetero

private void addHetero(java.lang.String groupName,
                       java.lang.String hetName)

processStructConfLoopBlock

private void processStructConfLoopBlock()
                                 throws java.lang.Exception
identifies ranges for HELIX and TURN

Throws:
java.lang.Exception

processStructSheetRangeLoopBlock

private void processStructSheetRangeLoopBlock()
                                       throws java.lang.Exception
identifies sheet ranges

Throws:
java.lang.Exception

processStructSiteBlock

private void processStructSiteBlock()
                             throws java.lang.Exception
identifies structure sites

Throws:
java.lang.Exception

processSymmetryOperationsLoopBlock

private void processSymmetryOperationsLoopBlock()
                                         throws java.lang.Exception
retrieves symmetry operations

Throws:
java.lang.Exception

fieldProperty

private int fieldProperty(int i)

parseLoopParameters

private void parseLoopParameters(java.lang.String[] fields)
                          throws java.lang.Exception
sets up arrays and variables for tokenizer.getData()

Parameters:
fields -
Throws:
java.lang.Exception

readLine

public java.lang.String readLine()
                          throws java.lang.Exception
Specified by:
readLine in interface JmolLineReader
Overrides:
readLine in class AtomSetCollectionReader
Throws:
java.lang.Exception

disableField

private void disableField(int fieldIndex)
used for turning off fractional or nonfractional coord.

Parameters:
fieldIndex -

skipLoop

private void skipLoop()
               throws java.lang.Exception
skips all associated loop data

Throws:
java.lang.Exception

isMatch

private static boolean isMatch(java.lang.String str1,
                               java.lang.String str2)
Parameters:
str1 -
str2 -
Returns:
TRUE if a match

setBondingAndMolecules

private void setBondingAndMolecules()
(1) If GEOM_BOND records are present, we (a) use them to generate bonds (b) add H atoms to bonds if necessary (c) turn off autoBonding ("hasBonds") (2) If MOLECULAR, then we (a) use {1 1 1} if lattice is not defined (b) use atomSetCollection.bonds[] to construct a preliminary molecule and connect as we go (c) check symmetry for connections to molecule in any one of the 27 3x3 adjacent cells (d) move those atoms and their connected branch set (e) iterate as necessary to get all atoms desired (f) delete unselected atoms (g) set all coordinates as Cartesians (h) remove all unit cell information


createBonds

private boolean createBonds(boolean doInit)
Use the site bitset to check for atoms that are within +/-dx Angstroms of the specified distances in GEOM_BOND where dx is determined by the uncertainty (dx) in the record. Note that this also "connects" the atoms that might have been moved in a previous iteration. Also connect H atoms based on a distance <= 1.1 Angstrom from a nearby atom. Then create molecules.

Parameters:
doInit -
Returns:
TRUE if need to continue

addNewBond

private void addNewBond(int i,
                        int j)
add the bond and mark it for molecular processing

Parameters:
i -
j -

setBs

private void setBs(Atom[] atoms,
                   int iatom,
                   java.util.BitSet[] bsBonds,
                   java.util.BitSet bs)
iteratively run through connected atoms, adding them to the set

Parameters:
atoms -
iatom -
bsBonds -
bs -