Class Atom

All Implemented Interfaces:
Serializable, Cloneable, JSONEncodable, Node, SimpleNode

public class Atom extends Point3fi implements Node
See Also:
  • Field Details

    • ATOM_INFRAME

      public static final int ATOM_INFRAME
      See Also:
    • ATOM_VISSET

      public static final int ATOM_VISSET
      See Also:
    • ATOM_VISIBLE

      public static final int ATOM_VISIBLE
      See Also:
    • ATOM_NOTHIDDEN

      public static final int ATOM_NOTHIDDEN
      See Also:
    • ATOM_NOFLAGS

      public static final int ATOM_NOFLAGS
      See Also:
    • ATOM_INFRAME_NOTHIDDEN

      public static final int ATOM_INFRAME_NOTHIDDEN
      See Also:
    • ATOM_SHAPE_VIS_MASK

      public static final int ATOM_SHAPE_VIS_MASK
      See Also:
    • RADIUS_MAX

      public static final int RADIUS_MAX
      See Also:
    • RADIUS_GLOBAL

      public static final float RADIUS_GLOBAL
      See Also:
    • MAD_GLOBAL

      public static short MAD_GLOBAL
    • altloc

      public char altloc
    • atomID

      public byte atomID
    • group

      public Group group
    • atomSymmetry

      public BS atomSymmetry
    • madAtom

      public short madAtom
    • colixAtom

      public short colixAtom
    • paletteID

      public byte paletteID
    • bonds

      public Bond[] bonds
      MAY BE NULL
    • nBackbonesDisplayed

      public int nBackbonesDisplayed
    • clickabilityFlags

      public int clickabilityFlags
    • shapeVisibilityFlags

      public int shapeVisibilityFlags
    • ID_U

      public static final int ID_U
      See Also:
    • ID_ALL

      public static final int ID_ALL
      See Also:
    • ID_XTAL

      public static final int ID_XTAL
      See Also:
    • ID_CHIME

      public static final int ID_CHIME
      See Also:
    • ID_ATOMS

      public static final int ID_ATOMS
      See Also:
  • Constructor Details

    • Atom

      public Atom()
  • Method Details

    • setAtom

      public Atom setAtom(int modelIndex, int atomIndex, P3 xyz, float radius, BS atomSymmetry, int atomSite, short atomicAndIsotopeNumber, int formalCharge, boolean isHetero, boolean isNegDisorder)
      Parameters:
      modelIndex -
      atomIndex -
      xyz -
      radius -
      atomSymmetry -
      atomSite -
      atomicAndIsotopeNumber -
      formalCharge -
      isHetero -
      isNegDisorder - TODO
      Returns:
      this
    • setShapeVisibility

      public final void setShapeVisibility(int flag, boolean isVisible)
    • isCovalentlyBonded

      public boolean isCovalentlyBonded(Atom atomOther)
    • isBonded

      public boolean isBonded(Atom atomOther)
    • getBond

      public Bond getBond(Atom atomOther)
    • getBondedAtomIndex

      public int getBondedAtomIndex(int bondIndex)
      Specified by:
      getBondedAtomIndex in interface Node
    • setMadAtom

      public void setMadAtom(Viewer vwr, RadiusData rd)
    • calculateMad

      public short calculateMad(Viewer vwr, RadiusData rd)
    • getADPMinMax

      public float getADPMinMax(boolean isMax)
    • getTensors

      public Object[] getTensors()
    • getRasMolRadius

      public int getRasMolRadius()
    • getEdges

      public Edge[] getEdges()
      Description copied from interface: SimpleNode
      Get the bond array, including hydrogen bonds.
      Specified by:
      getEdges in interface Node
      Specified by:
      getEdges in interface SimpleNode
      Returns:
      number of bonds
    • getBondCount

      public int getBondCount()
      Description copied from interface: SimpleNode
      Get the total number of bonds, including hydrogen bonds.
      Specified by:
      getBondCount in interface SimpleNode
      Returns:
      number of bonds
    • setTranslucent

      public void setTranslucent(boolean isTranslucent, float translucentLevel)
    • getElementNumber

      public int getElementNumber()
      Specified by:
      getElementNumber in interface Node
      Specified by:
      getElementNumber in interface SimpleNode
      Returns:
      the atomic number for this atom
    • getIsotopeNumber

      public int getIsotopeNumber()
      Specified by:
      getIsotopeNumber in interface Node
      Specified by:
      getIsotopeNumber in interface SimpleNode
    • getAtomicAndIsotopeNumber

      public int getAtomicAndIsotopeNumber()
      Specified by:
      getAtomicAndIsotopeNumber in interface Node
    • setAtomicAndIsotopeNumber

      public void setAtomicAndIsotopeNumber(int n)
    • getElementSymbolIso

      public String getElementSymbolIso(boolean withIsotope)
    • getElementSymbol

      public String getElementSymbol()
    • isHetero

      public boolean isHetero()
    • hasVibration

      public boolean hasVibration()
    • setFormalCharge

      public void setFormalCharge(int charge)
      Parameters:
      charge - from -3 to 7
    • getFormalCharge

      public int getFormalCharge()
      Specified by:
      getFormalCharge in interface Node
      Specified by:
      getFormalCharge in interface SimpleNode
      Returns:
      the formal charge for this atom
    • getOccupancy100

      public int getOccupancy100()
    • isOccupied

      public boolean isOccupied()
    • getBfactor100

      public int getBfactor100()
    • getHydrophobicity

      public float getHydrophobicity()
    • setRadius

      public boolean setRadius(float radius)
    • delete

      public void delete(BS bsBonds)
    • isDeleted

      public boolean isDeleted()
      Specified by:
      isDeleted in interface Node
    • setValence

      public void setValence(int nBonds)
    • getValence

      public int getValence()
      return the total bond order for this atom
      Specified by:
      getValence in interface Node
      Specified by:
      getValence in interface SimpleNode
      Returns:
      the sum of the bond orders for this atom
    • getCovalentBondCount

      public int getCovalentBondCount()
      Description copied from interface: SimpleNode
      Get the total number of covalent bonds, thus not including hydrogen bonds.
      Specified by:
      getCovalentBondCount in interface Node
      Specified by:
      getCovalentBondCount in interface SimpleNode
      Returns:
      number of bonds
    • getCovalentOrPartialBondCount

      public int getCovalentOrPartialBondCount()
    • getCovalentHydrogenCount

      public int getCovalentHydrogenCount()
      Specified by:
      getCovalentHydrogenCount in interface Node
    • getImplicitHydrogenCount

      public int getImplicitHydrogenCount()
      Description copied from interface: Node
      can be > 0 for PDB model with no H atoms or for SMILES string CCC
      Specified by:
      getImplicitHydrogenCount in interface Node
      Returns:
      number of missing H atoms
    • getTotalHydrogenCount

      public int getTotalHydrogenCount()
      Specified by:
      getTotalHydrogenCount in interface Node
    • getTotalValence

      public int getTotalValence()
      Specified by:
      getTotalValence in interface Node
    • getCovalentBondCountPlusMissingH

      public int getCovalentBondCountPlusMissingH()
      Description copied from interface: Node
      includes actual + missing
      Specified by:
      getCovalentBondCountPlusMissingH in interface Node
      Returns:
      actual + missing
    • getDimensionValue

      public float getDimensionValue(int dimension)
    • getVanderwaalsRadiusFloat

      public float getVanderwaalsRadiusFloat(Viewer vwr, VDW type)
    • getBondingRadius

      public float getBondingRadius()
    • getRadius

      public float getRadius()
    • getIndex

      public int getIndex()
      Specified by:
      getIndex in interface Node
      Specified by:
      getIndex in interface SimpleNode
      Returns:
      the unique ID number associated with this atom (which in Jmol is its position in the atoms[] array
    • getAtomSite

      public int getAtomSite()
      Specified by:
      getAtomSite in interface Node
    • getGroupBits

      public void getGroupBits(BS bs)
      Specified by:
      getGroupBits in interface Node
    • getAtomName

      public String getAtomName()
      Specified by:
      getAtomName in interface Node
      Specified by:
      getAtomName in interface SimpleNode
    • getAtomType

      public String getAtomType()
      Specified by:
      getAtomType in interface Node
    • getAtomNumber

      public int getAtomNumber()
      Specified by:
      getAtomNumber in interface Node
    • getSeqID

      public int getSeqID()
    • isVisible

      public boolean isVisible(int flags)
    • getPartialCharge

      public float getPartialCharge()
    • getSymmetryTranslation

      public int getSymmetryTranslation(int symop, int[] cellRange, int nOps)
      Given a symmetry operation number, the set of cells in the model, and the number of operations, this method returns either 0 or the cell number (555, 666) of the translated symmetry operation corresponding to this atom. atomSymmetry is a bitset that is created in adapter.smarter.AtomSetCollection It is arranged as follows: |--overall--|---cell1---|---cell2---|---cell3---|... |012..nOps-1|012..nOps-1|012..nOp-1s|012..nOps-1|... If a bit is set, it means that the atom was created using that operator operating on the base file set and translated for that cell. If any bit is set in any of the cell blocks, then the same bit will also be set in the overall block. This allows for rapid determination of special positions and also of atom membership in any operation set. Note that it is not necessarily true that an atom is IN the designated cell, because one can load {nnn mmm 0}, and then, for example, the {-x,-y,-z} operator sends atoms from 555 to 444. Still, those atoms would be marked as cell 555 here, because no translation was carried out. That is, the numbers 444 in symop=3444 do not refer to a cell, per se. What they refer to is the file-designated operator plus a translation of {-1 -1 -1/1}.
      Parameters:
      symop - = 0, 1, 2, 3, ....
      cellRange - = {444, 445, 446, 454, 455, 456, .... }
      nOps - = 2 for x,y,z;-x,-y,-z, for example
      Returns:
      cell number such as 565
    • getCellTranslation

      public int getCellTranslation(int cellNNN, int[] cellRange, int nOps)
      Looks for a match in the cellRange list for this atom within the specified translation set select symop=0NNN for this
      Parameters:
      cellNNN -
      cellRange -
      nOps -
      Returns:
      matching cell number, if applicable
    • getModelIndex

      public int getModelIndex()
      Specified by:
      getModelIndex in interface Node
    • getMoleculeNumber

      public int getMoleculeNumber(boolean inModel)
      Specified by:
      getMoleculeNumber in interface Node
    • getXYZ

      public P3 getXYZ()
      Specified by:
      getXYZ in interface Node
      Specified by:
      getXYZ in interface SimpleNode
      Returns:
      the position of this atom
    • getFractionalCoordPt

      public P3 getFractionalCoordPt(boolean fixJavaFloat, boolean ignoreOffset, P3 pt)
    • setFractionalCoordPt

      public void setFractionalCoordPt(P3 pt, P3 ptNew, boolean asAbsolute)
    • getInfo

      public String getInfo()
    • getIdentityXYZ

      public String getIdentityXYZ(P3 pt, int mode)
    • getGroup3

      public String getGroup3(boolean allowNull)
      Specified by:
      getGroup3 in interface Node
    • getGroup1

      public String getGroup1(char c0)
      Specified by:
      getGroup1 in interface Node
    • getBioSmilesType

      public char getBioSmilesType()
      Specified by:
      getBioSmilesType in interface Node
    • isPurine

      public boolean isPurine()
      Specified by:
      isPurine in interface Node
    • isPyrimidine

      public boolean isPyrimidine()
      Specified by:
      isPyrimidine in interface Node
    • getResno

      public int getResno()
      Specified by:
      getResno in interface Node
    • isClickable

      public boolean isClickable()
    • setClickable

      public void setClickable(int flag)
    • checkVisible

      public boolean checkVisible()
    • isLeadAtom

      public boolean isLeadAtom()
      Specified by:
      isLeadAtom in interface Node
    • getChainID

      public int getChainID()
      Specified by:
      getChainID in interface Node
    • getChainIDStr

      public String getChainIDStr()
      Specified by:
      getChainIDStr in interface Node
    • getSurfaceDistance100

      public int getSurfaceDistance100()
    • getVibrationVector

      public Vibration getVibrationVector()
    • getModulation

      public JmolModulationSet getModulation()
    • getModelNumberForLabel

      public String getModelNumberForLabel()
    • getModelNumber

      public int getModelNumber()
    • getBioStructureTypeName

      public String getBioStructureTypeName()
      Specified by:
      getBioStructureTypeName in interface Node
    • equals

      public boolean equals(Object obj)
      Description copied from class: T3
      Returns true if all of the data members of Tuple3f t1 are equal to the corresponding data members in this
      Overrides:
      equals in class T3
      Parameters:
      obj - the vector with which the comparison is made.
    • hashCode

      public int hashCode()
      Description copied from class: T3
      Returns a hash number based on the data values in this object. Two different Tuple3f objects with identical data values (ie, returns true for equals(Tuple3f) ) will return the same hash number. Two vectors with different data members may return the same hash value, although this is not likely.
      Overrides:
      hashCode in class T3
    • findAromaticNeighbor

      public Atom findAromaticNeighbor(int notAtomIndex)
    • atomPropertyInt

      public int atomPropertyInt(int tokWhat)
      called by isosurface and int comparator via atomProperty() and also by getBitsetProperty()
      Parameters:
      tokWhat -
      Returns:
      int value or Integer.MIN_VALUE
    • atomPropertyFloat

      public float atomPropertyFloat(Viewer vwr, int tokWhat, P3 ptTemp)
      called by isosurface and int comparator via atomProperty() and also by getBitsetProperty()
      Parameters:
      vwr -
      tokWhat -
      ptTemp -
      Returns:
      float value or value*100 (asInt=true) or throw an error if not found
    • getVib

      public float getVib(char ch)
    • getNominalMass

      public int getNominalMass()
    • getMass

      public float getMass()
      Specified by:
      getMass in interface Node
      Specified by:
      getMass in interface SimpleNode
      Returns:
      the mass or, if specified, the mass number
    • atomPropertyString

      public String atomPropertyString(Viewer vwr, int tokWhat)
    • getWyckoffPosition

      public String getWyckoffPosition(boolean withMultiplicity)
    • getCIPChirality

      public String getCIPChirality(boolean doCalculate)
      Determine R/S chirality at this position; non-H atoms only; cached in formalChargeAndFlags
      Specified by:
      getCIPChirality in interface Node
      Parameters:
      doCalculate -
      Returns:
      one of "", "R", "S", "E", "Z", "r", "s", "?"
    • getCIPChiralityRule

      public String getCIPChiralityRule()
    • setCIPChirality

      public void setCIPChirality(int c)
      Specified by:
      setCIPChirality in interface Node
      Specified by:
      setCIPChirality in interface SimpleNode
      Parameters:
      c - [0:unknown; 3:none; 1: R; 2: S; 5: Z; 6: E; 9: M, 10: P, +r,s
    • getCIPChiralityCode

      public int getCIPChiralityCode()
      Specified by:
      getCIPChiralityCode in interface Node
    • getInsertionCode

      public char getInsertionCode()
      Specified by:
      getInsertionCode in interface Node
    • atomPropertyTuple

      public T3 atomPropertyTuple(Viewer vwr, int tok, P3 ptTemp)
    • getOffsetResidueAtom

      public int getOffsetResidueAtom(String name, int offset)
      Specified by:
      getOffsetResidueAtom in interface Node
    • isCrossLinked

      public boolean isCrossLinked(Node node)
      Specified by:
      isCrossLinked in interface Node
    • getCrossLinkVector

      public boolean getCrossLinkVector(Lst<Integer> vReturn, boolean crosslinkCovalent, boolean crosslinkHBond)
      Used by SMILES to get vector of cross-links
      Specified by:
      getCrossLinkVector in interface Node
    • toString

      public String toString()
      Description copied from class: T3
      Returns a string that contains the values of this Tuple3f. The form is (x,y,z).
      Overrides:
      toString in class T3
      Returns:
      the String representation
    • findAtomsLike

      public BS findAtomsLike(String atomExpression)
      Specified by:
      findAtomsLike in interface Node
    • getUnitID

      public String getUnitID(int flags)
    • getFloatProperty

      public float getFloatProperty(String property)
      Specified by:
      getFloatProperty in interface Node
      Parameters:
      property - "property_xxxx"
      Returns:
      value or Float.NaN
    • modelIsRawPDB

      public boolean modelIsRawPDB()
      Specified by:
      modelIsRawPDB in interface Node
    • setSymop

      public void setSymop(int isym, boolean andClear)
    • getExplicitHydrogenCount

      public int getExplicitHydrogenCount()
      Description copied from interface: Node
      [CH2] for example
      Specified by:
      getExplicitHydrogenCount in interface Node
      Returns:
      number of H atoms in brackets