molfeat
molfeat copied to clipboard
Problem with jtvae_zinc_no_kl on Windows: os.unlink(tmp_file.name)
Is there an existing issue for this?
- [X] I have searched the existing issues and found nothing
Bug description
Trying to use jtvae_zinc_no_kl to featurize a SMILES dataset, code adapted from https://molfeat.datamol.io/featurizers/jtvae_zinc_no_kl to run as a python script.
The step features = transformer(smiles)
throws a series of errors due to os.unlink(tmp_file.name)
on dgl_pretrained.py
How to reproduce the bug
# run as: $python jtnn.py
import pandas as pd
from molfeat.trans.pretrained import PretrainedDGLTransformer
df = pd.read_csv("training_set.csv", sep=";", header=0)
smiles = df['standard_SMILES'].to_list()
transformer = PretrainedDGLTransformer(kind='jtvae_zinc_no_kl', dtype=float)
features = transformer(smiles)
df2 = pd.DataFrame(features)
df2.to_csv("training_set_jt.csv", sep=";", index=False)
Error messages and logs
(molfeat-env) C:\Users\rafae\Desktop\jtnn>python jtnn.py
Extracting file to C:\Users\rafae\.dgl/jtvae
Traceback (most recent call last):
File "C:\Users\rafae\Desktop\jtnn\jtnn.py", line 8, in <module>
features = transformer(smiles)
File "C:\Users\rafae\miniconda3\envs\molfeat-env\lib\site-packages\molfeat\trans\base.py", line 385, in __call__
features = self.transform(mols, ignore_errors=ignore_errors, enforce_dtype=False, **kwargs)
File "C:\Users\rafae\miniconda3\envs\molfeat-env\lib\site-packages\sklearn\utils\_set_output.py", line 273, in wrapped
data_to_wrap = f(self, X, *args, **kwargs)
File "C:\Users\rafae\miniconda3\envs\molfeat-env\lib\site-packages\molfeat\trans\pretrained\base.py", line 208, in transform
out = self._embed(converted_mols, **kwargs)
File "C:\Users\rafae\miniconda3\envs\molfeat-env\lib\site-packages\molfeat\trans\pretrained\dgl_pretrained.py", line 222, in _embed
dataset, successes = self.graph_featurizer(smiles, kind=self.kind)
File "C:\Users\rafae\miniconda3\envs\molfeat-env\lib\site-packages\molfeat\trans\pretrained\dgl_pretrained.py", line 258, in graph_featurizer
os.unlink(tmp_file.name)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process:
Environment
Current environment
OS: Windows 10
dgl 2.0.0
dgllife 0.3.2
molfeat 0.10.0
#- How you installed Molfeat: conda
Additional context
No response