This repository contains the implementation of BIN-PU, a Positive-Unlabeled learning framework for predicting bacterial cytochrome P450 compound–protein interactions using only known positive samples.
Generate unlabeled protein–compound pairs by creating all possible combinations between unique proteins and unique compounds.
Known positive interactions are removed from these combinations.
All protein–compound combinations
− Known positive interactions
= Unlabeled samples
The unlabeled samples may contain both likely positive and likely negative interactions.
Preprocess the bacterial CYP protein–compound interaction data.
The preprocessing procedure is adapted from the respective CPI backbone model papers (TransformerCPI, SSNet, CPIprediction, MulinforCPI) to ensure that the input format is consistent with each model requirement.
This step prepares protein sequences, compound SMILES, known positive CPI labels, and model-specific input files.
Use the scripts in:
generating_pseudo_labels/
BIN-PU divides unlabeled samples and known positives into multiple bins and trains CPI classifiers using known positive samples and unlabeled samples.
Step 4: Final Training CPI Backbone Models with Known Positives, pseudo positives and pseudo negatives by using Weighted Positive Loss
The weighted positive loss function is available in:
custom_loss_function/
Install the required Python packages before running the code.
python
numpy
pandas
scikit-learn
torch
gensim
rdkit
matplotlib
Additional packages may be required depending on the selected CPI backbone model.