Spaces:
Paused
Paused
Update dataset.py
Browse files- dataset.py +1 -34
dataset.py
CHANGED
|
@@ -11,6 +11,7 @@ from collections import defaultdict
|
|
| 11 |
from rdkit.Chem.Scaffolds import MurckoScaffold
|
| 12 |
from itertools import compress
|
| 13 |
|
|
|
|
| 14 |
str2num = {'<pad>':0 ,'H': 1, 'C': 2, 'N': 3, 'O': 4, 'S': 5, 'F': 6, 'Cl': 7, 'Br': 8, 'P': 9,
|
| 15 |
'I': 10,'Na': 11,'B':12,'Se':13,'Si':14,'<unk>':15,'<mask>':16,'<global>':17}
|
| 16 |
num2str = {i:j for j,i in str2num.items()}
|
|
@@ -125,37 +126,3 @@ class Inference_Dataset(object):
|
|
| 125 |
smiles.set_shape([1])
|
| 126 |
atom_list.set_shape([None])
|
| 127 |
return x, adjoin_matrix,smiles,atom_list
|
| 128 |
-
|
| 129 |
-
class Inference_Dataset(object):
|
| 130 |
-
def __init__(self,sml_list,max_len=500,addH=True):
|
| 131 |
-
self.vocab = str2num
|
| 132 |
-
self.devocab = num2str
|
| 133 |
-
self.sml_list = [i for i in sml_list if len(i)<max_len]
|
| 134 |
-
self.addH = addH
|
| 135 |
-
|
| 136 |
-
def get_data(self):
|
| 137 |
-
self.dataset = tf.data.Dataset.from_tensor_slices((self.sml_list,))
|
| 138 |
-
self.dataset = self.dataset.map(self.tf_numerical_smiles).padded_batch(512, padded_shapes=(
|
| 139 |
-
tf.TensorShape([None]), tf.TensorShape([None,None]),tf.TensorShape([1]),tf.TensorShape([None]))).cache().prefetch(20)
|
| 140 |
-
|
| 141 |
-
return self.dataset
|
| 142 |
-
|
| 143 |
-
def numerical_smiles(self, smiles):
|
| 144 |
-
smiles_origin = smiles
|
| 145 |
-
smiles = smiles.numpy().decode()
|
| 146 |
-
atoms_list, adjoin_matrix = smiles2adjoin(smiles,explicit_hydrogens=self.addH)
|
| 147 |
-
atoms_list = ['<global>'] + atoms_list
|
| 148 |
-
nums_list = [str2num.get(i,str2num['<unk>']) for i in atoms_list]
|
| 149 |
-
temp = np.ones((len(nums_list),len(nums_list)))
|
| 150 |
-
temp[1:,1:] = adjoin_matrix
|
| 151 |
-
adjoin_matrix = (1-temp)*(-1e9)
|
| 152 |
-
x = np.array(nums_list).astype('int64')
|
| 153 |
-
return x, adjoin_matrix,[smiles], atoms_list
|
| 154 |
-
|
| 155 |
-
def tf_numerical_smiles(self, smiles):
|
| 156 |
-
x,adjoin_matrix,smiles,atom_list = tf.py_function(self.numerical_smiles, [smiles], [tf.int64, tf.float32,tf.string, tf.string])
|
| 157 |
-
x.set_shape([None])
|
| 158 |
-
adjoin_matrix.set_shape([None,None])
|
| 159 |
-
smiles.set_shape([1])
|
| 160 |
-
atom_list.set_shape([None])
|
| 161 |
-
return x, adjoin_matrix,smiles,atom_list
|
|
|
|
| 11 |
from rdkit.Chem.Scaffolds import MurckoScaffold
|
| 12 |
from itertools import compress
|
| 13 |
|
| 14 |
+
label = 'label'
|
| 15 |
str2num = {'<pad>':0 ,'H': 1, 'C': 2, 'N': 3, 'O': 4, 'S': 5, 'F': 6, 'Cl': 7, 'Br': 8, 'P': 9,
|
| 16 |
'I': 10,'Na': 11,'B':12,'Se':13,'Si':14,'<unk>':15,'<mask>':16,'<global>':17}
|
| 17 |
num2str = {i:j for j,i in str2num.items()}
|
|
|
|
| 126 |
smiles.set_shape([1])
|
| 127 |
atom_list.set_shape([None])
|
| 128 |
return x, adjoin_matrix,smiles,atom_list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|