Package org.jmol.adapter.readers.more
Class JcampdxReader
- java.lang.Object
-
- org.jmol.adapter.smarter.AtomSetCollectionReader
-
- org.jmol.adapter.readers.molxyz.MolReader
-
- org.jmol.adapter.readers.more.JcampdxReader
-
- All Implemented Interfaces:
javajs.api.GenericLineReader,JmolJDXMOLReader
public class JcampdxReader extends MolReader implements JmolJDXMOLReader
A preliminary reader for JCAMP-DX files having ##$MODELS= and ##$PEAKS= records Designed by Robert Lancashire and Bob Hanson specifications (by example here): ##$MODELS= <Models> <ModelData id="acetophenone" type="MOL"> acetophenone DSViewer 3D 0 17 17 0 0 0 0 0 0 0 0999 V2000 ... 17 14 1 0 0 0 M END </ModelData> <ModelData id="irvibs" type="XYZVIB" baseModel="acetophenone" vibrationScale="0.1"> 17 1 Energy: -1454.38826 Freq: 3199.35852 C -1.693100 0.007800 0.000000 -0.000980 0.000120 0.000000 ... </ModelData> </Models> -- All XML data should be line-oriented in the above fashion. Leading spaces will be ignored. -- Any number of <ModelData> segments can be present -- The first model is referred to as the "base" model -- The base model: -- will generally be of type MOL, but any known type is acceptable -- will be used to generate bonding for later models that have no bonding information -- will be the only model for NMR -- Additional models can represent vibrations (XYZ format) or MS fragmentation (MOL format, probably) ##$PEAKS= <Peaks type="IR" xUnits="1/cm" yUnits="TRANSMITTANCE" > <PeakData id="1" title="asymm stretch of aromatic CH group (~3100 cm-1)" peakShape="broad" model="irvibs.1" xMax="3121" xMin="3081" yMax="1" yMin="0" /> <PeakData id="2" title="symm stretch of aromatic CH group (~3085 cm-1)" peakShape="broad" model="irvibs.2" xMax="3101" xMin="3071" yMax="1" yMin="0" /> ... </Peaks> -- peak record must be a single line of information because Jmol will use line.trim() as a key to pass information to JSpecView.
-
-
Field Summary
Fields Modifier and Type Field Description private javajs.util.Lst<String[]>acdAssignmentsprivate StringacdMolFileprivate StringallTypesprivate JmolJDXMOLParsermprprivate intnPeaksprivate Stringnucleusprivate javajs.util.Lst<String>peakDataprivate intselectedModelprivate Stringtitleprivate Stringtype-
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addedData, addedDataKey, addVibrations, allow_a_len_1, allowPDBFilter, ANGSTROMS_PER_BOHR, applySymmetryToBonds, asc, baseAtomIndex, binaryDoc, bsFilter, bsModels, calculationType, continuing, debugging, desiredModelNumber, desiredSpaceGroupIndex, desiredVibrationNumber, doApplySymmetry, doCentralize, doCheckUnitCell, doConvertToFractional, doPackUnitCell, doProcessLines, doReadMolecularOrbitals, dssr, fileName, fileOffset, filePath, fileScaling, fillRange, filter, 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, modDim, modelNumber, ms, mustFinalizeModelSet, next, out, packingError, prevline, primitiveToCrystal, ptLine, ptSupercell, reader, readerName, requiresBSFilter, reverseModels, rotateHexCell, sgName, stateScriptVersionInt, strSupercell, symmetry, templateAtomCount, thisBiomolecule, trajectorySteps, ucItems, unitCellOffset, unitCellParams, useAltNames, useFileModelNumbers, validation, vibrationNumber, vibsFractional, vwr
-
-
Constructor Summary
Constructors Constructor Description JcampdxReader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPeakData(String info)private voidaddType(int imodel, String type)sets an auxiliaryInfo string to "HNMR 13CNMR" or "IR" or "MS"private StringaddTypeStr(String types, String type)booleancheckLine()voidfinalizeSubclassReader()optional reader-specific method run first.private intfindModelById(String modelID)voidinitializeReader()voidprocessModelData(String data, String id, String type, String base, String last, float modelScale, float vibScale, boolean isFirst)private voidprocessPeakData()integrate the <PeakAssignment> records into the associated models, and delete unreferenced n.m modelsprivate voidprocessPeakSelectAtom(int i, String key, String data)private booleanprocessPeakSelectModel(int i, String title)private voidsetBonding(AtomSetCollection a, int ibase)add bonding to a set of ModelData based on a MOL file only if the this set has no bonding alreadyvoidsetSpectrumPeaks(int nH, String piUnitsX, String piUnitsY)private voidupdateModelIDs(String id, int model0, boolean isFirst)The first model set is allowed to be a single model and given no extension.-
Methods inherited from class org.jmol.adapter.readers.molxyz.MolReader
addMolAtom, addMolBond, finalizeReaderMR
-
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addAtomXYZSymName, addExplicitLatticeVector, addJmolScript, addSites, addSiteScript, appendLoadNote, appendUunitCellInfo, applySymmetryAndSetTrajectory, applySymTrajASCR, checkCurrentLineForScript, checkFilterKey, checkLastModel, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, discardLinesUntilStartsWith, discardPreviousAtoms, doGetModel, doGetVibration, doPreSymmetry, fill3x3, fillDataBlock, fillDataBlockFixed, fillFloatArray, fillFrequencyData, filterAtom, filterReject, finalizeMOData, finalizeModelSet, finalizeReaderASCR, finalizeSubclassSymmetry, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFortranFormatLengths, getInterface, getNewSymmetry, getStrings, getSymmetry, getTokens, getTokensFloat, initializeSymmetry, initializeSymmetryOptions, initializeTrajectoryFile, isLastModel, newAtomSet, parseFloat, parseFloatRange, parseFloatStr, parseInt, parseIntAt, parseIntRange, parseIntStr, 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, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem, setup, setupASCR
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jmol.api.JmolJDXMOLReader
discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, rd
-
-
-
-
Field Detail
-
selectedModel
private int selectedModel
-
mpr
private JmolJDXMOLParser mpr
-
acdMolFile
private String acdMolFile
-
nPeaks
private int nPeaks
-
acdAssignments
private javajs.util.Lst<String[]> acdAssignments
-
title
private String title
-
nucleus
private String nucleus
-
type
private String type
-
peakData
private javajs.util.Lst<String> peakData
-
allTypes
private String allTypes
-
-
Method Detail
-
initializeReader
public void initializeReader() throws Exception- Overrides:
initializeReaderin classMolReader- Throws:
Exception
-
checkLine
public boolean checkLine() throws Exception
-
finalizeSubclassReader
public void finalizeSubclassReader() throws ExceptionDescription copied from class:AtomSetCollectionReaderoptional reader-specific method run first.- Overrides:
finalizeSubclassReaderin classMolReader- Throws:
Exception
-
processModelData
public void processModelData(String data, String id, String type, String base, String last, float modelScale, float vibScale, boolean isFirst) throws Exception
- Specified by:
processModelDatain interfaceJmolJDXMOLReader- Throws:
Exception
-
setBonding
private void setBonding(AtomSetCollection a, int ibase)
add bonding to a set of ModelData based on a MOL file only if the this set has no bonding already- Parameters:
a-ibase-
-
updateModelIDs
private void updateModelIDs(String id, int model0, boolean isFirst)
The first model set is allowed to be a single model and given no extension. All other model sets are given .1 .2 .3 ... extensions to their IDs.- Parameters:
id-model0-isFirst-
-
addPeakData
public void addPeakData(String info)
- Specified by:
addPeakDatain interfaceJmolJDXMOLReader
-
processPeakData
private void processPeakData()
integrate the <PeakAssignment> records into the associated models, and delete unreferenced n.m models
-
findModelById
private int findModelById(String modelID)
-
addType
private void addType(int imodel, String type)sets an auxiliaryInfo string to "HNMR 13CNMR" or "IR" or "MS"- Parameters:
imodel-type-
-
processPeakSelectModel
private boolean processPeakSelectModel(int i, String title)
-
setSpectrumPeaks
public void setSpectrumPeaks(int nH, String piUnitsX, String piUnitsY)- Specified by:
setSpectrumPeaksin interfaceJmolJDXMOLReader
-
-