Package org.jmol.modelset
Class ModelSet
- java.lang.Object
-
- org.jmol.modelset.AtomCollection
-
- org.jmol.modelset.BondCollection
-
- org.jmol.modelset.ModelSet
-
public class ModelSet extends BondCollection
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jmol.modelset.AtomCollection
AtomCollection.AtomSorter
-
-
Field Summary
Fields Modifier and Type Field Description Model[]
am
private BS
bboxAtoms
BS
bboxModels
private BoxInfo
boxInfo
protected BS
bsAll
protected BS
bsSymmetry
protected Atom[]
closest
private BoxInfo
defaultBBox
private boolean
echoShapeActive
protected BS[]
elementsPresent
java.lang.String[]
frameTitles
boolean
haveBioModels
boolean
haveUnitCells
private static float
hbondMin
java.util.Hashtable<java.lang.String,BS>
htPeaks
private boolean
isBbcageDefault
protected boolean
isXYZ
private javajs.util.M4
mat4
private javajs.util.M4
mat4t
private javajs.util.M3
matInv
private javajs.util.M3
matTemp
private boolean
maxBondWarned
int
mc
model countint[]
modelFileNumbers
java.lang.String[]
modelNames
protected int[]
modelNumbers
java.lang.String[]
modelNumbersForAtomLabel
java.lang.String
modelSetName
java.util.Properties
modelSetProperties
protected java.lang.String
modelSetTypeName
java.util.Map<java.lang.String,java.lang.Object>
msInfo
private SymmetryInterface
pointGroup
boolean
proteinStructureTainted
private javajs.util.P3
ptTemp
private javajs.util.P3
ptTemp1
private javajs.util.P3
ptTemp2
private BS
selectedMolecules
(package private) boolean
showRebondTimes
ShapeManager
sm
protected boolean
someModelsHaveAromaticBonds
protected boolean
someModelsHaveFractionalCoordinates
protected boolean
someModelsHaveSymmetry
javajs.util.Lst<StateScript>
stateScripts
private int
thisStateModel
javajs.util.P3[]
translations
SymmetryInterface[]
unitCells
protected javajs.util.Lst<javajs.util.V3[]>
vibrationSteps
private javajs.util.Quat[]
vOrientations
private javajs.util.V3
vTemp
-
Fields inherited from class org.jmol.modelset.BondCollection
bo, BOND_GROWTH_INCREMENT, bondCount, bsAromatic, defaultCovalentMad, freeBonds, haveHiddenBonds, MAX_BONDS_LENGTH_TO_CACHE, MAX_NUM_TO_CACHE, moleculeCount, molecules, numCached
-
Fields inherited from class org.jmol.modelset.AtomCollection
aaRet, ac, at, atomNames, atomResnos, atomSeqIDs, atomSerials, atomTensorList, atomTensors, atomTypes, averageAtomPoint, bfactor100s, bioModelset, bondingRadii, bsClickable, bsModulated, bsPartialCharges, bspf, bsVisible, canSkipLoad, g3d, haveStraightness, hydrophobicities, maxBondingRadius, occupancies, partialCharges, preserveState, surfaceDistance100s, TAINT_ATOMNAME, TAINT_ATOMNO, TAINT_ATOMTYPE, TAINT_BONDINGRADIUS, TAINT_CHAIN, TAINT_COORD, TAINT_ELEMENT, TAINT_FORMALCHARGE, TAINT_HYDROPHOBICITY, TAINT_MAX, TAINT_OCCUPANCY, TAINT_PARTIALCHARGE, TAINT_RESNO, TAINT_SEQID, TAINT_TEMPERATURE, TAINT_VALENCE, TAINT_VANDERWAALS, TAINT_VIBRATION, tainted, trajectory, userSettableValues, vibrations, vwr
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Atom
addAtom(int modelIndex, Group group, int atomicAndIsotopeNumber, java.lang.String atomName, java.lang.String atomType, int atomSerial, int atomSeqID, int atomSite, javajs.util.P3 xyz, float radius, javajs.util.V3 vib, int formalCharge, float partialCharge, float occupancy, float bfactor, javajs.util.Lst<java.lang.Object> tensors, boolean isHetero, byte specialAtomID, BS atomSymmetry)
BS
addHydrogens(javajs.util.Lst<Atom> vConnections, javajs.util.P3[] pts)
these are hydrogens that are being added due to a load 2D command and are therefore not to be flagged as NEWStateScript
addStateScript(java.lang.String script1, BS bsBonds, BS bsAtoms1, BS bsAtoms2, java.lang.String script2, boolean addFrameNumber, boolean postDefinitions)
void
adjustAtomArrays(int[] map, int i0, int ac)
void
assignAtom(int atomIndex, java.lang.String type, boolean autoBond)
private int
autoBond_Pre_11_9_24(BS bsA, BS bsB, BS bsExclude, BS bsBonds, short mad)
int
autoBondBs4(BS bsA, BS bsB, BS bsExclude, BS bsBonds, short mad, boolean preJmol11_9_24)
private boolean
autoBondCheck(Atom atomA, Atom atomB, int order, short mad, BS bsBonds)
int
autoHbond(BS bsA, BS bsB, boolean onlyIfHaveCalculated)
a generalized formation of HBONDS, carried out in relation to calculate HBONDS {atomsFrom} {atomsTo}.int
calcAtomsMinMax(BS bs, BoxInfo boxInfo)
void
calcBoundBoxDimensions(BS bs, float scale)
void
calcRasmolHydrogenBonds(BS bsA, BS bsB, javajs.util.Lst<Bond> vHBonds, boolean nucleicOnly, int nMax, boolean dsspIgnoreHydrogens, BS bsHBonds)
These are not actual hydrogen bonds.float
calcRotationRadius(int modelIndex, javajs.util.P3 center, boolean useBoundBox)
float
calcRotationRadiusBs(BS bs)
void
calcSelectedGroupsCount()
void
calcSelectedMoleculesCount()
void
calcSelectedMonomersCount()
javajs.util.V3
calculateMolecularDipole(int modelIndex, BS bsAtoms)
java.lang.String
calculatePointGroup(BS bsAtoms)
private java.lang.Object
calculatePointGroupForFirstModel(BS bsAtoms, boolean doAll, boolean asInfo, java.lang.String type, int index, float scale, javajs.util.T3[] pts, javajs.util.P3 center, java.lang.String id)
protected void
calculatePolymers(Group[] groups, int groupCount, int baseGroupIndex, BS modelsExcluded)
void
calculateStraightnessAll()
java.lang.String
calculateStructures(BS bsAtoms, boolean asDSSP, boolean doReport, boolean dsspIgnoreHydrogen, boolean setStructure, int version)
java.lang.String
calculateStructuresAllExcept(BS alreadyDefined, boolean asDSSP, boolean doReport, boolean dsspIgnoreHydrogen, boolean setStructure, boolean includeAlpha, int version)
allows rebuilding of PDB structures; also accessed by ModelManager from Evalint
calculateStruts(BS bs1, BS bs2)
see comments in org.jmol.modelsetbio.AlphaPolymer.java Struts are calculated for atoms in bs1 connecting to atoms in bs2.private void
calcUnitCellMinMax()
private static javajs.util.P3
checkMinAttachedAngle(Atom atom1, float minAngle, javajs.util.V3 v1, javajs.util.V3 v2, boolean haveHAtoms)
void
clearCache()
protected void
clearDataFrameReference(int modelIndex)
void
clearDB(int atomIndex)
void
connect(float[][] connections)
void
createModels(int n)
void
deleteAllBonds()
void
deleteAtoms(BS bs)
void
deleteBonds(BS bsBonds, boolean isFullModel)
private void
deleteModel(int modelIndex, int firstAtomIndex, int nAtoms, BS bsModelAtoms, BS bsBonds)
BS
deleteModels(BS bsModels)
void
fillAtomData(AtomData atomData, int mode)
BS
findAtomsInRectangle(Rectangle rect)
int
findNearestAtomIndex(int x, int y, BS bsNot, int min)
(package private) void
freezeModels()
int
getAltLocCountInModel(int modelIndex)
int
getAltLocIndexInModel(int modelIndex, char alternateLocationID)
java.lang.String
getAltLocListInModel(int modelIndex)
protected BS
getAtomBitsMaybeDeleted(int tokType, java.lang.Object specInfo)
int
getAtomCountInModel(int modelIndex)
javajs.util.Quat[]
getAtomGroupQuaternions(BS bsAtoms, int nMax, char qtype)
BS
getAtoms(int tokType, java.lang.Object specInfo)
general lookup for integer type -- from Evaljavajs.util.P3
getAtomSetCenter(BS bs)
BS
getAtomsWithin(float distance, javajs.util.T3 coord, BS bsResult, int modelIndex)
BS
getAtomsWithinRadius(float distance, BS bs, boolean withinAllModels, RadiusData rd)
Get atoms within a specific distance of any atom in a specific set of atoms either within all models or within just the model(s) of those atomsjava.util.Map<java.lang.String,java.lang.Object>
getAuxiliaryInfo(BS bsModels)
Retrieve the main modelset info Hashtable (or a new non-null Hashtable) with an up-to-date "models" key.javajs.util.P3
getAverageAtomPoint()
Point3fi[]
getBBoxVertices()
int
getBioPolymerCountInModel(int modelIndex)
BS
getBitSetTrajectories()
int
getBondCountInModel(int modelIndex)
for general usejavajs.util.P3
getBoundBoxCenter(int modelIndex)
java.lang.String
getBoundBoxCommand(boolean withOptions)
javajs.util.V3
getBoundBoxCornerVector()
java.lang.String
getBoundBoxOrientation(int type, BS bsAtoms)
BoxInfo
getBoxInfo()
BoxInfo
getBoxInfo(BS bs, float scale)
BS[]
getBsBranches(float[] dihedralList)
float[]
getCellWeights(BS bsAtoms)
javajs.util.P3[][]
getCenterAndPoints(javajs.util.Lst<java.lang.Object[]> vAtomSets, boolean addCenters)
int
getChainCountInModelWater(int modelIndex, boolean countWater)
BS
getConformation(int modelIndex, int conformationIndex, boolean doSet, BS bsSelected)
private BoxInfo
getDefaultBoundBox()
The default bounding box is created when the LOAD ....java.lang.String
getDefaultStructure(BS bsAtoms, BS bsModified)
VDW
getDefaultVdwType(int modelIndex)
int[][]
getDihedralMap(int[] alist)
boolean
getEchoStateActive()
BS
getElementsPresentBitSet(int modelIndex)
java.lang.Object
getFileData(int modelIndex)
java.lang.String
getFileHeader(int modelIndex)
long
getFrameDelayMs(int i)
javajs.util.P3[]
getFrameOffsets(BS bsAtoms, boolean isFull)
java.lang.String
getFrameTitle(int modelIndex)
int
getGroupCountInModel(int modelIndex)
(package private) Group[]
getGroups()
In versions earlier than 12.1.51, groups[] was a field of ModelCollection.BS
getGroupsWithin(int nResidues, BS bs)
java.util.Map<java.lang.String,java.lang.String>
getHeteroList(int modelIndex)
java.lang.Object
getInfo(int modelIndex, java.lang.String key)
protected boolean
getInfoB(int modelIndex, java.lang.String keyName)
protected int
getInfoI(int modelIndex, java.lang.String keyName)
java.lang.Object
getInfoM(java.lang.String keyName)
java.lang.String
getInlineData(int modelIndex)
int
getInsertionCodeIndexInModel(int modelIndex, char insertionCode)
int
getInsertionCountInModel(int modelIndex)
private java.lang.String
getInsertionListInModel(int modelIndex)
BS
getIterativeModels(boolean allowJmolData)
only some models can be iterated through.int
getJmolDataFrameIndex(int modelIndex, java.lang.String type)
int
getJmolDataSourceFrame(int modelIndex)
java.lang.String
getJmolFrameType(int modelIndex)
int
getLastVibrationVector(int modelIndex, int tok)
BS
getModelAtomBitSetIncludingDeleted(int modelIndex, boolean asCopy)
Note that this method returns all atoms, included deleted ones.BS
getModelAtomBitSetIncludingDeletedBs(BS bsModels)
note -- this method returns ALL atoms, including deleted.java.util.Map<java.lang.String,java.lang.Object>
getModelAuxiliaryInfo(int modelIndex)
BS
getModelBS(BS atomList, boolean allTrajectories)
int[]
getModelCellRange(int modelIndex)
java.lang.String
getModelDataBaseName(BS bsAtoms)
javajs.util.V3
getModelDipole(int modelIndex)
java.lang.String
getModelFileName(int modelIndex)
java.lang.String
getModelFileType(int modelIndex)
int
getModelIndexFromId(java.lang.String id)
java.lang.String
getModelInfoAsString()
BS
getModelKitStateBitset(BS bs, BS bsDeleted)
java.lang.String
getModelName(int modelIndex)
int
getModelNumber(int modelIndex)
java.lang.String
getModelNumberDotted(int modelIndex)
java.lang.String
getModelNumberForAtomLabel(int modelIndex)
int
getModelNumberIndex(int modelNumber, boolean useModelNumber, boolean doSetTrajectory)
Orientation
getModelOrientation(int modelIndex)
java.lang.String
getModelProperty(int modelIndex, java.lang.String property)
java.lang.String
getModelSetTypeName()
int
getModelSymmetryCount(int modelIndex)
java.lang.String
getModelTitle(int modelIndex)
javajs.util.Lst<java.lang.Object>
getModulationList(BS bs, char type, javajs.util.P3 t456)
BS
getMoleculeBitSet(BS bs)
BS
getMoleculeBitSetForAtom(int atomIndex)
int
getMoleculeCountInModel(int modelIndex)
int
getMoleculeIndex(int atomIndex, boolean inModel)
JmolMolecule[]
getMolecules()
boolean
getMSInfoB(java.lang.String keyName)
private BS
getNotInCentroid(BS bs, int[] minmax)
java.lang.String
getPDBHeader(int modelIndex)
java.lang.String
getPointGroupAsString(BS bsAtoms, java.lang.String type, int index, float scale, javajs.util.P3[] pts, javajs.util.P3 center, java.lang.String id)
java.util.Map<java.lang.String,java.lang.Object>
getPointGroupInfo(BS bsAtoms)
void
getPolymerPointsAndVectors(BS bs, javajs.util.Lst<javajs.util.P3[]> vList, boolean isTraceAlpha, float sheetSmoothing)
java.lang.String
getProteinStructureState(BS bsAtoms, int mode)
private BS
getSelectCodeRange(int[] info)
AtomIndexIterator
getSelectedAtomIterator(BS bsSelected, boolean isGreaterOnly, boolean modelZeroBased, boolean hemisphereOnly, boolean isMultiModel)
BS
getSequenceBits(java.lang.String specInfo, BS bsAtoms, BS bsResult)
java.util.Map<STR,float[]>
getStructureList()
javajs.util.M4[]
getSymMatrices(int modelIndex)
java.lang.String
getSymmetryInfoAsString()
javajs.util.P3
getTranslation(int iModel)
SymmetryInterface
getUnitCell(int modelIndex)
SymmetryInterface
getUnitCellForAtom(int index)
float[]
getUnitCellParams()
deprecated due to multimodel issues, but required by an interface -- do NOT remove.java.lang.Object
getUnitCellPointsWithin(float distance, BS bs, javajs.util.P3 pt, boolean asMap)
protected void
growAtomArrays(int newLength)
boolean
haveModelKit()
private void
includeAllRelatedFrames(BS bsModels)
protected void
initializeBspf()
protected void
initializeBspt(int modelIndex)
void
invertSelected(javajs.util.P3 pt, javajs.util.P4 plane, int iAtom, BS invAtoms, BS bs)
boolean
isAtomAssignable(int i)
boolean
isAtomPDB(int i)
boolean
isBondable(float bondingRadiusA, float bondingRadiusB, float distance2, float minBondDistance2, float bondTolerance)
private boolean
isInLatticeCell(int i, javajs.util.P3 cell, javajs.util.P3 ptTemp, boolean isAbsolute)
private boolean
isJmolDataFrameForAtom(Atom atom)
boolean
isJmolDataFrameForModel(int modelIndex)
boolean
isTrajectory(int modelIndex)
could be the base model or one of the subframesboolean
isTrajectoryMeasurement(int[] countPlusIndices)
boolean
isTrajectorySubFrame(int i)
int[]
makeConnections(float minDistance, float maxDistance, int order, int connectOperation, BS bsA, BS bsB, BS bsBonds, boolean isBonds, boolean addGroup, float energy)
int[]
makeConnections2(float minD, float maxD, int order, int connectOperation, BS bsA, BS bsB, BS bsBonds, boolean isBonds, boolean addGroup, float energy)
protected void
mergeModelArrays(ModelSet mergeModelSet)
initial transfer of model data from old to new model set.static int
modelFileNumberFromFloat(float fDotM)
void
morphTrajectories(int m1, int m2, float f)
void
moveAtoms(javajs.util.M4 m4, javajs.util.M3 mNew, javajs.util.M3 rotation, javajs.util.V3 translation, BS bs, javajs.util.P3 center, boolean isInternal, boolean translationOnly)
void
recalculateLeadMidpointsAndWingVectors(int modelIndex)
void
recalculatePolymers(BS bsModelsExcluded)
void
recalculatePositionDependentQuantities(BS bs, javajs.util.M4 mat)
protected void
releaseModelSet()
void
saveModelOrientation(int modelIndex, Orientation orientation)
private static int
selectSeqcodeRange(Group[] groups, int n, int index, int seqcodeA, int seqcodeB, BS bs)
protected void
setAPm(BS bs, int tok, int iValue, float fValue, java.lang.String sValue, float[] values, java.lang.String[] list)
void
setAtomCoords(BS bs, int tokType, java.lang.Object xyzValues)
void
setAtomCoordsRelative(javajs.util.T3 offset, BS bs)
void
setAtomNamesAndNumbers(int iFirst, int baseAtomIndex, AtomCollection mergeSet)
void
setAtomProperty(BS bs, int tok, int iValue, float fValue, java.lang.String sValue, float[] values, java.lang.String[] list)
void
setBoundBox(javajs.util.T3 pt1, javajs.util.T3 pt2, boolean byCorner, float scale)
void
setCentroid(BS bs, int[] minmax)
deletes molecules based on: CENTROID -- molecular centroid is not in unit cell CENTROID PACKED -- all molecule atoms are not in unit cellBS
setConformation(BS bsAtoms)
boolean
setCrystallographicDefaults()
void
setDihedrals(float[] dihedralList, BS[] bsBranches, float f)
void
setEchoStateActive(boolean TF)
void
setFrameDelayMs(long millis, BS bsModels)
void
setFrameTitle(BS bsFrames, java.lang.Object title)
void
setInfo(int modelIndex, java.lang.Object key, java.lang.Object value)
void
setIteratorForAtom(AtomIndexIterator iterator, int modelIndex, int atomIndex, float distance, RadiusData rd)
void
setIteratorForPoint(AtomIndexIterator iterator, int modelIndex, javajs.util.T3 pt, float distance)
void
setJmolDataFrame(java.lang.String type, int modelIndex, int modelDataIndex)
void
setModelCage(int modelIndex, SymmetryInterface simpleCage)
void
setModulation(BS bs, boolean isOn, javajs.util.P3 qtOffset, boolean isQ)
Sets the modulation for all atoms in bs.void
setPdbConectBonding(int baseAtomIndex, int baseModelIndex, BS bsExclude)
void
setProteinType(BS bs, STR type)
boolean
setRotationRadius(int modelIndex, float angstroms)
void
setStructureIndexes()
void
setStructureList(java.util.Map<STR,float[]> structureList)
void
setTrajectory(int modelIndex)
void
setTrajectoryBs(BS bsModels)
void
setUnitCellOffset(SymmetryInterface unitCell, javajs.util.T3 pt, int ijk)
void
translateModel(int iModel, javajs.util.T3 pt)
move atoms by vector pt; used for co-centering with FRAME ALIGN {atoms} TRUE-
Methods inherited from class org.jmol.modelset.BondCollection
addHBond, allowAromaticBond, assignAromaticBondsBs, assignBond, bondAtoms, bondMutually, dBb, dBm, deleteAllBonds2, deleteConnections, displayBonds, fixD, getAtomBitsMDb, getAtomsConnected, getBondColix1, getBondColix2, getBondIterator, getBondIteratorForType, getBondsForSelectedAtoms, getDefaultMadFromOrder, getOrAddBond, isInRange, releaseModelSetBC, removeUnnecessaryBonds, resetAromatic, resetMolecules, setBond, setupBC
-
Methods inherited from class org.jmol.modelset.AtomCollection
addTensor, calculateHydrogens, calculateSurface, calculateVolume, chainToUpper, clearBfactorRange, clearVisibleSets, deleteModelAtoms, fillADa, findMaxRadii, findNearest2, fixFormalCharges, generateCrystalClass, getAllAtomTensors, getAtomBitsMDa, getAtomicCharges, getAtomIdentityInfo, getAtomIndices, getAtomInfo, getAtomPointVector, getAtomsFromAtomNumberInFrame, getAtomsInFrame, getAtomsNearPlane, getAtomTensor, getAtomTensorList, getAtomTypes, getBfactor100Hi, getBfactor100Lo, getBFactors, getBondingRadii, getChainBits, getClickableSet, getElementName, getFirstAtomIndexFromAtomNumber, getHybridizationAndAxes, getHydrophobicity, getLabeler, getMaxVanderwaalsRadius, getMissingHydrogenCount, getModulation, getPartialCharges, getQuaternion, getRadiusVdwJmol, getSeqcodeBits, getSpecNameOrNull, getSurfaceDistance100, getSurfaceDistanceMax, getTaintedAtoms, getUserSettableType, getVibCoord, getVibration, getVisibleSet, isAtomHidden, isCursorOnTopOf, isModulated, mergeAtomArrays, modelSetHasVibrationVectors, releaseModelSetAC, scaleVectorsToMax, setAPa, setAtomCoord, setAtomCoord2, setAtomCoordRelative, setAtomData, setAtomName, setAtomNumber, setAtomsCoordRelative, setAtomTensors, setBFactor, setBsHidden, setCapacity, setElement, setFormalCharges, setOccupancy, setPartialCharge, setPreserveState, setTaintedAtoms, setupAC, setVibrationVector, taintAtom, taintAtoms, unTaintAtoms, validateBspf, validateBspfForModel
-
-
-
-
Field Detail
-
haveBioModels
public boolean haveBioModels
-
bsSymmetry
protected BS bsSymmetry
-
modelSetName
public java.lang.String modelSetName
-
am
public Model[] am
-
mc
public int mc
model count
-
unitCells
public SymmetryInterface[] unitCells
-
haveUnitCells
public boolean haveUnitCells
-
closest
protected final Atom[] closest
-
modelNumbers
protected int[] modelNumbers
-
modelFileNumbers
public int[] modelFileNumbers
-
modelNumbersForAtomLabel
public java.lang.String[] modelNumbersForAtomLabel
-
modelNames
public java.lang.String[] modelNames
-
frameTitles
public java.lang.String[] frameTitles
-
elementsPresent
protected BS[] elementsPresent
-
isXYZ
protected boolean isXYZ
-
modelSetProperties
public java.util.Properties modelSetProperties
-
msInfo
public java.util.Map<java.lang.String,java.lang.Object> msInfo
-
someModelsHaveSymmetry
protected boolean someModelsHaveSymmetry
-
someModelsHaveAromaticBonds
protected boolean someModelsHaveAromaticBonds
-
someModelsHaveFractionalCoordinates
protected boolean someModelsHaveFractionalCoordinates
-
isBbcageDefault
private boolean isBbcageDefault
-
bboxModels
public BS bboxModels
-
bboxAtoms
private BS bboxAtoms
-
boxInfo
private final BoxInfo boxInfo
-
stateScripts
public javajs.util.Lst<StateScript> stateScripts
-
thisStateModel
private int thisStateModel
-
vibrationSteps
protected javajs.util.Lst<javajs.util.V3[]> vibrationSteps
-
selectedMolecules
private BS selectedMolecules
-
showRebondTimes
boolean showRebondTimes
-
bsAll
protected BS bsAll
-
sm
public ShapeManager sm
-
hbondMin
private static float hbondMin
-
proteinStructureTainted
public boolean proteinStructureTainted
-
htPeaks
public java.util.Hashtable<java.lang.String,BS> htPeaks
-
vOrientations
private javajs.util.Quat[] vOrientations
-
ptTemp
private final javajs.util.P3 ptTemp
-
ptTemp1
private final javajs.util.P3 ptTemp1
-
ptTemp2
private final javajs.util.P3 ptTemp2
-
matTemp
private final javajs.util.M3 matTemp
-
matInv
private final javajs.util.M3 matInv
-
mat4
private final javajs.util.M4 mat4
-
mat4t
private final javajs.util.M4 mat4t
-
vTemp
private final javajs.util.V3 vTemp
-
echoShapeActive
private boolean echoShapeActive
-
modelSetTypeName
protected java.lang.String modelSetTypeName
-
translations
public javajs.util.P3[] translations
-
pointGroup
private SymmetryInterface pointGroup
-
defaultBBox
private BoxInfo defaultBBox
-
maxBondWarned
private boolean maxBondWarned
-
-
Constructor Detail
-
ModelSet
public ModelSet(Viewer vwr, java.lang.String name)
- Parameters:
vwr
-name
-
-
-
Method Detail
-
getBoxInfo
public BoxInfo getBoxInfo()
-
releaseModelSet
protected void releaseModelSet()
-
getEchoStateActive
public boolean getEchoStateActive()
-
setEchoStateActive
public void setEchoStateActive(boolean TF)
-
getModelSetTypeName
public java.lang.String getModelSetTypeName()
-
getModelNumberIndex
public int getModelNumberIndex(int modelNumber, boolean useModelNumber, boolean doSetTrajectory)
- Parameters:
modelNumber
- can be a PDB MODEL number or a simple index number, or a fffnnnnnn f.n numberuseModelNumber
-doSetTrajectory
-- Returns:
- index
-
getModelDataBaseName
public java.lang.String getModelDataBaseName(BS bsAtoms)
-
setTrajectory
public void setTrajectory(int modelIndex)
-
getBitSetTrajectories
public BS getBitSetTrajectories()
-
setTrajectoryBs
public void setTrajectoryBs(BS bsModels)
-
morphTrajectories
public void morphTrajectories(int m1, int m2, float f)
-
getTranslation
public javajs.util.P3 getTranslation(int iModel)
-
translateModel
public void translateModel(int iModel, javajs.util.T3 pt)
move atoms by vector pt; used for co-centering with FRAME ALIGN {atoms} TRUE- Parameters:
iModel
-pt
-
-
getFrameOffsets
public javajs.util.P3[] getFrameOffsets(BS bsAtoms, boolean isFull)
-
getAtoms
public BS getAtoms(int tokType, java.lang.Object specInfo)
general lookup for integer type -- from Eval- Parameters:
tokType
-specInfo
-- Returns:
- bitset; null only if we mess up with name
-
findNearestAtomIndex
public int findNearestAtomIndex(int x, int y, BS bsNot, int min)
-
calculatePointGroup
public java.lang.String calculatePointGroup(BS bsAtoms)
-
getPointGroupInfo
public java.util.Map<java.lang.String,java.lang.Object> getPointGroupInfo(BS bsAtoms)
-
getPointGroupAsString
public java.lang.String getPointGroupAsString(BS bsAtoms, java.lang.String type, int index, float scale, javajs.util.P3[] pts, javajs.util.P3 center, java.lang.String id)
-
calculatePointGroupForFirstModel
private java.lang.Object calculatePointGroupForFirstModel(BS bsAtoms, boolean doAll, boolean asInfo, java.lang.String type, int index, float scale, javajs.util.T3[] pts, javajs.util.P3 center, java.lang.String id)
-
makeConnections
public int[] makeConnections(float minDistance, float maxDistance, int order, int connectOperation, BS bsA, BS bsB, BS bsBonds, boolean isBonds, boolean addGroup, float energy)
-
setPdbConectBonding
public void setPdbConectBonding(int baseAtomIndex, int baseModelIndex, BS bsExclude)
-
deleteAllBonds
public void deleteAllBonds()
-
includeAllRelatedFrames
private void includeAllRelatedFrames(BS bsModels)
-
deleteModel
private void deleteModel(int modelIndex, int firstAtomIndex, int nAtoms, BS bsModelAtoms, BS bsBonds)
-
setAtomProperty
public void setAtomProperty(BS bs, int tok, int iValue, float fValue, java.lang.String sValue, float[] values, java.lang.String[] list)
-
getFileData
public java.lang.Object getFileData(int modelIndex)
-
addHydrogens
public BS addHydrogens(javajs.util.Lst<Atom> vConnections, javajs.util.P3[] pts)
these are hydrogens that are being added due to a load 2D command and are therefore not to be flagged as NEW- Parameters:
vConnections
-pts
-- Returns:
- BitSet of new atoms
-
mergeModelArrays
protected void mergeModelArrays(ModelSet mergeModelSet)
initial transfer of model data from old to new model set. Note that all new models are added later, AFTER thfe old ones. This is very important, because all of the old atom numbers must map onto the same numbers in the new model set, or the state script will not run properly, among other problems.- Parameters:
mergeModelSet
-
-
getUnitCell
public SymmetryInterface getUnitCell(int modelIndex)
-
setModelCage
public void setModelCage(int modelIndex, SymmetryInterface simpleCage)
-
getModelName
public java.lang.String getModelName(int modelIndex)
-
getModelTitle
public java.lang.String getModelTitle(int modelIndex)
-
getModelFileName
public java.lang.String getModelFileName(int modelIndex)
-
getModelFileType
public java.lang.String getModelFileType(int modelIndex)
-
setFrameTitle
public void setFrameTitle(BS bsFrames, java.lang.Object title)
-
getFrameTitle
public java.lang.String getFrameTitle(int modelIndex)
-
getModelNumberForAtomLabel
public java.lang.String getModelNumberForAtomLabel(int modelIndex)
-
getGroups
Group[] getGroups()
In versions earlier than 12.1.51, groups[] was a field of ModelCollection. But this is not necessary, and it was wasting space. This method is only called when polymers are recreated.- Returns:
- full array of groups in modelSet
-
getUnitCellParams
public float[] getUnitCellParams()
deprecated due to multimodel issues, but required by an interface -- do NOT remove.- Returns:
- just the first unit cell
-
setCrystallographicDefaults
public boolean setCrystallographicDefaults()
-
getBoundBoxCenter
public javajs.util.P3 getBoundBoxCenter(int modelIndex)
-
getBoundBoxCornerVector
public javajs.util.V3 getBoundBoxCornerVector()
-
getBBoxVertices
public Point3fi[] getBBoxVertices()
-
setBoundBox
public void setBoundBox(javajs.util.T3 pt1, javajs.util.T3 pt2, boolean byCorner, float scale)
-
getBoundBoxCommand
public java.lang.String getBoundBoxCommand(boolean withOptions)
-
getDefaultVdwType
public VDW getDefaultVdwType(int modelIndex)
-
setRotationRadius
public boolean setRotationRadius(int modelIndex, float angstroms)
-
calcRotationRadius
public float calcRotationRadius(int modelIndex, javajs.util.P3 center, boolean useBoundBox)
-
calcBoundBoxDimensions
public void calcBoundBoxDimensions(BS bs, float scale)
-
getDefaultBoundBox
private BoxInfo getDefaultBoundBox()
The default bounding box is created when the LOAD .... FILL BOUNDBOX or FILL UNITCELL is use.- Returns:
- default bounding box, possibly null
-
calcUnitCellMinMax
private void calcUnitCellMinMax()
-
calcRotationRadiusBs
public float calcRotationRadiusBs(BS bs)
-
getCenterAndPoints
public javajs.util.P3[][] getCenterAndPoints(javajs.util.Lst<java.lang.Object[]> vAtomSets, boolean addCenters)
- Parameters:
vAtomSets
-addCenters
-- Returns:
- array of two lists of points, centers first if desired
-
getAtomSetCenter
public javajs.util.P3 getAtomSetCenter(BS bs)
-
getAverageAtomPoint
public javajs.util.P3 getAverageAtomPoint()
-
setAPm
protected void setAPm(BS bs, int tok, int iValue, float fValue, java.lang.String sValue, float[] values, java.lang.String[] list)
-
addStateScript
public StateScript addStateScript(java.lang.String script1, BS bsBonds, BS bsAtoms1, BS bsAtoms2, java.lang.String script2, boolean addFrameNumber, boolean postDefinitions)
-
freezeModels
void freezeModels()
-
getStructureList
public java.util.Map<STR,float[]> getStructureList()
-
getInfoM
public java.lang.Object getInfoM(java.lang.String keyName)
-
getMSInfoB
public boolean getMSInfoB(java.lang.String keyName)
-
isTrajectory
public boolean isTrajectory(int modelIndex)
could be the base model or one of the subframes- Parameters:
modelIndex
-- Returns:
- is any part of a trajectory
-
isTrajectorySubFrame
public boolean isTrajectorySubFrame(int i)
-
isTrajectoryMeasurement
public boolean isTrajectoryMeasurement(int[] countPlusIndices)
-
getIterativeModels
public BS getIterativeModels(boolean allowJmolData)
only some models can be iterated through. models for which trajectoryBaseIndexes[i] != i are trajectories only- Parameters:
allowJmolData
-- Returns:
- bitset of models
-
fillAtomData
public void fillAtomData(AtomData atomData, int mode)
-
getModelNumberDotted
public java.lang.String getModelNumberDotted(int modelIndex)
-
getModelNumber
public int getModelNumber(int modelIndex)
-
getModelProperty
public java.lang.String getModelProperty(int modelIndex, java.lang.String property)
-
getModelAuxiliaryInfo
public java.util.Map<java.lang.String,java.lang.Object> getModelAuxiliaryInfo(int modelIndex)
-
setInfo
public void setInfo(int modelIndex, java.lang.Object key, java.lang.Object value)
-
getInfo
public java.lang.Object getInfo(int modelIndex, java.lang.String key)
-
getInfoB
protected boolean getInfoB(int modelIndex, java.lang.String keyName)
-
getInfoI
protected int getInfoI(int modelIndex, java.lang.String keyName)
-
getInsertionCountInModel
public int getInsertionCountInModel(int modelIndex)
-
modelFileNumberFromFloat
public static int modelFileNumberFromFloat(float fDotM)
-
getChainCountInModelWater
public int getChainCountInModelWater(int modelIndex, boolean countWater)
-
getGroupCountInModel
public int getGroupCountInModel(int modelIndex)
-
calcSelectedGroupsCount
public void calcSelectedGroupsCount()
-
isJmolDataFrameForModel
public boolean isJmolDataFrameForModel(int modelIndex)
-
isJmolDataFrameForAtom
private boolean isJmolDataFrameForAtom(Atom atom)
-
setJmolDataFrame
public void setJmolDataFrame(java.lang.String type, int modelIndex, int modelDataIndex)
-
getJmolDataFrameIndex
public int getJmolDataFrameIndex(int modelIndex, java.lang.String type)
-
clearDataFrameReference
protected void clearDataFrameReference(int modelIndex)
-
getJmolFrameType
public java.lang.String getJmolFrameType(int modelIndex)
-
getJmolDataSourceFrame
public int getJmolDataSourceFrame(int modelIndex)
-
saveModelOrientation
public void saveModelOrientation(int modelIndex, Orientation orientation)
-
getModelOrientation
public Orientation getModelOrientation(int modelIndex)
-
getPDBHeader
public java.lang.String getPDBHeader(int modelIndex)
-
getFileHeader
public java.lang.String getFileHeader(int modelIndex)
-
getAltLocCountInModel
public int getAltLocCountInModel(int modelIndex)
-
getAltLocIndexInModel
public int getAltLocIndexInModel(int modelIndex, char alternateLocationID)
-
getInsertionCodeIndexInModel
public int getInsertionCodeIndexInModel(int modelIndex, char insertionCode)
-
getAltLocListInModel
public java.lang.String getAltLocListInModel(int modelIndex)
-
getInsertionListInModel
private java.lang.String getInsertionListInModel(int modelIndex)
-
getModelSymmetryCount
public int getModelSymmetryCount(int modelIndex)
-
getModelCellRange
public int[] getModelCellRange(int modelIndex)
-
getLastVibrationVector
public int getLastVibrationVector(int modelIndex, int tok)
-
getModulationList
public javajs.util.Lst<java.lang.Object> getModulationList(BS bs, char type, javajs.util.P3 t456)
-
getElementsPresentBitSet
public BS getElementsPresentBitSet(int modelIndex)
-
getMoleculeIndex
public int getMoleculeIndex(int atomIndex, boolean inModel)
-
getMoleculeBitSetForAtom
public BS getMoleculeBitSetForAtom(int atomIndex)
-
getModelDipole
public javajs.util.V3 getModelDipole(int modelIndex)
-
calculateMolecularDipole
public javajs.util.V3 calculateMolecularDipole(int modelIndex, BS bsAtoms) throws JmolAsyncException
- Throws:
JmolAsyncException
-
getMoleculeCountInModel
public int getMoleculeCountInModel(int modelIndex)
-
calcSelectedMoleculesCount
public void calcSelectedMoleculesCount()
-
setCentroid
public void setCentroid(BS bs, int[] minmax)
deletes molecules based on: CENTROID -- molecular centroid is not in unit cell CENTROID PACKED -- all molecule atoms are not in unit cell- Parameters:
bs
-minmax
- fractional [xmin, ymin, zmin, xmax, ymax, zmax, 1=packed]
-
getMolecules
public JmolMolecule[] getMolecules()
-
initializeBspf
protected void initializeBspf()
-
initializeBspt
protected void initializeBspt(int modelIndex)
-
setIteratorForPoint
public void setIteratorForPoint(AtomIndexIterator iterator, int modelIndex, javajs.util.T3 pt, float distance)
-
setIteratorForAtom
public void setIteratorForAtom(AtomIndexIterator iterator, int modelIndex, int atomIndex, float distance, RadiusData rd)
-
getSelectedAtomIterator
public AtomIndexIterator getSelectedAtomIterator(BS bsSelected, boolean isGreaterOnly, boolean modelZeroBased, boolean hemisphereOnly, boolean isMultiModel)
- Parameters:
bsSelected
-isGreaterOnly
-modelZeroBased
-hemisphereOnly
-isMultiModel
-- Returns:
- an iterator
-
getBondCountInModel
public int getBondCountInModel(int modelIndex)
Description copied from class:BondCollection
for general use- Overrides:
getBondCountInModel
in classBondCollection
- Parameters:
modelIndex
- the model of interest or -1 for all- Returns:
- the actual number of connections
-
getAtomCountInModel
public int getAtomCountInModel(int modelIndex)
-
getModelAtomBitSetIncludingDeletedBs
public BS getModelAtomBitSetIncludingDeletedBs(BS bsModels)
note -- this method returns ALL atoms, including deleted.- Parameters:
bsModels
-- Returns:
- bitset of atoms
-
getModelAtomBitSetIncludingDeleted
public BS getModelAtomBitSetIncludingDeleted(int modelIndex, boolean asCopy)
Note that this method returns all atoms, included deleted ones. If you don't want deleted atoms, then use vwr.getModelAtomBitSetUndeleted(modelIndex, TRUE)- Parameters:
modelIndex
-asCopy
- MUST BE TRUE IF THE BITSET IS GOING TO BE MODIFIED!- Returns:
- either the actual bitset or a copy
-
getAtomBitsMaybeDeleted
protected BS getAtomBitsMaybeDeleted(int tokType, java.lang.Object specInfo)
-
getSelectCodeRange
private BS getSelectCodeRange(int[] info)
-
selectSeqcodeRange
private static int selectSeqcodeRange(Group[] groups, int n, int index, int seqcodeA, int seqcodeB, BS bs)
-
isInLatticeCell
private boolean isInLatticeCell(int i, javajs.util.P3 cell, javajs.util.P3 ptTemp, boolean isAbsolute)
-
getAtomsWithinRadius
public BS getAtomsWithinRadius(float distance, BS bs, boolean withinAllModels, RadiusData rd)
Get atoms within a specific distance of any atom in a specific set of atoms either within all models or within just the model(s) of those atoms- Parameters:
distance
-bs
-withinAllModels
-rd
-- Returns:
- the set of atoms
-
getAtomsWithin
public BS getAtomsWithin(float distance, javajs.util.T3 coord, BS bsResult, int modelIndex)
-
deleteBonds
public void deleteBonds(BS bsBonds, boolean isFullModel)
-
makeConnections2
public int[] makeConnections2(float minD, float maxD, int order, int connectOperation, BS bsA, BS bsB, BS bsBonds, boolean isBonds, boolean addGroup, float energy)
-
autoBondBs4
public int autoBondBs4(BS bsA, BS bsB, BS bsExclude, BS bsBonds, short mad, boolean preJmol11_9_24)
-
isBondable
public boolean isBondable(float bondingRadiusA, float bondingRadiusB, float distance2, float minBondDistance2, float bondTolerance)
-
autoBondCheck
private boolean autoBondCheck(Atom atomA, Atom atomB, int order, short mad, BS bsBonds)
-
autoBond_Pre_11_9_24
private int autoBond_Pre_11_9_24(BS bsA, BS bsB, BS bsExclude, BS bsBonds, short mad)
-
autoHbond
public int autoHbond(BS bsA, BS bsB, boolean onlyIfHaveCalculated)
a generalized formation of HBONDS, carried out in relation to calculate HBONDS {atomsFrom} {atomsTo}. The calculation can create pseudo-H bonds for files that do not contain H atoms.- Parameters:
bsA
- "from" set (must contain H if that is desired)bsB
- "to" setonlyIfHaveCalculated
-- Returns:
- negative number of pseudo-hbonds or number of actual hbonds formed
-
checkMinAttachedAngle
private static javajs.util.P3 checkMinAttachedAngle(Atom atom1, float minAngle, javajs.util.V3 v1, javajs.util.V3 v2, boolean haveHAtoms)
-
setStructureIndexes
public void setStructureIndexes()
-
getModelInfoAsString
public java.lang.String getModelInfoAsString()
-
getSymmetryInfoAsString
public java.lang.String getSymmetryInfoAsString()
-
createModels
public void createModels(int n)
-
assignAtom
public void assignAtom(int atomIndex, java.lang.String type, boolean autoBond)
-
deleteAtoms
public void deleteAtoms(BS bs)
-
clearDB
public void clearDB(int atomIndex)
-
adjustAtomArrays
public void adjustAtomArrays(int[] map, int i0, int ac)
-
growAtomArrays
protected void growAtomArrays(int newLength)
-
addAtom
public Atom addAtom(int modelIndex, Group group, int atomicAndIsotopeNumber, java.lang.String atomName, java.lang.String atomType, int atomSerial, int atomSeqID, int atomSite, javajs.util.P3 xyz, float radius, javajs.util.V3 vib, int formalCharge, float partialCharge, float occupancy, float bfactor, javajs.util.Lst<java.lang.Object> tensors, boolean isHetero, byte specialAtomID, BS atomSymmetry)
-
getInlineData
public java.lang.String getInlineData(int modelIndex)
-
isAtomPDB
public boolean isAtomPDB(int i)
-
isAtomAssignable
public boolean isAtomAssignable(int i)
-
haveModelKit
public boolean haveModelKit()
-
setAtomNamesAndNumbers
public void setAtomNamesAndNumbers(int iFirst, int baseAtomIndex, AtomCollection mergeSet)
- Parameters:
iFirst
- 0 from ModelLoader.freeze; -1 from Viewer.assignAtombaseAtomIndex
-mergeSet
-
-
setUnitCellOffset
public void setUnitCellOffset(SymmetryInterface unitCell, javajs.util.T3 pt, int ijk)
-
connect
public void connect(float[][] connections)
-
setFrameDelayMs
public void setFrameDelayMs(long millis, BS bsModels)
-
getFrameDelayMs
public long getFrameDelayMs(int i)
-
getModelIndexFromId
public int getModelIndexFromId(java.lang.String id)
-
getAuxiliaryInfo
public java.util.Map<java.lang.String,java.lang.Object> getAuxiliaryInfo(BS bsModels)
Retrieve the main modelset info Hashtable (or a new non-null Hashtable) with an up-to-date "models" key.- Parameters:
bsModels
-- Returns:
- Map
-
getDihedralMap
public int[][] getDihedralMap(int[] alist)
-
setModulation
public void setModulation(BS bs, boolean isOn, javajs.util.P3 qtOffset, boolean isQ)
Sets the modulation for all atoms in bs.- Parameters:
bs
-isOn
-qtOffset
- multiples of q or just t.isQ
- true if multiples of q.
-
getBoundBoxOrientation
public java.lang.String getBoundBoxOrientation(int type, BS bsAtoms)
-
getUnitCellForAtom
public SymmetryInterface getUnitCellForAtom(int index)
-
clearCache
public void clearCache()
-
getSymMatrices
public javajs.util.M4[] getSymMatrices(int modelIndex)
-
getBsBranches
public BS[] getBsBranches(float[] dihedralList)
-
recalculatePositionDependentQuantities
public void recalculatePositionDependentQuantities(BS bs, javajs.util.M4 mat)
-
moveAtoms
public void moveAtoms(javajs.util.M4 m4, javajs.util.M3 mNew, javajs.util.M3 rotation, javajs.util.V3 translation, BS bs, javajs.util.P3 center, boolean isInternal, boolean translationOnly)
-
setDihedrals
public void setDihedrals(float[] dihedralList, BS[] bsBranches, float f)
-
setAtomCoordsRelative
public void setAtomCoordsRelative(javajs.util.T3 offset, BS bs)
-
setAtomCoords
public void setAtomCoords(BS bs, int tokType, java.lang.Object xyzValues)
-
invertSelected
public void invertSelected(javajs.util.P3 pt, javajs.util.P4 plane, int iAtom, BS invAtoms, BS bs)
-
getCellWeights
public float[] getCellWeights(BS bsAtoms)
-
getAtomGroupQuaternions
public javajs.util.Quat[] getAtomGroupQuaternions(BS bsAtoms, int nMax, char qtype)
-
getConformation
public BS getConformation(int modelIndex, int conformationIndex, boolean doSet, BS bsSelected)
-
getBioPolymerCountInModel
public int getBioPolymerCountInModel(int modelIndex)
-
getPolymerPointsAndVectors
public void getPolymerPointsAndVectors(BS bs, javajs.util.Lst<javajs.util.P3[]> vList, boolean isTraceAlpha, float sheetSmoothing)
-
recalculateLeadMidpointsAndWingVectors
public void recalculateLeadMidpointsAndWingVectors(int modelIndex)
-
calcRasmolHydrogenBonds
public void calcRasmolHydrogenBonds(BS bsA, BS bsB, javajs.util.Lst<Bond> vHBonds, boolean nucleicOnly, int nMax, boolean dsspIgnoreHydrogens, BS bsHBonds)
These are not actual hydrogen bonds. They are N-O bonds in proteins and nucleic acids The method is called by AminoPolymer and NucleicPolymer methods, which are indirectly called by ModelCollection.autoHbond- Parameters:
bsA
-bsB
-vHBonds
- vector of bonds to fill; if null, creates the HBondsnucleicOnly
-nMax
-dsspIgnoreHydrogens
-bsHBonds
-
-
calculateStraightnessAll
public void calculateStraightnessAll()
-
calculateStruts
public int calculateStruts(BS bs1, BS bs2)
see comments in org.jmol.modelsetbio.AlphaPolymer.java Struts are calculated for atoms in bs1 connecting to atoms in bs2. The two bitsets may overlap.- Parameters:
bs1
-bs2
-- Returns:
- number of struts found
-
getProteinStructureState
public java.lang.String getProteinStructureState(BS bsAtoms, int mode)
-
calculateStructures
public java.lang.String calculateStructures(BS bsAtoms, boolean asDSSP, boolean doReport, boolean dsspIgnoreHydrogen, boolean setStructure, int version)
-
calculateStructuresAllExcept
public java.lang.String calculateStructuresAllExcept(BS alreadyDefined, boolean asDSSP, boolean doReport, boolean dsspIgnoreHydrogen, boolean setStructure, boolean includeAlpha, int version)
allows rebuilding of PDB structures; also accessed by ModelManager from Eval- Parameters:
alreadyDefined
- set to skip calculationasDSSP
-doReport
-dsspIgnoreHydrogen
-setStructure
-includeAlpha
-version
- TODO- Returns:
- report
-
recalculatePolymers
public void recalculatePolymers(BS bsModelsExcluded)
-
calculatePolymers
protected void calculatePolymers(Group[] groups, int groupCount, int baseGroupIndex, BS modelsExcluded)
-
calcSelectedMonomersCount
public void calcSelectedMonomersCount()
-
setStructureList
public void setStructureList(java.util.Map<STR,float[]> structureList)
-
getHeteroList
public java.util.Map<java.lang.String,java.lang.String> getHeteroList(int modelIndex)
-
getUnitCellPointsWithin
public java.lang.Object getUnitCellPointsWithin(float distance, BS bs, javajs.util.P3 pt, boolean asMap)
-
-