Given this complex interplay between flexibility and necessary knowledge, to perform feature engineering in a deep learning model is to walk a tightrope between kneecapping a model's expressiveness and leaving it blind to the realities of the molecular graph. Several different approaches to node and edge encodings were tested to maximize model performance and determine the best balance between these extrema. In feature engineering, the DGL-LifeSci and RDkit 72 packages were used for featurization functions. Learned Feature Representations.