Neural network implementation and architectures. All models were implemented using PyTorch 51 v. 1.12.1 and PyTorch Geometric 52 v. 2.2.0. Graph Convolutional Networks (GCN) consisted of an atom embedding layer, followed by three layers of graph convolutions with batch normalization . Global pooling by summing was then used to get molecular embeddings from atom embeddings. Finally, a multi-layer perceptron (MLP) was used with three fully connected layers with batch normalization . The same MLP architecture was used for models trained on ECFPs. All models used a hidden size of 1024 neurons and were optimized for 50 epochs using the Adam algorithm, with a learning rate of 3 x 10 - 4 with mixed precision and a minibatch size of 64. During training, minibatches were resampled based on their class with: