Exploring the Use of TensorFlow to Predict Connection Table Information within Chemical Structures
Brodie Schroeder
Exploring the Use of TensorFlow to Predict Connection Table - - PowerPoint PPT Presentation
Exploring the Use of TensorFlow to Predict Connection Table Information within Chemical Structures Brodie Schroeder Machine Learning Basics Gives "computers the ability to learn without being explicitly programmed." - Arthur
Exploring the Use of TensorFlow to Predict Connection Table Information within Chemical Structures
Brodie Schroeder
Machine Learning Basics
different problems
Basic Artificial Neural Network
y = <activation func>(Wx + b)
Softmax, Sigmoid, ReLU...
y = [0,0,1,0,0,0,0,0,0,0]
The image appears to be a ‘2’
Goal for this Project
Given the XYZ coordinates of atoms and their bonding information within a chemical structure, predict a bonding table for all atoms.
Example Dataset
benzene ACD/Labs0812062058 6 6 0 0 0 0 0 0 0 0 1 V2000 1.9050 -0.7932 0.0000 C 1.9050 -2.1232 0.0000 C 0.7531 -0.1282 0.0000 C 0.7531 -2.7882 0.0000 C2.345, 1.652, 4.791, C 4.562, 8.345, 2.221, C 9.821, 3.323, 4.124, C 8.421, 5.341, 9.981, O 7.623, 3.253, 7.456, C 4.221, 6.213, 4.343, O
Parsing SDF Files
6.0, 0.0, 4.312, 6.223, 7.321, 3.221, 9.023, 6.0, 1.542, 0.0, 4.222, 8.231, 6.321, 1.999, 6.0, 2.221, 5.012, 0.0, 4.223, 6.723, 7.232, 8.0, 7.010, 3.011, 7.221, 0.0, 5.434, 7.777, 6.0, 4.312, 3.221, 3.563, 7.212, 0.0, 6.521, 8.0, 2.333, 5.321, 6.872, 6.454, 8.991, 0.0,
Atomic Number of Atom Euclidean Distance Between Atoms2, 1, 1, 3, 1, 2, 4, 2, 2, 5, 3, 1, 6, 4, 1, 6, 5, 2,
Parsing SDF Files
0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
Boolean Array of ConnectionsInput and Training Data
6.0, 0.0, 4.312, 6.223, 7.321, 3.221, 9.023, 6.0, 1.542, 0.0, 4.222, 8.231, 6.321, 1.999, 6.0, 2.221, 5.012, 0.0, 4.223, 6.723, 7.232, 8.0, 7.010, 3.011, 7.221, 0.0, 5.434, 7.777, 6.0, 4.312, 3.221, 3.563, 7.212, 0.0, 6.521, 8.0, 2.333, 5.321, 6.872, 6.454, 8.991, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,6 x 7 = 42 6 x 6 = 36 x = y_ =
distances and atom type
information for all atoms
with less than or equal to 28 atoms are included)
Input and Training Data
What is TensorFlow ?
graph edges represent the multidimensional data arrays (tensors) communicated between them.”
models.
Building the Model
x = tf.placeholder(tf.float32, [None, 812]) W1 = tf.Variable(tf.truncated_normal([812, 784], stddev=0.1)) b1 = tf.Variable(tf.truncated_normal([784], stddev=0.1)) W2 = tf.Variable(tf.truncated_normal([784, 784], stddev=0.1)) b2 = tf.Variable(tf.truncated_normal([784], stddev=0.1)) W3 = tf.Variable(tf.truncated_normal([784, 784], stddev=0.1)) b3 = tf.Variable(tf.truncated_normal([784], stddev=0.1)) W = tf.Variable(tf.truncated_normal([784, 784], stddev=0.1)) b = tf.Variable(tf.truncated_normal([784], stddev=0.1)) layer1 = tf.add(tf.matmul(x, W1), b1) layer1 = tf.nn.relu(layer1) layer2 = tf.add(tf.matmul(layer1, W2), b2) layer2 = tf.nn.relu(layer2) layer3 = tf.add(tf.matmul(layer2, W3), b3) layer3 = tf.nn.relu(layer3) y = tf.add(tf.matmul(layer3, W), b) y = tf.nn.sigmoid(y) y_ = tf.placeholder(tf.float32, [None, 784])Building the Model
Building the Model
Results thus far...
Test Accuracy = 0.865
Future Improvements and Optimization
Questions?
View the code: https://github.com/Allvitende/chemical-modeling/