public class SmilesGenerator extends Object
Modifier and Type | Field and Description |
---|---|
private int |
ac |
private boolean |
addAtomComment |
private boolean |
aromaticDouble |
private javajs.util.Lst<BS> |
aromaticRings |
private Node[] |
atemp |
private Node[] |
atoms |
private BS |
bsAromatic |
private BS |
bsBondsDn |
private BS |
bsBondsUp |
private BS |
bsIncludingH |
private BS |
bsRingKeys |
private BS |
bsSelected |
private BS |
bsToDo |
private int |
chainCheck |
private boolean |
explicitH |
private int |
flags |
(package private) boolean |
getAromatic |
private Map<String,Object[]> |
htRings |
private Map<String,Object[]> |
htRingsSequence |
private int |
iHypervalent |
private boolean |
isPolyhedral |
private boolean |
noBioComment |
private boolean |
noStereo |
private int |
nPairs |
private int |
nPairsMax |
private boolean |
openSMILES |
javajs.util.P3 |
polySmilesCenter |
private Node |
prevAtom |
private Node[] |
prevSp2Atoms |
private javajs.util.SB |
ringSets |
private SmilesMatcher |
sm |
private SmilesStereo |
smilesStereo |
private boolean |
topologyOnly |
private VTemp |
vTemp |
Constructor and Description |
---|
SmilesGenerator() |
Modifier and Type | Method and Description |
---|---|
private void |
addBracketedBioName(javajs.util.SB sb,
Node atom,
String atomName,
boolean addComment) |
private String |
addStereoCheck(int level,
int atomIndex,
Node atom,
String s,
BS bsDone)
checks a group and either adds a new group to the growing check string or
returns null
|
private String |
checkStereoPairs(Node atom,
int atomIndex,
Node[] stereo,
int stereoFlag) |
private void |
dumpRingKeys(javajs.util.SB sb,
Map<String,Object[]> ht) |
private void |
generateRingData()
get aromaticity, ringSets, and aromaticRings fields so that we can
assign / and \ and also provide inter-aromatic single bond
|
private String |
getBioSmiles(BS bsSelected,
String comment,
int flags) |
private String |
getBondOrder(Edge bondPrev,
int atomIndex,
int prevIndex,
boolean isAromatic) |
private char |
getBondStereochemistry(Edge bond,
Node atomFrom)
Retrieves the saved character based on the index of the bond.
|
private String |
getRingCache(int i0,
int i1,
Map<String,Object[]> ht) |
protected static String |
getRingKey(int i0,
int i1) |
private String |
getRingPointer(int i) |
(package private) String |
getSmiles(SmilesMatcher sm,
Node[] atoms,
int ac,
BS bsSelected,
String comment,
int flags) |
private Node |
getSmilesAt(javajs.util.SB sb,
Node atom,
boolean allowConnectionsToOutsideWorld,
boolean allowBranches,
boolean forceBrackets) |
private String |
getSmilesComponent(Node atom,
BS bs,
boolean allowBioResidues,
boolean allowConnectionsToOutsideWorld,
boolean forceBrackets)
creates a valid SMILES string from a model.
|
private boolean |
isSameAromaticRing(int a1,
int a2) |
private void |
setBondDirections()
Creates global BitSets bsBondsUp and bsBondsDown.
|
(package private) void |
sortBonds(Node atom,
Node refAtom,
javajs.util.P3 center) |
private String |
sortInorganic(Node atom,
javajs.util.Lst<Edge> v,
VTemp vTemp)
We must sort the bond vector such that a diaxial pair is
first and last.
|
private void |
swapArray(Node[] a,
int i0,
int i1,
int i2)
swap slices of an array [i0 i1) with [i1 i2)
|
private Node[] atoms
private int ac
private BS bsSelected
private BS bsAromatic
private int flags
private boolean explicitH
private javajs.util.SB ringSets
private VTemp vTemp
private int nPairs
private int nPairsMax
private BS bsBondsUp
private BS bsBondsDn
private BS bsToDo
private Node prevAtom
private Node[] prevSp2Atoms
private BS bsRingKeys
private BS bsIncludingH
private boolean topologyOnly
boolean getAromatic
private boolean addAtomComment
private boolean noBioComment
private boolean aromaticDouble
private boolean noStereo
private boolean openSMILES
public javajs.util.P3 polySmilesCenter
private SmilesStereo smilesStereo
private boolean isPolyhedral
private javajs.util.Lst<BS> aromaticRings
private SmilesMatcher sm
private int iHypervalent
private Node[] atemp
private int chainCheck
String getSmiles(SmilesMatcher sm, Node[] atoms, int ac, BS bsSelected, String comment, int flags) throws InvalidSmilesException
InvalidSmilesException
private String getBioSmiles(BS bsSelected, String comment, int flags) throws InvalidSmilesException
InvalidSmilesException
private void addBracketedBioName(javajs.util.SB sb, Node atom, String atomName, boolean addComment)
private String getSmilesComponent(Node atom, BS bs, boolean allowBioResidues, boolean allowConnectionsToOutsideWorld, boolean forceBrackets) throws InvalidSmilesException
atom
- bs
- allowBioResidues
- allowConnectionsToOutsideWorld
- forceBrackets
- InvalidSmilesException
private void generateRingData() throws InvalidSmilesException
InvalidSmilesException
private char getBondStereochemistry(Edge bond, Node atomFrom)
bond
- atomFrom
- private void setBondDirections()
private Node getSmilesAt(javajs.util.SB sb, Node atom, boolean allowConnectionsToOutsideWorld, boolean allowBranches, boolean forceBrackets)
private void swapArray(Node[] a, int i0, int i1, int i2)
a
- i0
- i1
- i2
- private String getBondOrder(Edge bondPrev, int atomIndex, int prevIndex, boolean isAromatic)
bondPrev
- atomIndex
- prevIndex
- isAromatic
- private boolean isSameAromaticRing(int a1, int a2)
private String sortInorganic(Node atom, javajs.util.Lst<Edge> v, VTemp vTemp)
atom
- v
- vTemp
- private String checkStereoPairs(Node atom, int atomIndex, Node[] stereo, int stereoFlag)
private String addStereoCheck(int level, int atomIndex, Node atom, String s, BS bsDone)
level
- atomIndex
- atom
- s
- bsDone
- private String getRingPointer(int i)
protected static String getRingKey(int i0, int i1)