Skip to content

Problem with jtvae_zinc_no_kl on Windows: os.unlink(tmp_file.name) #95

@rflameiro

Description

@rflameiro

Is there an existing issue for this?

  • 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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions