| import _bootstrap
|
| import torch
|
| from model.build_vocab import WordVocab |
| from model.pretrain_trfm import TrfmSeq2seq |
| from model.utils import split |
| import json
|
| from transformers import T5EncoderModel, T5Tokenizer
|
| import re
|
| import gc
|
| from sklearn import metrics
|
| from sklearn.ensemble import ExtraTreesRegressor
|
| import numpy as np
|
| import pandas as pd
|
| from sklearn.model_selection import KFold
|
| from sklearn.metrics import mean_squared_error, mean_absolute_error
|
| from sklearn.metrics import r2_score
|
| from sklearn.model_selection import train_test_split
|
| import random
|
| import pickle
|
| import math
|
| from sklearn.model_selection import KFold
|
| from project_paths import (
|
|
|
| DEGREE_SMILES_PATH, KCAT_DATASET_PATH, KCAT_KM_SAMPLES_PATH, KM_TEST_PATH,
|
|
|
| PH_SMILES_PATH, PROT_T5_MODEL, TRFM_PATH, UNIKP_MODEL_DIR, VOCAB_PATH,
|
|
|
| )
|
|
|
|
|
|
|
| def Kcat_predict(Ifeature, Label):
|
| for i in range(5):
|
| model = ExtraTreesRegressor()
|
| model.fit(Ifeature, Label)
|
| with open('PreKcat_new/'+str(i)+"_model.pkl", "wb") as f:
|
| pickle.dump(model, f)
|
|
|
|
|
| if __name__ == '__main__':
|
| with open(KCAT_DATASET_PATH, 'r') as file:
|
| datasets = json.load(file)
|
|
|
| Label = [float(data['Value']) for data in datasets]
|
| Smiles = [data['Smiles']for data in datasets]
|
| for i in range(len(Label)):
|
| if Label[i] == 0:
|
| Label[i] = -10000000000
|
| else:
|
| Label[i] = math.log(Label[i], 10)
|
| with open("PreKcat_new/features_16838_PreKcat.pkl", "rb") as f:
|
| feature = pickle.load(f)
|
| Label = np.array(Label)
|
| Label_new = []
|
| feature_new = []
|
| for i in range(len(Label)):
|
| if -10000000000 < Label[i] and '.' not in Smiles[i]:
|
| Label_new.append(Label[i])
|
| feature_new.append(feature[i])
|
| print(len(Label_new))
|
| Label_new = np.array(Label_new)
|
| feature_new = np.array(feature_new)
|
| Kcat_predict(feature_new, Label_new)
|
|
|