# 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:
  `GenericLineReader`

public class MMTFReader extends MMCifReader
JmolData RCSB MMTF (macromolecular transmission format) file reader see https://github.com/rcsb/mmtf/blob/master/spec.md Note added 2024.01.19 Jose Duarte 2:03 PM (email) to MMTF-Users From July 2024 the PDB file archive will not be offered in the compressed MMTF format anymore. Users are strongly encouraged to switch to the BinaryCIF format, which has been available since 2020. Details on how to access BinaryCIF (BCIF) data files for the entire PDB archive are available here. RCSB PDB support is ready to assist with any issues or questions at info@rcsb.org. 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

## Field Summary

### Fields inherited from class MMCifReader

`CAT_ASSEM, CAT_CHEMCOMP, CAT_COMPBOND, CAT_NCS, CAT_OPER, CAT_SEQUENCEDIF, CAT_SHEET, CAT_STRUCSITE, CAT_STRUCTCONF, CAT_STRUCTCONN, done, htHetero, htSites, isBiomolecule, vBiomolecules`

### Fields inherited from class CifReader

`ac, CAT_ATOM_SITE, CAT_ATOM_SITES, CAT_ATOM_TYPE, CAT_CELL, EMPTY, firstChar, htGroup1, iHaveDesiredModel, isCourseGrained, isLigand, isLoop, isMagCIF, isMMCIF, isSpinCIF, lastDataSetName, maxSerial, modelMap, nAtoms, nAtoms0, NONE, skipping, symops, thisDataSetName, useAuthorChainID`

### Fields inherited from class 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
Constructor
Description
`MMTFReader()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addHeader()`
`void`
`addStructureSymmetry()`
We must add groups to the proper bsStructure element
`void`
`applySymmetryAndSetTrajectory()`
`protected void`
`processBinaryDocument()`
`protected void`
`setup(String fullPath, Map<String,Object> htParams, Object reader)`
standard set up

### Methods inherited from class MMCifReader

`addAssembly, addHetero, addMatrix, checkFilterAssembly, checkPDBModelField, checkSubclassSymmetry, finalizeSubclass, incrementModel, initSubclass, parseIntFieldTok, processAssemblyGenBlock, processChemCompLoopBlock, processCompBondLoopBlock, processSequence, processStructConfLoopBlock, processStructConnLoopBlock, processStructOperListBlock, processStructSheetRangeLoopBlock, processStructSiteBlock, processSubclassAtom, processSubclassEntry, processSubclassLoopBlock, sortAssemblyModels`

### Methods inherited from class CifReader

`addCifAtom, 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, setSymmetryOperator, skipLoop, skipLoopKeyword`

### Methods inherited from class AtomSetCollectionReader

`addAtomXYZSymName, addExplicitLatticeVector, addJmolScript, addMoreUnitCellInfo, addSites, addSiteScript, appendLoadNote, 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, processDOM, rd, read3Vectors, readDataObject, readLines, readNextLine, rejectAtomName, RL, set2D, setAtomCoord, setAtomCoordScaled, setAtomCoordTokens, setAtomCoordXYZ, setChainID, setElementAndIsotope, setFilter, setFilterAtomTypeStr, setFractionalCoordinates, setIsPDB, setLoadNote, setModelPDB, setPrecision, setSpaceGroupName, setTransform, setUnitCell, setUnitCellItem, setupASCR, warnSkippingOperation`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### MMTFReader

public MMTFReader()

## Method Details

### addHeader

protected void addHeader()

Overrides:
  `addHeader` in class `CifReader`

### setup

protected void setup(String fullPath, Map<String,Object> htParams, Object reader)
standard set up

Overrides:
  `setup` in class `AtomSetCollectionReader`
Parameters:
  `fullPath` -
  `htParams` -
  `reader` -

### processBinaryDocument

protected void processBinaryDocument() throws Exception

Overrides:
  `processBinaryDocument` in class `AtomSetCollectionReader`
Throws:
  `Exception`

### applySymmetryAndSetTrajectory

public void applySymmetryAndSetTrajectory() throws Exception

Overrides:
  `applySymmetryAndSetTrajectory` in class `CifReader`
Throws:
  `Exception`

### addStructureSymmetry

public void addStructureSymmetry()
We must add groups to the proper bsStructure element