Package org.jmol.smiles
Class SmilesAtom
- java.lang.Object
-
- javajs.util.T3
-
- javajs.util.P3
-
- org.jmol.smiles.SmilesAtom
-
- All Implemented Interfaces:
java.io.Serializable
,javajs.api.JSONEncodable
,Node
,SimpleNode
public class SmilesAtom extends javajs.util.P3 implements Node
This class represents an atom in aSmilesMolecule
.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
aromaticAmbiguous
(package private) float
atomClass
private int
atomicMass
(package private) int
atomNumber
(package private) int
atomSite
(package private) java.lang.String
atomType
(package private) java.lang.String
bioAtomName
(package private) char
bioType
(package private) int
bondCount
(package private) SmilesBond[]
bonds
private int
charge
private int
cipChirality
(package private) int
component
(package private) int
connectivity
private int
covalentHydrogenCount
(package private) int
degree
(package private) boolean
elementDefined
(package private) int
elementNumber
(package private) int
explicitHydrogenCount
(package private) boolean
hasSubpattern
(package private) boolean
hasSymbol
(package private) int
implicitHydrogenCount
(package private) int
index
(package private) int
iNested
(package private) char
insCode
(package private) boolean
isAND
(package private) boolean
isAromatic
(package private) boolean
isBioAtom
(package private) boolean
isBioAtomWild
(package private) boolean
isBioResidue
(package private) boolean
isFirst
true if this atom is the first SMILES atom or first after a .(package private) boolean
isLeadAtom
private boolean
isTopoAtom
(package private) int
jmolIndex
(package private) int
mapIndex
(package private) int
matchingComponent
private int
matchingIndex
private Node
matchingNode
private int
missingHydrogenCount
(package private) int
nonhydrogenDegree
(package private) boolean
not
(package private) int
notBondedIndex
(package private) boolean
notCrossLinked
(package private) int
nSubAtoms
(package private) SmilesAtom
parent
(package private) java.lang.String
pattern
(package private) int
patternIndex
(package private) int
primitiveType
(package private) java.lang.String
referance
(package private) java.lang.String
residueChar
(package private) java.lang.String
residueName
(package private) int
residueNumber
(package private) int
ringConnectivity
(package private) int
ringMembership
(package private) int
ringSize
(package private) boolean
selected
SmilesStereo
stereo
(package private) SmilesAtom[]
subAtoms
(package private) java.lang.String
symbol
(package private) static java.lang.String
UNBRACKETED_SET
(package private) int
valence
-
Constructor Summary
Constructors Constructor Description SmilesAtom()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addBond(SmilesBond bond)
Add a bond to the atom.(package private) SmilesAtom
addSubAtom(SmilesAtom sAtom, boolean isAND)
(package private) static boolean
allowSmilesUnbracketed(java.lang.String xx)
javajs.util.BS
findAtomsLike(java.lang.String substring)
int
getAtomicAndIsotopeNumber()
int
getAtomicMass()
Returns the atomic mass of the atom.(package private) static java.lang.String
getAtomLabel(int atomicNumber, int isotopeNumber, int valence, int charge, float osclass, int nH, boolean isAromatic, java.lang.String stereo)
called from SmilesGeneratorjava.lang.String
getAtomName()
int
getAtomNumber()
Returns the Jmol atom numberint
getAtomSite()
java.lang.String
getAtomType()
char
getBioSmilesType()
java.lang.String
getBioStructureTypeName()
SmilesBond
getBond(int number)
Returns the bond at indexnumber
.int
getBondCount()
Get the total number of bonds, including hydrogen bonds.int
getBondedAtomIndex(int j)
(package private) SmilesBond
getBondNotTo(SmilesAtom atom, boolean allowH)
(package private) SmilesBond
getBondTo(SmilesAtom atom)
if atom is null, return bond TO this atom (bond.atom2 == this) otherwise, return bond connecting this atom with that atomint
getChainID()
java.lang.String
getChainIDStr()
int
getCharge()
Returns the charge of the atom.int
getChiralClass()
java.lang.String
getCIPChirality(boolean doCalculate)
int
getCIPChiralityCode()
int
getCovalentBondCount()
Returns the number of bonds of this atom.int
getCovalentBondCountPlusMissingH()
includes actual + missingint
getCovalentHydrogenCount()
boolean
getCrossLinkVector(javajs.util.Lst<java.lang.Integer> vLinks, boolean crosslinkCovalent, boolean crosslinkHBond)
(package private) static int
getDefaultCount(int elementNumber, boolean isAromatic)
Edge[]
getEdges()
Get the bond array, including hydrogen bonds.int
getElementNumber()
Returns the atomic number of the element or 0int
getExplicitHydrogenCount()
float
getFloatProperty(java.lang.String property)
int
getFormalCharge()
java.lang.String
getGroup1(char c0)
java.lang.String
getGroup3(boolean allowNull)
void
getGroupBits(javajs.util.BS bs)
int
getImplicitHydrogenCount()
can be > 0 for PDB model with no H atoms or for SMILES string CCCint
getIndex()
Returns the atom index of the atom.char
getInsertionCode()
int
getIsotopeNumber()
float
getMass()
Node
getMatchingAtom()
Returns the matching atom or null.int
getMatchingAtomIndex()
Returns the number of a matching atom in a molecule.int
getMatchingBondedAtom(int i)
int
getModelIndex()
int
getMoleculeNumber(boolean inModel)
int
getOffsetResidueAtom(java.lang.String name, int offset)
int
getPatternIndex()
int
getResno()
SmilesStereo
getStereo()
int
getTotalHydrogenCount()
int
getTotalValence()
int
getValence()
javajs.util.P3
getXYZ()
boolean
isCrossLinked(Node node)
boolean
isDefined()
boolean
isDeleted()
boolean
isLeadAtom()
boolean
isNucleic()
boolean
isPurine()
boolean
isPyrimidine()
boolean
modelIsRawPDB()
void
setAtomicMass(int mass)
Sets the atomic mass of the atom.(package private) void
setAtomName(java.lang.String name)
(package private) void
setBioAtom(char bioType)
void
setBondArray()
void
setBonds(SmilesBond[] bonds)
void
setCharge(int charge)
Sets the charge of the atom.void
setCIPChirality(int c)
void
setConnectivity(int connectivity)
void
setDegree(int degree)
void
setExplicitHydrogenCount(int count)
Sets the number of explicit hydrogen atoms bonded with this atom.boolean
setHydrogenCount()
Finalizes the hydrogen count hydrogens in aSmilesMolecule
.void
setImplicitHydrogenCount(int count)
Sets the number of implicit hydrogen atoms bonded with this atom.SmilesAtom
setIndex(int index)
Constructs aSmilesAtom
.void
setMatchingAtom(Node jmolAtom, int index)
Sets the number of a matching atom in a molecule.void
setNonhydrogenDegree(int degree)
void
setRingConnectivity(int rc)
void
setRingMembership(int rm)
void
setRingSize(int rs)
boolean
setSymbol(java.lang.String symbol)
Sets the symbol of the atm.SmilesAtom
setTopoAtom(int iComponent, int ptAtom, java.lang.String symbol, int charge, int patternIndex)
void
setValence(int valence)
java.lang.String
toString()
Returns a string that contains the values of this Tuple3f.-
Methods inherited from class javajs.util.T3
add, add2, add3, ave, cross, distance, distanceSquared, dot, equals, floatToIntBits, hashCode, length, lengthSquared, normalize, scale, scaleAdd2, scaleT, set, setA, setT, sub, sub2, toJSON
-
-
-
-
Field Detail
-
UNBRACKETED_SET
static final java.lang.String UNBRACKETED_SET
- See Also:
- Constant Field Values
-
patternIndex
int patternIndex
-
pattern
java.lang.String pattern
-
primitiveType
int primitiveType
-
isAND
boolean isAND
-
subAtoms
SmilesAtom[] subAtoms
-
nSubAtoms
int nSubAtoms
-
index
int index
-
referance
java.lang.String referance
-
residueName
java.lang.String residueName
-
residueChar
java.lang.String residueChar
-
insCode
char insCode
-
isBioAtom
boolean isBioAtom
-
isBioResidue
boolean isBioResidue
-
isBioAtomWild
boolean isBioAtomWild
-
bioType
char bioType
-
isLeadAtom
boolean isLeadAtom
-
notBondedIndex
int notBondedIndex
-
notCrossLinked
boolean notCrossLinked
-
aromaticAmbiguous
boolean aromaticAmbiguous
-
covalentHydrogenCount
private int covalentHydrogenCount
-
not
boolean not
-
selected
boolean selected
-
hasSymbol
boolean hasSymbol
-
elementDefined
boolean elementDefined
-
atomType
java.lang.String atomType
-
bioAtomName
java.lang.String bioAtomName
-
isFirst
boolean isFirst
true if this atom is the first SMILES atom or first after a . with no connector
-
jmolIndex
int jmolIndex
-
elementNumber
int elementNumber
-
atomNumber
int atomNumber
-
residueNumber
int residueNumber
-
explicitHydrogenCount
int explicitHydrogenCount
-
implicitHydrogenCount
int implicitHydrogenCount
-
parent
SmilesAtom parent
-
bonds
SmilesBond[] bonds
-
bondCount
int bondCount
-
iNested
int iNested
-
isAromatic
boolean isAromatic
-
atomicMass
private int atomicMass
-
charge
private int charge
-
matchingIndex
private int matchingIndex
-
stereo
public SmilesStereo stereo
-
component
int component
-
matchingComponent
int matchingComponent
-
atomSite
int atomSite
-
degree
int degree
-
nonhydrogenDegree
int nonhydrogenDegree
-
valence
int valence
-
connectivity
int connectivity
-
ringMembership
int ringMembership
-
ringSize
int ringSize
-
ringConnectivity
int ringConnectivity
-
matchingNode
private Node matchingNode
-
hasSubpattern
boolean hasSubpattern
-
mapIndex
int mapIndex
-
atomClass
float atomClass
-
symbol
java.lang.String symbol
-
isTopoAtom
private boolean isTopoAtom
-
missingHydrogenCount
private int missingHydrogenCount
-
cipChirality
private int cipChirality
-
-
Method Detail
-
allowSmilesUnbracketed
static boolean allowSmilesUnbracketed(java.lang.String xx)
-
getAtomType
public java.lang.String getAtomType()
- Specified by:
getAtomType
in interfaceNode
-
getChiralClass
public int getChiralClass()
-
isDefined
public boolean isDefined()
-
setBioAtom
void setBioAtom(char bioType)
-
setAtomName
void setAtomName(java.lang.String name)
-
setBonds
public void setBonds(SmilesBond[] bonds)
-
addSubAtom
SmilesAtom addSubAtom(SmilesAtom sAtom, boolean isAND)
-
setIndex
public SmilesAtom setIndex(int index)
Constructs aSmilesAtom
.- Parameters:
index
- Atom number in the molecule.- Returns:
- this
-
setTopoAtom
public SmilesAtom setTopoAtom(int iComponent, int ptAtom, java.lang.String symbol, int charge, int patternIndex)
-
setHydrogenCount
public boolean setHydrogenCount()
Finalizes the hydrogen count hydrogens in aSmilesMolecule
. "missing" here means the number of atoms not present in the SMILES string for unbracketed atoms or the number of hydrogen atoms "CC" being really CH3CH3 or explicitly mentioned in the bracketed atom, "[CH2]". These hydrogen atoms are not part of the topological model constructed and need to be accounted for.- Returns:
- false if inappropriate
-
getDefaultCount
static int getDefaultCount(int elementNumber, boolean isAromatic)
-
getIndex
public int getIndex()
Returns the atom index of the atom.- Specified by:
getIndex
in interfaceNode
- Specified by:
getIndex
in interfaceSimpleNode
- Returns:
- Atom index.
-
setSymbol
public boolean setSymbol(java.lang.String symbol)
Sets the symbol of the atm.- Parameters:
symbol
- Atom symbol.- Returns:
- false if invalid symbol
-
getElementNumber
public int getElementNumber()
Returns the atomic number of the element or 0- Specified by:
getElementNumber
in interfaceNode
- Specified by:
getElementNumber
in interfaceSimpleNode
- Returns:
- atomicNumber
-
getAtomicMass
public int getAtomicMass()
Returns the atomic mass of the atom.- Returns:
- Atomic mass.
-
getAtomNumber
public int getAtomNumber()
Returns the Jmol atom number- Specified by:
getAtomNumber
in interfaceNode
-
setAtomicMass
public void setAtomicMass(int mass)
Sets the atomic mass of the atom.- Parameters:
mass
- Atomic mass.
-
getCharge
public int getCharge()
Returns the charge of the atom.- Returns:
- Charge.
-
setCharge
public void setCharge(int charge)
Sets the charge of the atom.- Parameters:
charge
- Charge.
-
getMatchingAtomIndex
public int getMatchingAtomIndex()
Returns the number of a matching atom in a molecule. This value is temporary, it is used during the pattern matching algorithm.- Returns:
- matching atom index
-
getMatchingAtom
public Node getMatchingAtom()
Returns the matching atom or null.- Returns:
- matching atom
-
setMatchingAtom
public void setMatchingAtom(Node jmolAtom, int index)
Sets the number of a matching atom in a molecule. This value is temporary, it is used during the pattern matching algorithm.- Parameters:
jmolAtom
-index
- Temporary: number of a matching atom in a molecule.
-
setExplicitHydrogenCount
public void setExplicitHydrogenCount(int count)
Sets the number of explicit hydrogen atoms bonded with this atom.- Parameters:
count
- Number of hydrogen atoms.
-
setImplicitHydrogenCount
public void setImplicitHydrogenCount(int count)
Sets the number of implicit hydrogen atoms bonded with this atom.- Parameters:
count
- Number of hydrogen atoms.
-
setDegree
public void setDegree(int degree)
-
setNonhydrogenDegree
public void setNonhydrogenDegree(int degree)
-
setValence
public void setValence(int valence)
-
setConnectivity
public void setConnectivity(int connectivity)
-
setRingMembership
public void setRingMembership(int rm)
-
setRingSize
public void setRingSize(int rs)
-
setRingConnectivity
public void setRingConnectivity(int rc)
-
getModelIndex
public int getModelIndex()
- Specified by:
getModelIndex
in interfaceNode
-
getMoleculeNumber
public int getMoleculeNumber(boolean inModel)
- Specified by:
getMoleculeNumber
in interfaceNode
-
getAtomSite
public int getAtomSite()
- Specified by:
getAtomSite
in interfaceNode
-
getFormalCharge
public int getFormalCharge()
- Specified by:
getFormalCharge
in interfaceNode
- Specified by:
getFormalCharge
in interfaceSimpleNode
- Returns:
- the formal charge for this atom
-
getIsotopeNumber
public int getIsotopeNumber()
- Specified by:
getIsotopeNumber
in interfaceNode
- Specified by:
getIsotopeNumber
in interfaceSimpleNode
-
getAtomicAndIsotopeNumber
public int getAtomicAndIsotopeNumber()
- Specified by:
getAtomicAndIsotopeNumber
in interfaceNode
-
getAtomName
public java.lang.String getAtomName()
- Specified by:
getAtomName
in interfaceNode
- Specified by:
getAtomName
in interfaceSimpleNode
-
getGroup3
public java.lang.String getGroup3(boolean allowNull)
-
addBond
void addBond(SmilesBond bond)
Add a bond to the atom.- Parameters:
bond
- Bond to add.
-
setBondArray
public void setBondArray()
-
getEdges
public Edge[] getEdges()
Description copied from interface:SimpleNode
Get the bond array, including hydrogen bonds.- Specified by:
getEdges
in interfaceNode
- Specified by:
getEdges
in interfaceSimpleNode
- Returns:
- number of bonds
-
getBond
public SmilesBond getBond(int number)
Returns the bond at indexnumber
.- Parameters:
number
- Bond number.- Returns:
- Bond.
-
getCovalentBondCount
public int getCovalentBondCount()
Returns the number of bonds of this atom.- Specified by:
getCovalentBondCount
in interfaceNode
- Specified by:
getCovalentBondCount
in interfaceSimpleNode
- 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 interfaceSimpleNode
- Returns:
- number of bonds
-
getCovalentBondCountPlusMissingH
public int getCovalentBondCountPlusMissingH()
Description copied from interface:Node
includes actual + missing- Specified by:
getCovalentBondCountPlusMissingH
in interfaceNode
- Returns:
- actual + missing
-
getTotalHydrogenCount
public int getTotalHydrogenCount()
- Specified by:
getTotalHydrogenCount
in interfaceNode
-
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 interfaceNode
- Returns:
- number of missing H atoms
-
getExplicitHydrogenCount
public int getExplicitHydrogenCount()
-
getMatchingBondedAtom
public int getMatchingBondedAtom(int i)
-
getBondedAtomIndex
public int getBondedAtomIndex(int j)
- Specified by:
getBondedAtomIndex
in interfaceNode
-
getCovalentHydrogenCount
public int getCovalentHydrogenCount()
- Specified by:
getCovalentHydrogenCount
in interfaceNode
-
getValence
public int getValence()
- Specified by:
getValence
in interfaceNode
- Specified by:
getValence
in interfaceSimpleNode
- Returns:
- the sum of the bond orders for this atom
-
getTotalValence
public int getTotalValence()
- Specified by:
getTotalValence
in interfaceNode
-
getBondTo
SmilesBond getBondTo(SmilesAtom atom)
if atom is null, return bond TO this atom (bond.atom2 == this) otherwise, return bond connecting this atom with that atom- Parameters:
atom
-- Returns:
- bond
-
getBondNotTo
SmilesBond getBondNotTo(SmilesAtom atom, boolean allowH)
-
isLeadAtom
public boolean isLeadAtom()
- Specified by:
isLeadAtom
in interfaceNode
-
getOffsetResidueAtom
public int getOffsetResidueAtom(java.lang.String name, int offset)
- Specified by:
getOffsetResidueAtom
in interfaceNode
-
getGroupBits
public void getGroupBits(javajs.util.BS bs)
- Specified by:
getGroupBits
in interfaceNode
-
isCrossLinked
public boolean isCrossLinked(Node node)
- Specified by:
isCrossLinked
in interfaceNode
-
getCrossLinkVector
public boolean getCrossLinkVector(javajs.util.Lst<java.lang.Integer> vLinks, boolean crosslinkCovalent, boolean crosslinkHBond)
- Specified by:
getCrossLinkVector
in interfaceNode
-
getBioStructureTypeName
public java.lang.String getBioStructureTypeName()
- Specified by:
getBioStructureTypeName
in interfaceNode
-
getInsertionCode
public char getInsertionCode()
- Specified by:
getInsertionCode
in interfaceNode
-
getChainID
public int getChainID()
- Specified by:
getChainID
in interfaceNode
-
getChainIDStr
public java.lang.String getChainIDStr()
- Specified by:
getChainIDStr
in interfaceNode
-
getAtomLabel
static java.lang.String getAtomLabel(int atomicNumber, int isotopeNumber, int valence, int charge, float osclass, int nH, boolean isAromatic, java.lang.String stereo)
called from SmilesGenerator- Parameters:
atomicNumber
-isotopeNumber
-valence
- set -1 to force bracketscharge
-osclass
- OpenSMILES valuenH
-isAromatic
-stereo
-- Returns:
- label
-
getBioSmilesType
public char getBioSmilesType()
- Specified by:
getBioSmilesType
in interfaceNode
-
isNucleic
public boolean isNucleic()
-
isPyrimidine
public boolean isPyrimidine()
- Specified by:
isPyrimidine
in interfaceNode
-
findAtomsLike
public javajs.util.BS findAtomsLike(java.lang.String substring)
- Specified by:
findAtomsLike
in interfaceNode
-
toString
public java.lang.String toString()
Description copied from class:javajs.util.T3
Returns a string that contains the values of this Tuple3f. The form is (x,y,z).- Overrides:
toString
in classjavajs.util.T3
- Returns:
- the String representation
-
getFloatProperty
public float getFloatProperty(java.lang.String property)
- Specified by:
getFloatProperty
in interfaceNode
- Parameters:
property
- "property_xxxx"- Returns:
- value or Float.NaN
-
getMass
public float getMass()
- Specified by:
getMass
in interfaceNode
- Specified by:
getMass
in interfaceSimpleNode
- Returns:
- the mass or, if specified, the mass number
-
getCIPChirality
public java.lang.String getCIPChirality(boolean doCalculate)
- Specified by:
getCIPChirality
in interfaceNode
-
setCIPChirality
public void setCIPChirality(int c)
- Specified by:
setCIPChirality
in interfaceNode
- Specified by:
setCIPChirality
in interfaceSimpleNode
-
getCIPChiralityCode
public int getCIPChiralityCode()
- Specified by:
getCIPChiralityCode
in interfaceNode
-
getXYZ
public javajs.util.P3 getXYZ()
- Specified by:
getXYZ
in interfaceNode
- Specified by:
getXYZ
in interfaceSimpleNode
- Returns:
- the position of this atom
-
getStereo
public SmilesStereo getStereo()
-
getPatternIndex
public int getPatternIndex()
-
modelIsRawPDB
public boolean modelIsRawPDB()
- Specified by:
modelIsRawPDB
in interfaceNode
-
-