Overview
The BigSMILES will be parsed into an abstract syntax tree. There are 3 classes of nodes:
- root node:
BigSMILES
- intermediate nodes:
StochasticObject
,StochasticFragment
,Branch
- leaf nodes:
BondDescriptorAtom
,Atom
,Bond
BigSMILE objects (Atom
, Bond
, BondingDescriptor
, Branch
, StochasticFragment
, StochasticObject
, BigSMILES
)
only holds data.
Info
Creation of these objects are handled by the 'Constructor' methods.
The figure shows the data objects and links to other data objects.
The arrows point from 'parent' objects to 'child' objects. Meaning Reaction
--> BigSMILES
means that you will
find attributes in Reaction
that are BigSMILES
objects.
classDiagram
class Reaction {
reactants: [BigSMILES]
agents: [BigSMILES]
products: [BigSMILES]
}
class BigSMILES {
nodes: [Atom, Bond, Branch, StochasticObject]
atoms: [Atom]
bonds: [Bond]
rings: [Bond]
}
class StochasticObject {
nodes: [StochasticFragment]
bond_left: Bond
bond_right: Bond
bond_descriptors: BondDescriptor
}
class StochasticFragment {
nodes: [Atom, Bond, Branch, StochasticObject]
rings: [Bond]
}
class Branch {
nodes: [Atom, Bond, Branch, StochasticObject]
}
class BondDescriptorAtom {
BondDescriptor: descriptor
Bond: bond
}
class BondDescriptor {
instances: list[BondDescriptorAtom]
}
class Bond {
atom1: Atom
atom2 Atom
}
class Atom {
bonds: list[Bond]:
}
Reaction --|> BigSMILES
BigSMILES --|> Atom
BigSMILES --|> Bond
BigSMILES --|> Branch
BigSMILES --|> StochasticObject
StochasticObject --|> StochasticFragment
StochasticObject --|> BondDescriptor
StochasticFragment --|> BondDescriptorAtom
BondDescriptor --|> BondDescriptorAtom
StochasticFragment --|> Atom
StochasticFragment --|> Bond
StochasticFragment --|> Branch
StochasticFragment --|> StochasticObject
Branch --|> BondDescriptorAtom
Branch --|> StochasticObject
Branch --|> Bond
Branch --|> Atom