Notice: This is research code that will not necessarily be maintained in the future. The code is under development so make sure you are using the most recent version. I welcome bug reports and PRs but make no guarantees about fixes or responses.
This research project tests if The Forward-Forward Algorithm can be used for the Virtual High-Throughput Screening (VHTS), with the Dopamine receptor D2 (DRD2) protein target in particular.
To train the model, the positive-negative pairs are created by sampling from the training set measurements by randomly matching active and inactive compounds. During FFA training, the network enhances the activity of the neurons for the positive examples and attenuates the signal for the negative data-points. At inference time, the goodness score
is used as a proxy for the activity score -- the absolute value of this score is not relevant for the performance on ranking problems, such as VHTS.
The Simple Feed-Forward Dense networks quickly converge to the previously reported performance at the ROC-AUC value around 95-96%.
Surprisingly, the ForwardForwardNet
outperforms that baseline rather easily reaching the performance at the level of ROC-AUC around 98%.
For the full code and more results, check here.
These libraries are required to run the notebook code:
numpy
pandas
matplotlib
torch
rdkit
scikit-learn
- Allow more flexible activation functions
- Add other goodness functions (including proper normalization).
- Add HIV benchmark from TDCommons HTS benchmarks
The ForwardForwardNet
was adapted from the pytorch_forward_forward repo.
Copyright (C) 2022-, Pawel Gniewek
Email: [email protected]
All rights reserved.
License: BSD-3