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 intprivate int[]private Atom[]private javajs.util.BS[]private Object[]private intprivate intprivate int[]private int[]private int[]private booleanprivate String[]private intprivate StringFields inherited from class org.jmol.adapter.readers.cif.MMCifReader
done, htHetero, htSites, isBiomolecule, mident, vBiomoleculesFields 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, useAuthorChainIDFields 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, is2D, isBinary, isConcatenated, isDSSP1, isFinalized, isMolecular, isPrimitive, isSequential, isTrajectory, latticeCells, latticeScaling, latticeType, line, lstNCS, matUnitCellOrientation, merging, modDim, modelNumber, ms, mustFinalizeModelSet, next, noHydrogens, noPack, optimize2D, 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 voidprivate voidaddMMTFBonds(int[] bo, int[] bi, int a0, boolean doMulti, boolean isInter) voidWe must add groups to the proper bsStructure elementvoidprivate Objectprivate voidgetMMTFAtoms(boolean doMulti) set up all atoms, including bonding, within a groupprivate voidprivate voidGet and translate the DSSP string from digit format input dataprotected voidprivate voidprotected voidstandard set upMethods inherited from class org.jmol.adapter.readers.cif.MMCifReader
addAssembly, addHetero, addMatrix, checkFilterAssembly, checkPDBModelField, checkSubclassSymmetry, finalizeSubclass, incrementModel, initSubclass, processSubclassAtom, processSubclassEntry, processSubclassLoopBlock, sortAssemblyModelsMethods 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, skipLoopMethods 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:
setupin classAtomSetCollectionReader- Parameters:
fullPath-htParams-reader-
-
processBinaryDocument
- Overrides:
processBinaryDocumentin classAtomSetCollectionReader- Throws:
Exception
-
applySymmetryAndSetTrajectory
- Overrides:
applySymmetryAndSetTrajectoryin 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
-