The original idea of the Baka Matrix came as a result of working on a project to model biochemical reactions with computer graphics.
The first approach to represent a molecular structure was to use graphs. Consider the molecular structure of propanoic acid. In the illustration below the structure is as from above the molecule so we can see the atoms in a flat layout. Each atom is given a number which is placed in a circle.
Simple Basis - Graph Storage in a Matrix.
Note:
Typically Chemists will draw a molecule without showing the letters for Carbon and no bonds for any hydrogen attached to a carbon. Propnanoic Acid would be normally be drawn like this:
![]()
If each node is put into a table so that the bonds are considered as edges and the atoms are listed as verci then the following diagram is produced.
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
1 |
|
1 |
|
|
|
|
|
1 |
1 |
1 |
|
|
2 |
1 |
|
1 |
|
|
|
1 |
|
|
|
1 |
|
3 |
|
1 |
|
1 |
1 |
|
|
|
|
|
|
|
4 |
|
|
1 |
|
|
|
|
|
|
|
|
|
5 |
|
|
1 |
|
|
1 |
|
|
|
|
|
|
6 |
|
|
|
|
1 |
|
|
|
|
|
|
|
7 |
|
1 |
|
|
|
|
|
|
|
|
|
|
8 |
1 |
|
|
|
|
|
|
|
|
|
|
|
9 |
1 |
|
|
|
|
|
|
|
|
|
|
|
10 |
1 |
|
|
|
|
|
|
|
|
|
|
|
11 |
|
1 |
|
|
|
|
|
|
|
|
|
There are several problems with this approach.
First of all there is a duplication of information. The upper right portion has the same information as the lower left portion in much the same way as a multipcation table.
There was also limitations to what kind of molecular structure graphs could represent.
Consider the following molecular structure.

This is much more complicated and would be very difficult to represent.
There is also not enough information about the bonds in the structure. The double Bond to Oxygen was not represented in a graph.
Clearly a new way was needed to represent a molecular structure.
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
M |
0 |
|
|
|
|
|
|
|
|
|
|
|
Af |
1 |
|
|
|
|
|
|
|
|
|
|
|
Pf |
2 |
|
Pf1 |
Pf2 |
Pf3 |
Pf4 |
Pf5 |
Pf6 |
Pf7 |
Pf8 |
|
|
Xf |
3 |
Xi |
Xf1 |
Xf2 |
Xf3 |
Xf4 |
Xf5 |
Xf6 |
Xf7 |
Xf8 |
|
|
Yf |
4 |
Yi |
Yf1 |
Yf2 |
Yf3 |
Yf4 |
Yf5 |
Yf6 |
Yf7 |
Yf8 |
0 |
|
Ao |
5 |
|
|
|
|
|
|
|
|
|
|
|
Po |
6 |
|
|
|
|
|
|
|
|
|
PfL |
|
Xs |
7 |
Xo |
Xs1 |
Xs2 |
Xs3 |
Xs4 |
Xs5 |
Xs6 |
Xs7 |
Xs8 |
XfL |
|
Ys |
8 |
Yo |
Ys1 |
Ys2 |
Ys3 |
Ys4 |
Ys5 |
Ys6 |
Ys7 |
Ys8 |
YfL |
|
Ab |
9 |
Ao |
Ab1 |
Ab2 |
Ab3 |
Ab4 |
Ab5 |
Ab6 |
Ab7 |
Ab8 |
AbL |
|
Pb |
10 |
Ie |
|
|
|
|
|
|
|
|
|
|
Xb |
11 |
|
|
|
|
|
|
|
|
|
|
|
Yb |
12 |
|
|
|
|
|
|
|
|
|
|
M = Status Row For Molecule
Xi = Initial X Coordinate
Yi = Initial Y Coordinate
Po = Pointer from first Atom
Xo = X Coordinate of first Atom
Yo = Y Coordinate of first Atom
Ie = Index number of atom at the end
Xs = X Coordinate of a Skeletal Atom
P is a number which determines what directions there are bonds
a bond to Carbon on three sides such as the following:
1 ![]()
Would be represented as
![]()
The following table shows the numeric representation used for each bond type.
|
0 |
Points To Nothing |
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Early Works
