DR prediction via DeepDR

The following are detailed tutorials on how to implement DR prediction.

Import as follows before starting DR Prediction:

from DeepDR import Data, Model, CellEncoder, DrugEncoder, FusionModule

Step 1: build and clean data

data = Data.DrData(Data.DrRead.PairDef('CCLE', 'ActArea'), 'EXP', 'Graph').clean()

Build data with Data.DrData, and then clean data using .clean on the instantiated Data.DrData. Click here for detailed tutorials.

Step 2: split response data

train_data, val_data, _ = data.split('cell_out', fold=1, ratio=[0.8, 0.2, 0.0], seed=1)

Split response data using .split on the instantiated Data.DrData. Click here for details.

The train_data and val_data are lists, and each element in the list is the instantiated Data.DrData. The training data has the same index as the corresponding validation data. The test_data is the instantiated Data.DrData (not used in this example, represented as _).

Step 3: build and load dataset

train_loader = Data.DrDataLoader(Data.DrDataset(train_data[0]), batch_size=64, shuffle=True)
val_loader = Data.DrDataLoader(Data.DrDataset(val_data[0]), batch_size=64, shuffle=False)

Based on the instantiated Data.DrData, build dataset with Data.DrDataset. Click here for details.

Load dataset with Data.DrDataLoader. Click here for details.

Step 4: build prediction model

model = Model.DrModel(CellEncoder.DNN(6163, 100), DrugEncoder.MPG(), FusionModule.DNN(100, 768))

Build prediction model with Model.DrModel. Click here for details.

Step 5: train and validate model

result = Model.Train(model, epochs=100, lr=1e-4, train_loader=train_loader, val_loader=val_loader)

Train and validate model with Model.Train. Click here for details.

The result is a tuple where the first element is the trained model.

Step 6: make prediction

data.pair_ls = [['CAL120', '5-Fluorouracil'], ['CAL51', 'Afuresertib']]
result = Model.Predict(model=result[0], data=data)

For simplicity, replace .pair_ls in the instantiated Data.DrData above with the pairs you want to predict. The .pair_ls needs to be set to a list, each element in the list is a sub-list, each element in the sub-list in turn is the cell name, drug name, and drug response (optional).

Then, make prediction with Model.Predict. Click here for details.