Package 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:
GenericLineReader
- Direct Known Subclasses:
BCIFReader
,MMTFReader
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
FieldsModifier and TypeFieldDescriptionprotected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected boolean
protected boolean
Fields inherited from class org.jmol.adapter.readers.cif.CifReader
ac, CAT_ATOM_SITE, CAT_ATOM_SITES, CAT_ATOM_TYPE, CAT_CELL, CELL_TYPE_MAGNETIC_PARENT, CELL_TYPE_MAGNETIC_STANDARD, EMPTY, firstChar, htGroup1, iHaveDesiredModel, isCourseGrained, isLigand, isLoop, isMagCIF, isMMCIF, lastDataSetName, maxSerial, modelMap, nAtoms, nAtoms0, NONE, pdbID, skipping, symops, thisDataSetName, useAuthorChainID
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addedData, addedDataKey, addVibrations, allow_a_len_1, allowPDBFilter, ANGSTROMS_PER_BOHR, applySymmetryToBonds, asc, baseAtomIndex, baseBondIndex, binaryDoc, bsFilter, bsModels, calculationType, CELL_TYPE_CONVENTIONAL, CELL_TYPE_PRIMITIVE, CELL_TYPE_SUPER, cellSlop, centroidPacked, checkNearAtoms, continuing, debugging, desiredModelNumber, desiredSpaceGroupIndex, desiredVibrationNumber, doApplySymmetry, doCentralize, doCentroidUnitCell, doCheckUnitCell, doConvertToFractional, doPackUnitCell, doProcessLines, doReadMolecularOrbitals, dssr, fileName, fileOffset, filePath, fileScaling, fillRange, filter, filterAllHetero, filterCased, filteredPrecision, filterHetero, floatifyJavaDouble, forcePacked, getHeader, haveAtomFilter, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, ignoreStructure, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, is2D, isBinary, isConcatenated, isDSSP1, isFinalized, isMolecular, isPrimitive, isSequential, isSUPERCELL, isTrajectory, latticeCells, latticeScaling, latticeType, line, lowPrecision, lstNCS, matUnitCellOrientation, merging, modDim, modelNumber, ms, mustFinalizeModelSet, next, noHydrogens, noMinimize, noPack, optimize2D, out, paramsCentroid, paramsLattice, precision, prevline, primitiveToCrystal, ptLine, ptSupercell, reader, readerName, requiresBSFilter, reverseModels, rotateHexCell, sgName, slabXY, stateScriptVersionInt, strSupercell, symmetry, templateAtomCount, thisBiomolecule, trajectorySteps, ucItems, unitCellOffset, unitCellParams, useAltNames, useFileModelNumbers, validation, vibrationNumber, vibsFractional, vwr
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addAssembly
(String[] assem) protected void
protected void
protected void
checkFilterAssembly
(String id, Map<String, Object> info) protected int
checkPDBModelField
(int modelField, int currentModelNo) protected boolean
protected boolean
protected int
incrementModel
(int modelNo) protected void
protected int
parseIntFieldTok
(byte tok) protected boolean
protected boolean
a general name definition field.protected boolean
protected boolean
get canonical 1-letter DNA/RNA sequence code from 3-letter code.protected boolean
identifies ranges for HELIX and TURNprotected boolean
protected boolean
processStructOperListBlock
(boolean isNCS) protected boolean
identifies sheet rangesprotected boolean
identifies structure sitesboolean
processSubclassAtom
(Atom atom, String assemblyId, String strChain) protected void
protected boolean
protected void
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
addCifAtom, addHeader, applySymmetryAndSetTrajectory, checkAllFieldsPresent, doPreSymmetry, fieldProperty, filterCIFAtom, finalizeSubclassReader, finalizeSubclassSymmetry, fullTrim, getBondOrder, getCifDataParser, getFieldString, getFloatColumnData, initializeReader, isFieldValid, isLoopKey, isNull, newModel, nextAtomSet, parseCartesianField, parseFloatField, parseIntField, parseLoopParameters, processAtomTypeLoopBlock, processCellParameter, processCitationListBlock, processLoopBlock, processUnitCellTransformMatrix, skipLoop, skipLoopKeyword
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addAtomXYZSymName, addExplicitLatticeVector, addJmolScript, addSites, addSiteScript, appendLoadNote, appendUunitCellInfo, applySymTrajASCR, checkAndRemoveFilterKey, 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, fixDoubleA, fixFloatA, fixFloatPt, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFilterWithCase, getFortranFormatLengths, getInterface, getPackingRangeValue, getStrings, getSymmetry, getTokens, getTokensFloat, initializeSymmetry, initializeSymmetryOptions, initializeTrajectoryFile, isLastModel, newAtomSet, parseFloat, parseFloatRange, parseFloatStr, parseInt, parseIntAt, parseIntRange, parseIntStr, parsePrecision, 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, setPrecision, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem, setup, setupASCR
-
Field Details
-
isBiomolecule
protected boolean isBiomolecule -
vBiomolecules
-
htSites
-
htHetero
-
CAT_NCS
- See Also:
-
CAT_OPER
- See Also:
-
CAT_ASSEM
- See Also:
-
CAT_SEQUENCEDIF
- See Also:
-
CAT_CHEMCOMP
- See Also:
-
CAT_STRUCTCONF
- See Also:
-
CAT_SHEET
- See Also:
-
CAT_STRUCSITE
- See Also:
-
CAT_STRUCTCONN
- See Also:
-
CAT_COMPBOND
- See Also:
-
done
protected boolean done
-
-
Constructor Details
-
MMCifReader
public MMCifReader()
-
-
Method Details
-
initSubclass
protected void initSubclass()- Overrides:
initSubclass
in classCifReader
-
processSubclassEntry
- Overrides:
processSubclassEntry
in classCifReader
- Throws:
Exception
-
processSubclassLoopBlock
- Overrides:
processSubclassLoopBlock
in classCifReader
- Throws:
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
- Overrides:
finalizeSubclass
in classCifReader
- Throws:
Exception
-
checkSubclassSymmetry
protected boolean checkSubclassSymmetry()- Overrides:
checkSubclassSymmetry
in classCifReader
-
processSequence
get canonical 1-letter DNA/RNA sequence code from 3-letter code. For example, "2MG" --> "G"- Returns:
- true
- Throws:
Exception
-
processAssemblyGenBlock
- Throws:
Exception
-
addAssembly
- Throws:
Exception
-
checkFilterAssembly
-
processStructOperListBlock
- Throws:
Exception
-
addMatrix
-
processChemCompLoopBlock
a general name definition field. Not all hetero- Returns:
- true if successful; false to skip
- Throws:
Exception
-
addHetero
-
processStructConfLoopBlock
identifies ranges for HELIX and TURN- Returns:
- true if successful; false to skip
- Throws:
Exception
-
parseIntFieldTok
protected int parseIntFieldTok(byte tok) -
processStructSheetRangeLoopBlock
identifies sheet ranges- Returns:
- true if successful; false to skip
- Throws:
Exception
-
processStructSiteBlock
identifies structure sites- Returns:
- true if successful; false to skip
- Throws:
Exception
-
processStructConnLoopBlock
- Throws:
Exception
-
processCompBondLoopBlock
- Throws:
Exception
-
processSubclassAtom
- Overrides:
processSubclassAtom
in classCifReader
- Parameters:
atom
-assemblyId
-strChain
-- Returns:
- true if valid atom
-
checkPDBModelField
- Overrides:
checkPDBModelField
in classCifReader
- Parameters:
modelField
-currentModelNo
-- Returns:
- new currentModelNo
- Throws:
Exception
-
incrementModel
- Throws:
Exception
-