Each molecule was encoded as a 2D molecular graph where the nodes/edges correspond to atoms/bonds, respectively. Using the open-source cheminformatics package RDKit, 54 information on the type of atom, valence electrons, chirality, formal charge, aromaticity, ring information, degree, and total number of hydrogens bonded to each atom was one-hot encoded into each node of the graph. Similar information for the bond including bond-type, conjugation, ring information, and stereochemistry was one-hot encoded to the edges of the molecular graph (all features are listed in the SI section 4.2). These molecular graph inputs were used for training a neural network where the node and edge representations were updated at each layer based on neighboring nodes and edges, allowing for information flow within the molecular graph. This information flow (i.e., message-passing) was performed using a graph isomorphism network with edge features (GINE) convolutions, and the final representations were utilized to make predictions of atom-, bond-, and molecule-level descriptors. (more information on the architecture can be found in SI section 4.1).