saicharan2804 commited on
Commit
4848944
1 Parent(s): 250df6f

Added PyTDC

Browse files
Files changed (2) hide show
  1. my_metric.py +26 -16
  2. requirements.txt +2 -1
my_metric.py CHANGED
@@ -3,7 +3,7 @@ import datasets
3
  import moses
4
  from moses import metrics
5
  import pandas as pd
6
-
7
 
8
 
9
  _DESCRIPTION = """
@@ -64,28 +64,38 @@ class my_metric(evaluate.Metric):
64
  features=datasets.Features(
65
  {
66
  "list_of_generated_smiles": datasets.Sequence(datasets.Value("string")),
 
67
  }
68
  if self.config_name == "multilabel"
69
  else {
70
  "list_of_generated_smiles": datasets.Value("string"),
 
71
  }
72
  ),
73
  reference_urls=["https://github.com/molecularsets/moses"],
74
  )
75
 
76
- def _compute(self, list_of_generated_smiles):
77
- # test_set = moses.get_dataset('test')
78
- # preprocessed_smiles = [smile for smile in list_of_generated_smiles if moses.utils.canonicalize_smiles(smile)]
79
- preprocessed_smiles = list_of_generated_smiles
80
- results = metrics.get_all_metrics(preprocessed_smiles)
81
-
82
- return {
83
- "results": results
84
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
85
 
86
- # def _compute(self, predictions, references, normalize=True, sample_weight=None):
87
- # return {
88
- # "accuracy": float(
89
- # accuracy_score(references, predictions, normalize=normalize, sample_weight=sample_weight)
90
- # )
91
- # }
 
3
  import moses
4
  from moses import metrics
5
  import pandas as pd
6
+ from tdc import Evaluator
7
 
8
 
9
  _DESCRIPTION = """
 
64
  features=datasets.Features(
65
  {
66
  "list_of_generated_smiles": datasets.Sequence(datasets.Value("string")),
67
+ "list_of_test_smiles": datasets.Sequence(datasets.Value("string")),
68
  }
69
  if self.config_name == "multilabel"
70
  else {
71
  "list_of_generated_smiles": datasets.Value("string"),
72
+ "list_of_test_smiles": datasets.Value("string"),
73
  }
74
  ),
75
  reference_urls=["https://github.com/molecularsets/moses"],
76
  )
77
 
78
+ def _compute(self, list_of_generated_smiles, list_of_test_smiles=moses.get_dataset('test')):
79
+
80
+ Results = metrics.get_all_metrics(gen = preprocessed_smiles, test = list_of_test_smiles)
81
+
82
+ evaluator = Evaluator(name = 'Diversity')
83
+ Diversity = evaluator(list_of_generated_smiles)
84
+
85
+ evaluator = Evaluator(name = 'KL_Divergence')
86
+ KL_Divergence = evaluator(list_of_generated_smiles, list_of_test_smiles)
87
+
88
+ evaluator = Evaluator(name = 'FCD_Distance')
89
+ FCD_Distance = evaluator(list_of_generated_smiles, list_of_test_smiles)
90
+
91
+ evaluator = Evaluator(name = 'Novelty')
92
+ Novelty = evaluator(list_of_generated_smiles, list_of_test_smiles)
93
+
94
+ Results.update({
95
+ "PyTDC_Diversity": Diversity,
96
+ "PyTDC_KL_Divergence": KL_Divergence,
97
+ "PyTDC_FCD_Distance": FCD_Distance,
98
+ "PyTDC_Novelty": Novelty
99
+ })
100
 
101
+ return {"results": Results}
 
 
 
 
 
requirements.txt CHANGED
@@ -2,4 +2,5 @@ git+https://github.com/molecularsets/moses.git
2
  evaluate
3
  rdkit
4
  pandas==1.5.3
5
- gradio==3.43.1
 
 
2
  evaluate
3
  rdkit
4
  pandas==1.5.3
5
+ gradio==3.43.1
6
+ PyTDC