Spaces:
Running
Running
File size: 1,522 Bytes
7dd9869 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
'''
Code from https://github.com/blender-nlp/MolT5
```bibtex
@article{edwards2022translation,
title={Translation between Molecules and Natural Language},
author={Edwards, Carl and Lai, Tuan and Ros, Kevin and Honke, Garrett and Ji, Heng},
journal={arXiv preprint arXiv:2204.11817},
year={2022}
}
```
'''
import argparse
import csv
import os.path as osp
from rdkit import RDLogger
RDLogger.DisableLog('rdApp.*')
from fcd import get_fcd, load_ref_model, canonical_smiles
def evaluate(input_file, verbose=False):
gt_smis = []
ot_smis = []
with open(osp.join(input_file)) as f:
reader = csv.DictReader(f, delimiter="\t", quoting=csv.QUOTE_NONE)
for n, line in enumerate(reader):
gt_smi = line['ground truth']
ot_smi = line['output']
if len(ot_smi) == 0: ot_smi = '[]'
gt_smis.append(gt_smi)
ot_smis.append(ot_smi)
model = load_ref_model()
canon_gt_smis = [w for w in canonical_smiles(gt_smis) if w is not None]
canon_ot_smis = [w for w in canonical_smiles(ot_smis) if w is not None]
fcd_sim_score = get_fcd(canon_gt_smis, canon_ot_smis, model)
if verbose:
print('FCD Similarity:', fcd_sim_score)
return fcd_sim_score
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--input_file', type=str, default='caption2smiles_example.txt', help='path where test generations are saved')
args = parser.parse_args()
evaluate(args.input_file, True)
|