org.jmol.modelset
Class ModelLoader

java.lang.Object
  extended by org.jmol.modelset.ModelLoader

public final class ModelLoader
extends java.lang.Object


Field Summary
private  int adapterModelCount
           
private  int adapterTrajectoryCount
           
private  boolean appendNew
           
private  int baseAtomIndex
           
private  int baseGroupIndex
           
private  int baseModelCount
           
private  int baseModelIndex
           
private  int baseTrajectoryCount
           
private  Chain[] chainOf
           
private  Chain currentChain
           
private  char currentChainID
           
private  java.lang.String currentGroup3
           
private  char currentGroupInsertionCode
           
private  int currentGroupSequenceNumber
           
private  Model currentModel
           
private  int currentModelIndex
           
private static int defaultGroupCount
           
private  boolean doAddHydrogens
           
private  boolean doMinimize
           
private  boolean doRemoveAddedHydrogens
           
private  java.lang.String fileHeader
           
private  int[] firstAtomIndexes
           
private  int[][] group3Counts
           
private  java.lang.String[] group3Lists
           
private  java.lang.String[] group3Of
           
private  int groupCount
           
private  Group[] groups
           
private  java.util.Map<java.lang.Object,Atom> htAtomMap
           
private  boolean is2D
           
private  boolean isPDB
           
private  boolean isTrajectory
           
private  JmolBioResolver jbr
           
private  java.lang.String jmolData
           
private  Group[] mergeGroups
           
private  ModelSet mergeModelSet
           
private  boolean merging
           
private  ModelSet modelSet
           
private  boolean noAutoBond
           
private  Group nullGroup
           
private  int[] seqcodes
           
private  boolean someModelsHaveUnitcells
           
private  int[] specialAtomIndexes
           
private  java.util.BitSet structuresDefinedInFile
           
private  Viewer viewer
           
private  java.util.List<Bond> vStereo
           
 
Constructor Summary
ModelLoader(Viewer viewer, java.lang.String name)
           
ModelLoader(Viewer viewer, java.lang.StringBuffer loadScript, java.lang.Object atomSetCollection, ModelSet mergeModelSet, java.lang.String modelSetName, java.util.BitSet bsNew)
           
 
Method Summary
private  void addAtom(boolean isPDB, java.util.BitSet atomSymmetry, int atomSite, java.lang.Object atomUid, short atomicAndIsotopeNumber, java.lang.String atomName, int formalCharge, float partialCharge, java.lang.Object[] ellipsoid, int occupancy, float bfactor, float x, float y, float z, boolean isHetero, int atomSerial, java.lang.String group3, float vectorX, float vectorY, float vectorZ, char alternateLocationID, float radius)
           
private  void addGroup(Chain chain, Group group)
           
private  void applyStereochemistry()
           
private  void bondAtoms(java.lang.Object atomUid1, java.lang.Object atomUid2, short order)
           
private  void checkNewGroup(JmolAdapter adapter, char chainID, java.lang.String group3, int groupSequenceNumber, char groupInsertionCode, boolean addH)
           
private  void countGroup(int modelIndex, java.lang.String code, java.lang.String group3)
           
private  void createModelSet(JmolAdapter adapter, java.lang.Object atomSetCollection, java.util.BitSet bsNew)
           
private  void defineStructure(int modelIndex, EnumStructure subType, java.lang.String structureID, int serialID, int strandCount, char startChainID, int startSequenceNumber, char startInsertionCode, char endChainID, int endSequenceNumber, char endInsertionCode)
           
 void deleteAtoms(java.util.BitSet bsDeletedAtoms)
          called from org.jmol.modelsetbio.resolver when adding hydrogens.
private  void distinguishAndPropagateGroup(int groupIndex, Chain chain, java.lang.String group3, int seqcode, int firstAtomIndex, int maxAtomIndex)
           
private  void finalizeGroupBuild()
           
private  void finalizeModels(int baseModelCount)
          Model numbers are considerably more complicated in Jmol 11.
private  void finalizeShapes()
           
private  void findElementsPresent()
           
private  void freeze()
           
 int getAtomCount()
           
private  java.util.BitSet getBranch2dZ(int atomIndex, int atomIndexNot, java.util.BitSet bs0, java.util.BitSet bsBranch, javax.vecmath.Vector3f v, javax.vecmath.Vector3f v0, javax.vecmath.Vector3f v1)
           
 int getFirstAtomIndex(int iGroup)
           
 java.lang.String getGroup3(int iGroup)
           
 ModelSet getModelSet()
           
private  Chain getOrAllocateChain(Model model, char chainID)
           
private  int getPdbCharge(java.lang.String group3, java.lang.String name)
           
private  void initializeAtomBondModelCounts(int nAtoms)
           
private  void initializeBonding()
           
private  void initializeInfo(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> info)
           
private  void initializeUnitCellAndSymmetry()
           
private  void iterateOverAllNewAtoms(JmolAdapter adapter, java.lang.Object atomSetCollection)
           
private  void iterateOverAllNewBonds(JmolAdapter adapter, java.lang.Object atomSetCollection)
           
private  void iterateOverAllNewModels(JmolAdapter adapter, java.lang.Object atomSetCollection)
           
private  void iterateOverAllNewStructures(JmolAdapter adapter, java.lang.Object atomSetCollection)
          Pull in all spans of helix, etc.
private  void mergeGroups()
           
private  void set2dZ(int iatom1, int iatom2)
           
private static void setAtom2dZ(Atom atomRef, Atom atom2, javax.vecmath.Vector3f v, javax.vecmath.Vector3f v0, javax.vecmath.Vector3f v1)
           
private  void setAtomProperties()
           
private static void setBranch2dZ(Atom atom, java.util.BitSet bs, java.util.BitSet bsToTest, javax.vecmath.Vector3f v, javax.vecmath.Vector3f v0, javax.vecmath.Vector3f v1)
           
private  void setDefaultRendering(int maxAtoms)
           
private  boolean setModelNameNumberProperties(int modelIndex, int trajectoryBaseIndex, java.lang.String modelName, int modelNumber, java.util.Properties modelProperties, java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo, java.lang.String jmolData)
           
 void undeleteAtom(int iAtom)
          called from org.jmol.modelsetbio.resolver when adding hydrogens.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

viewer

private Viewer viewer

modelSet

private ModelSet modelSet

mergeModelSet

private ModelSet mergeModelSet

merging

private boolean merging

jmolData

private java.lang.String jmolData

group3Lists

private java.lang.String[] group3Lists

group3Counts

private int[][] group3Counts

specialAtomIndexes

private final int[] specialAtomIndexes

someModelsHaveUnitcells

private boolean someModelsHaveUnitcells

isTrajectory

private boolean isTrajectory

doMinimize

private boolean doMinimize

doAddHydrogens

private boolean doAddHydrogens

doRemoveAddedHydrogens

private boolean doRemoveAddedHydrogens

fileHeader

private java.lang.String fileHeader

jbr

private JmolBioResolver jbr

isPDB

private boolean isPDB

groups

private Group[] groups

groupCount

private int groupCount

htAtomMap

private final java.util.Map<java.lang.Object,Atom> htAtomMap

defaultGroupCount

private static final int defaultGroupCount
See Also:
Constant Field Values

chainOf

private Chain[] chainOf

group3Of

private java.lang.String[] group3Of

seqcodes

private int[] seqcodes

firstAtomIndexes

private int[] firstAtomIndexes

currentModelIndex

private int currentModelIndex

currentModel

private Model currentModel

currentChainID

private char currentChainID

currentChain

private Chain currentChain

currentGroupSequenceNumber

private int currentGroupSequenceNumber

currentGroupInsertionCode

private char currentGroupInsertionCode

currentGroup3

private java.lang.String currentGroup3

nullGroup

private Group nullGroup

baseModelIndex

private int baseModelIndex

baseModelCount

private int baseModelCount

baseAtomIndex

private int baseAtomIndex

baseGroupIndex

private int baseGroupIndex

baseTrajectoryCount

private int baseTrajectoryCount

appendNew

private boolean appendNew

adapterModelCount

private int adapterModelCount

adapterTrajectoryCount

private int adapterTrajectoryCount

noAutoBond

private boolean noAutoBond

is2D

private boolean is2D

mergeGroups

private Group[] mergeGroups

vStereo

private java.util.List<Bond> vStereo

structuresDefinedInFile

private java.util.BitSet structuresDefinedInFile
Constructor Detail

ModelLoader

public ModelLoader(Viewer viewer,
                   java.lang.String name)

ModelLoader

public ModelLoader(Viewer viewer,
                   java.lang.StringBuffer loadScript,
                   java.lang.Object atomSetCollection,
                   ModelSet mergeModelSet,
                   java.lang.String modelSetName,
                   java.util.BitSet bsNew)
Method Detail

initializeInfo

private void initializeInfo(java.lang.String name,
                            java.util.Map<java.lang.String,java.lang.Object> info)

getGroup3

public java.lang.String getGroup3(int iGroup)

getFirstAtomIndex

public int getFirstAtomIndex(int iGroup)

getModelSet

public ModelSet getModelSet()

getAtomCount

public int getAtomCount()

createModelSet

private void createModelSet(JmolAdapter adapter,
                            java.lang.Object atomSetCollection,
                            java.util.BitSet bsNew)

setDefaultRendering

private void setDefaultRendering(int maxAtoms)

setAtomProperties

private void setAtomProperties()

initializeAtomBondModelCounts

private void initializeAtomBondModelCounts(int nAtoms)

mergeGroups

private void mergeGroups()

iterateOverAllNewModels

private void iterateOverAllNewModels(JmolAdapter adapter,
                                     java.lang.Object atomSetCollection)

setModelNameNumberProperties

private boolean setModelNameNumberProperties(int modelIndex,
                                             int trajectoryBaseIndex,
                                             java.lang.String modelName,
                                             int modelNumber,
                                             java.util.Properties modelProperties,
                                             java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo,
                                             java.lang.String jmolData)

finalizeModels

private void finalizeModels(int baseModelCount)
Model numbers are considerably more complicated in Jmol 11. int modelNumber The adapter gives us a modelNumber, but that is not necessarily what the user accesses. If a single files is loaded this is: a) single file context: 1) the sequential number of the model in the file , or 2) if a PDB file and "MODEL" record is present, that model number b) multifile context: always 1000000 * (fileIndex + 1) + (modelIndexInFile + 1) int fileIndex The 0-based reference to the file containing this model. Used when doing "_modelnumber3.2" in a multifile context int modelFileNumber An integer coding both the file and the model: file * 1000000 + modelInFile (1-based) Used all over the place. Note that if there is only one file, then modelFileNumber < 1000000. String modelNumberDotted A number the user can use "1.3" String modelNumberForAtomLabel Either the dotted number or the PDB MODEL number, if there is only one file

Parameters:
baseModelCount -

iterateOverAllNewAtoms

private void iterateOverAllNewAtoms(JmolAdapter adapter,
                                    java.lang.Object atomSetCollection)

getPdbCharge

private int getPdbCharge(java.lang.String group3,
                         java.lang.String name)

addAtom

private void addAtom(boolean isPDB,
                     java.util.BitSet atomSymmetry,
                     int atomSite,
                     java.lang.Object atomUid,
                     short atomicAndIsotopeNumber,
                     java.lang.String atomName,
                     int formalCharge,
                     float partialCharge,
                     java.lang.Object[] ellipsoid,
                     int occupancy,
                     float bfactor,
                     float x,
                     float y,
                     float z,
                     boolean isHetero,
                     int atomSerial,
                     java.lang.String group3,
                     float vectorX,
                     float vectorY,
                     float vectorZ,
                     char alternateLocationID,
                     float radius)

checkNewGroup

private void checkNewGroup(JmolAdapter adapter,
                           char chainID,
                           java.lang.String group3,
                           int groupSequenceNumber,
                           char groupInsertionCode,
                           boolean addH)

getOrAllocateChain

private Chain getOrAllocateChain(Model model,
                                 char chainID)

iterateOverAllNewBonds

private void iterateOverAllNewBonds(JmolAdapter adapter,
                                    java.lang.Object atomSetCollection)

bondAtoms

private void bondAtoms(java.lang.Object atomUid1,
                       java.lang.Object atomUid2,
                       short order)

iterateOverAllNewStructures

private void iterateOverAllNewStructures(JmolAdapter adapter,
                                         java.lang.Object atomSetCollection)
Pull in all spans of helix, etc. in the file(s) We do turn first, because sometimes a group is defined twice, and this way it gets marked as helix or sheet if it is both one of those and turn.

Parameters:
adapter -
atomSetCollection -

defineStructure

private void defineStructure(int modelIndex,
                             EnumStructure subType,
                             java.lang.String structureID,
                             int serialID,
                             int strandCount,
                             char startChainID,
                             int startSequenceNumber,
                             char startInsertionCode,
                             char endChainID,
                             int endSequenceNumber,
                             char endInsertionCode)

initializeUnitCellAndSymmetry

private void initializeUnitCellAndSymmetry()

initializeBonding

private void initializeBonding()

finalizeGroupBuild

private void finalizeGroupBuild()

distinguishAndPropagateGroup

private void distinguishAndPropagateGroup(int groupIndex,
                                          Chain chain,
                                          java.lang.String group3,
                                          int seqcode,
                                          int firstAtomIndex,
                                          int maxAtomIndex)

addGroup

private void addGroup(Chain chain,
                      Group group)

countGroup

private void countGroup(int modelIndex,
                        java.lang.String code,
                        java.lang.String group3)

freeze

private void freeze()

findElementsPresent

private void findElementsPresent()

applyStereochemistry

private void applyStereochemistry()

set2dZ

private void set2dZ(int iatom1,
                    int iatom2)

getBranch2dZ

private java.util.BitSet getBranch2dZ(int atomIndex,
                                      int atomIndexNot,
                                      java.util.BitSet bs0,
                                      java.util.BitSet bsBranch,
                                      javax.vecmath.Vector3f v,
                                      javax.vecmath.Vector3f v0,
                                      javax.vecmath.Vector3f v1)
Parameters:
atomIndex -
atomIndexNot -
bs0 -
bsBranch -
v -
v0 -
v1 -
Returns:
atom bitset

setBranch2dZ

private static void setBranch2dZ(Atom atom,
                                 java.util.BitSet bs,
                                 java.util.BitSet bsToTest,
                                 javax.vecmath.Vector3f v,
                                 javax.vecmath.Vector3f v0,
                                 javax.vecmath.Vector3f v1)

setAtom2dZ

private static void setAtom2dZ(Atom atomRef,
                               Atom atom2,
                               javax.vecmath.Vector3f v,
                               javax.vecmath.Vector3f v0,
                               javax.vecmath.Vector3f v1)

finalizeShapes

private void finalizeShapes()

undeleteAtom

public void undeleteAtom(int iAtom)
called from org.jmol.modelsetbio.resolver when adding hydrogens.

Parameters:
iAtom -

deleteAtoms

public void deleteAtoms(java.util.BitSet bsDeletedAtoms)
called from org.jmol.modelsetbio.resolver when adding hydrogens.

Parameters:
bsDeletedAtoms -