Package org.jmol.adapter.readers.cif
Class MMTFReader
java.lang.Object
org.jmol.adapter.smarter.AtomSetCollectionReader
org.jmol.adapter.readers.cif.CifReader
org.jmol.adapter.readers.cif.MMCifReader
org.jmol.adapter.readers.cif.MMTFReader
- All Implemented Interfaces:
javajs.api.GenericLineReader
JmolData RCSB MMTF (macromolecular transmission format) file reader
see https://github.com/rcsb/mmtf/blob/master/spec.md
full specification Version: v0.2+dev (as of 2016.08.08) is
implemented,including:
reading atoms, bonds, and DSSP 1.0 secondary structure
load =1f88.mmtf filter "DSSP1"
[Note that the filter "DSSP1" is required, since mmtf included DSSP 1.0
calculations, while the standard for Jmol itself is DSSP 2.0. These two
calculations differ in their treating of helix kinks as one (1.0) or two
(2.0) helices.]
reading space groups and unit cells, and using those as per other readers
load =1crn.mmtf {1 1 1}
reading bioassemblies (biomolecules) and applying all symmetry
transformations
load =1auy.mmtf FILTER "biomolecule 1;*.CA,*.P"
reading both biomolecules and lattices, and loading course-grained using the
filter "BYCHAIN" or "BYSYMOP"
load =1auy.mmtf {2 2 1} filter "biomolecule 1;bychain";spacefill 30.0; color
property symop
Many thanks to the MMTF team at RCSB for assistance in this implementation.
- Author:
- Bob Hanson hansonr@stolaf.edu
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jmol.adapter.readers.cif.CifReader
CifReader.Parser
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
private int[]
private Atom[]
private javajs.util.BS[]
private Object[]
private int
private int
private int[]
private int[]
private int[]
private boolean
private String[]
private int
private String
Fields inherited from class org.jmol.adapter.readers.cif.MMCifReader
done, htHetero, htSites, isBiomolecule, mident, vBiomolecules
Fields inherited from class org.jmol.adapter.readers.cif.CifReader
ac, CELL_TYPE_MAGNETIC_PARENT, CELL_TYPE_MAGNETIC_STANDARD, cifParser, col2key, data, FAMILY_ATOM, field, firstChar, haveCellWaveVector, haveHAtoms, htGroup1, iHaveDesiredModel, isCourseGrained, isLigand, isMagCIF, isMMCIF, key, key0, key2col, lastDataSetName, maxSerial, modelMap, nAtoms, nAtoms0, NONE, skipping, subParser, 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, centroidPacked, continuing, debugging, desiredModelNumber, desiredSpaceGroupIndex, desiredVibrationNumber, doApplySymmetry, doCentralize, doCentroidUnitCell, doCheckUnitCell, doConvertToFractional, doPackUnitCell, doProcessLines, doReadMolecularOrbitals, dssr, fileName, fileOffset, filePath, fileScaling, fillRange, filter, filterAllHetero, filterCased, filterHetero, fixJavaFloat, forcePacked, getHeader, haveAtomFilter, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, ignoreStructure, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, isBinary, isConcatenated, isDSSP1, isFinalized, isMolecular, isPrimitive, isSequential, isTrajectory, latticeCells, latticeScaling, latticeType, line, lstNCS, matUnitCellOrientation, merging, modDim, modelNumber, ms, mustFinalizeModelSet, next, noPack, out, packingError, paramsCentroid, paramsLattice, 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
private void
addMMTFBonds
(int[] bo, int[] bi, int a0, boolean doMulti, boolean isInter) void
We must add groups to the proper bsStructure elementvoid
private Object
private void
getMMTFAtoms
(boolean doMulti) set up all atoms, including bonding, within a groupprivate void
private void
Get and translate the DSSP string from digit format input dataprotected void
private void
protected void
standard set upMethods inherited from class org.jmol.adapter.readers.cif.MMCifReader
addAssembly, addHetero, addMatrix, checkFilterAssembly, checkPDBModelField, checkSubclassSymmetry, finalizeSubclass, incrementModel, initSubclass, processSubclassAtom, processSubclassEntry, processSubclassLoopBlock, sortAssemblyModels
Methods inherited from class org.jmol.adapter.readers.cif.CifReader
addCifAtom, checkAllFieldsPresent, doPreSymmetry, fieldProperty, filterCIFAtom, finalizeSubclassReader, finalizeSubclassSymmetry, getBondOrder, getCifDataParser, getField, initializeReader, isNull, newModel, nextAtomSet, parseLoopParameters, parseLoopParametersFor, processAtomSiteLoopBlock, processLoopBlock, skipLoop
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, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFilterWithCase, getFortranFormatLengths, getInterface, getNewSymmetry, getStrings, getSymmetry, getTokens, getTokensFloat, initializeSymmetry, initializeSymmetryOptions, initializeTrajectoryFile, isLastModel, newAtomSet, parseFloat, parseFloatRange, parseFloatStr, parseInt, parseIntAt, parseIntRange, parseIntStr, parseToken, parseTokenNext, parseTokenRange, parseTokenStr, processDOM, rd, read3Vectors, readDataObject, readLines, readNextLine, rejectAtomName, RL, set2D, setAtomCoord, setAtomCoordScaled, setAtomCoordTokens, setAtomCoordXYZ, setChainID, setElementAndIsotope, setFilter, setFilterAtomTypeStr, setFractionalCoordinates, setIsPDB, setLoadNote, setModelPDB, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem, setupASCR
-
Field Details
-
haveStructure
private boolean haveStructure -
pdbID
-
map
-
fileAtomCount
private int fileAtomCount -
opCount
private int opCount -
groupModels
private int[] groupModels -
groupMap
private int[] groupMap -
groupDSSP
private int[] groupDSSP -
atomGroup
private int[] atomGroup -
labelAsymList
-
atomMap
-
entities
-
groupCount
private int groupCount -
ac0
private int ac0 -
bsStructures
private javajs.util.BS[] bsStructures
-
-
Constructor Details
-
MMTFReader
public MMTFReader()
-
-
Method Details
-
addHeader
protected void addHeader() -
setup
standard set up- Overrides:
setup
in classAtomSetCollectionReader
- Parameters:
fullPath
-htParams
-reader
-
-
processBinaryDocument
- Overrides:
processBinaryDocument
in classAtomSetCollectionReader
- Throws:
Exception
-
applySymmetryAndSetTrajectory
- Overrides:
applySymmetryAndSetTrajectory
in classCifReader
- Throws:
Exception
-
getMMTFAtoms
set up all atoms, including bonding, within a group- Parameters:
doMulti
- true to add double bonds- Throws:
Exception
-
addMMTFBonds
private void addMMTFBonds(int[] bo, int[] bi, int a0, boolean doMulti, boolean isInter) -
setMMTFSymmetry
private void setMMTFSymmetry() -
getMMTFBioAssembly
private void getMMTFBioAssembly() -
getStructure
private void getStructure()Get and translate the DSSP string from digit format input data -
addStructureSymmetry
public void addStructureSymmetry()We must add groups to the proper bsStructure element -
decode
-