BEAM-Labs / ContraNovo

20 stars 1 forks source link

error on windows regarding temp file #4

Open irleader opened 6 months ago

irleader commented 6 months ago

At eval or denovo mode, when it finishes inference, the following error occurs before writing any output file, so I have no output,. I tried two different windows PCs with conda, the same error is reproduced:

Traceback (most recent call last): File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\shutil.py", line 634, in _rmtree_unsafe os.unlink(fullname) PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\Users\PilotLab\AppData\Local\Temp\tmpl0ej9j5f\eval_52a4e37204e84f17b63625486cc4b5d7'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "C:\OneDrive\Evaluate_Denovo_Project\ContraNovo\ContraNovo\ContraNovo.py", line 211, in main() File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\site-packages\click\core.py", line 1157, in call return self.main(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\site-packages\click\core.py", line 783, in invoke return __callback(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\OneDrive\Evaluate_Denovo_Project\ContraNovo\ContraNovo\ContraNovo.py", line 205, in main model_runner.evaluate(peak_path, model, config) File "C:\OneDrive\Evaluate_Denovo_Project\ContraNovo\ContraNovo\denovo\model_runner.py", line 58, in evaluate _execute_existing(peak_path, model_filename, config, True) File "C:\OneDrive\Evaluate_Denovo_Project\ContraNovo\ContraNovo\denovo\model_runner.py", line 171, in _execute_existing tmp_dir.cleanup() File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\tempfile.py", line 950, in cleanup self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors) File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\tempfile.py", line 930, in _rmtree _shutil.rmtree(name, onexc=onexc) File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\shutil.py", line 808, in rmtree return _rmtree_unsafe(path, onexc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\shutil.py", line 636, in _rmtree_unsafe onexc(os.unlink, fullname, err) File "C:\Users\PilotLab\miniconda3\envs\contranovo\Lib\tempfile.py", line 905, in onexc _os.unlink(path) PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\Users\PilotLab\AppData\Local\Temp\tmpl0ej9j5f\eval_52a4e37204e84f17b63625486cc4b5d7'

The only change I do to the code is https://github.com/BEAM-Labs/ContraNovo/blob/503fdb3bb7146b46aa3e205d1b70b70e2a4be7b8/ContraNovo/denovo/db_index.py#L117

The map size is too large for my disk, so I change to 40GB instead.

Can you kindly help to resolve this error so I can use ContrNovo?

kai-jz commented 5 months ago

Sorry, I have never encountered such an error. Restarting your computer might be an option?