org.jmol.adapter.readers.cifpdb
Class PdbReader
java.lang.Object
org.jmol.adapter.smarter.AtomSetCollectionReader
org.jmol.adapter.readers.cifpdb.PdbReader
- Direct Known Subclasses:
- P2nReader, PqrReader
public class PdbReader
- extends AtomSetCollectionReader
PDB file reader.
http://www.rcsb.org
- Author:
- Miguel, Egon, and Bob (hansonr@stolaf.edu)
symmetry added by Bob Hanson:
setFractionalCoordinates()
setSpaceGroupName()
setUnitCell()
initializeCartesianToFractional();
setUnitCellItem()
setAtomCoord()
applySymmetryAndSetTrajectory()
Field Summary |
private boolean |
applySymmetry
|
private int |
atomCount
|
private java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
biomolecules
|
private java.util.List<javax.vecmath.Matrix4f> |
biomts
|
private int[] |
chainAtomCounts
|
private java.lang.String |
compnd
|
private int |
configurationPtr
|
private int |
conformationIndex
|
private java.util.Map<java.lang.String,java.lang.String> |
currentCompnd
|
private java.lang.String |
currentGroup3
|
private java.lang.String |
currentKey
|
private int |
currentResno
|
private boolean |
haveMappedSerials
|
private java.util.Map<java.lang.String,java.lang.Boolean> |
htElementsInCurrentGroup
|
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Boolean>> |
htFormul
|
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.String>> |
htMolIds
|
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> |
htSites
|
private int |
iAtom
|
private boolean |
isMultiModel
|
private char |
lastAltLoc
|
private java.lang.String |
lastAtomData
|
private int |
lastAtomIndex
|
private int |
lastGroup
|
private char |
lastInsertion
|
private int |
lineLength
|
private static java.lang.String |
lineOptions
|
private int |
maxSerial
|
private int |
nRes
|
private int |
nUNK
|
private java.lang.StringBuffer |
pdbHeader
|
private boolean |
resetKey
|
private java.lang.StringBuffer |
sbConect
|
private java.lang.StringBuffer |
sbIgnored
|
private java.lang.StringBuffer |
sbSelected
|
private int |
serial
|
private int |
sourceSerialLast
|
private int |
targetSerialLast
|
private java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
vCompnds
|
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 |
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader |
addJmolScript, addPrimitiveLatticeVector, addSites, addSiteScript, appendLoadNote, checkFilter, checkLastModel, 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, readLine, 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 |
lineLength
private int lineLength
htFormul
private final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Boolean>> htFormul
htHetero
private java.util.Map<java.lang.String,java.lang.String> htHetero
htSites
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> htSites
currentGroup3
private java.lang.String currentGroup3
currentResno
private int currentResno
htElementsInCurrentGroup
private java.util.Map<java.lang.String,java.lang.Boolean> htElementsInCurrentGroup
maxSerial
private int maxSerial
chainAtomCounts
private int[] chainAtomCounts
nUNK
private int nUNK
nRes
private int nRes
isMultiModel
private boolean isMultiModel
lineOptions
private static final java.lang.String lineOptions
- See Also:
- Constant Field Values
serial
private int serial
pdbHeader
private java.lang.StringBuffer pdbHeader
configurationPtr
private int configurationPtr
applySymmetry
private boolean applySymmetry
vCompnds
private java.util.List<java.util.Map<java.lang.String,java.lang.String>> vCompnds
currentCompnd
private java.util.Map<java.lang.String,java.lang.String> currentCompnd
currentKey
private java.lang.String currentKey
htMolIds
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> htMolIds
resetKey
private boolean resetKey
compnd
private java.lang.String compnd
biomolecules
private java.util.List<java.util.Map<java.lang.String,java.lang.Object>> biomolecules
biomts
private java.util.List<javax.vecmath.Matrix4f> biomts
atomCount
private int atomCount
lastAtomData
private java.lang.String lastAtomData
lastAtomIndex
private int lastAtomIndex
iAtom
private int iAtom
lastGroup
private int lastGroup
lastInsertion
private char lastInsertion
lastAltLoc
private char lastAltLoc
conformationIndex
private int conformationIndex
sbIgnored
private java.lang.StringBuffer sbIgnored
sbSelected
private java.lang.StringBuffer sbSelected
sbConect
private java.lang.StringBuffer sbConect
sourceSerialLast
private int sourceSerialLast
targetSerialLast
private int targetSerialLast
haveMappedSerials
private boolean haveMappedSerials
PdbReader
public PdbReader()
initializeReader
protected void initializeReader()
throws java.lang.Exception
- Overrides:
initializeReader
in class AtomSetCollectionReader
- Throws:
java.lang.Exception
checkLine
protected boolean checkLine()
throws java.lang.Exception
- Overrides:
checkLine
in class AtomSetCollectionReader
- Returns:
- true if need to read new line
- 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
header
private void header()
title
private void title()
compndSource
private void compndSource(boolean isSource)
compndOld
private void compndOld()
setBiomoleculeAtomCounts
private void setBiomoleculeAtomCounts()
remark350
private void remark350()
throws java.lang.Exception
- Throws:
java.lang.Exception
remark290
private void remark290()
throws java.lang.Exception
- Throws:
java.lang.Exception
atom
private void atom(int serial)
filterAtom
protected boolean filterAtom(Atom atom,
int iAtom)
- Overrides:
filterAtom
in class AtomSetCollectionReader
- Returns:
- true if we want this atom
setAdditionalAtomParameters
protected void setAdditionalAtomParameters(Atom atom)
- adaptable via subclassing
- Parameters:
atom
-
deduceElementSymbol
private java.lang.String deduceElementSymbol(boolean isHetero)
- The problem here stems from the fact that developers have not fully
understood the PDB specifications -- and that those have changed.
The actual rules are as follows (using 1-based numbering:
1) Chemical symbols may be in columns 77 and 78 for total disambiguity.
2) Only valid chemical symbols should be in columns 13 and 14
These are the first two characters of a four-character field.
3) Four-character atom names for hydrogen necessarily start in
column 13, so when that is the case, if the four-letter
name starts with "H" then it is hydrogen regardless of what
letter comes next. For example, "HG3 " is mercury (and should
be in a HETATM record, not an ATOM record, anyway), but "HG33"
is hydrogen, presumably.
This leave open the ambiguity of a four-letter H name in a
heteroatom set where the symbol is really H, not Hg or Ha, or Ho or Hf, etc.
- Parameters:
isHetero
-
- Returns:
- an atom symbol
conect
private void conect()
structure
private void structure()
getModelNumber
private int getModelNumber()
model
private void model(int modelNumber)
checkNotPDB
private void checkNotPDB()
cryst1
private void cryst1()
throws java.lang.Exception
- Throws:
java.lang.Exception
getFloat
private float getFloat(int ich,
int cch)
throws java.lang.Exception
- Throws:
java.lang.Exception
scale
private void scale(int n)
throws java.lang.Exception
- Throws:
java.lang.Exception
expdta
private void expdta()
formul
private void formul()
het
private void het()
hetnam
private void hetnam()
anisou
private void anisou()
site
private void site()