Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to debug “the process cannot access it” when running imt_gsea ? #18

Open
jwli28 opened this issue May 16, 2023 · 2 comments
Open

Comments

@jwli28
Copy link

jwli28 commented May 16, 2023

Dear alegiac95,

Thanks for providing this great scripts! I am using this toolbox in my project but meeting a bug.

After PLS analysis, I obtained .pkl file.
When I did imt_gsea (below),

imt_gsea –i C:\Users\jwli2\Desktop\update\Imt_PET_pls\pls_analysis.pkl --geneset lake

It showed something wrong.

Traceback (most recent call last):
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\Scripts\imagingtranscriptomics.exe\__main__.py", line 7, in <module>
    sys.exit(main())
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\script\imagingtranscriptomics.py", line 108, in main
    gene_limit=parsed.max_genes)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\transcriptomics.py", line 334, in run
    gene_limit=gene_limit)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\transcriptomics.py", line 253, in gsea
    gene_limit=gene_limit)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\genes.py", line 210, in gsea
    max_size=gene_limit)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\site-packages\gseapy\gsea.py", line 1042, in prerank
    pre.run()
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\site-packages\gseapy\gsea.py", line 527, in run
    self._tmpdir.cleanup()
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\tempfile.py", line 811, in cleanup
    _shutil.rmtree(self.name)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\shutil.py", line 518, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\shutil.py", line 402, in _rmtree_unsafe
    onerror(os.unlink, fullname, sys.exc_info())
  File "C:\ProgramData\anaconda3\envs\transcriptomics\lib\shutil.py", line 400, in _rmtree_unsafe
    os.unlink(fullname)
PermissionError: [WinError 32] Another program is using this file and the process cannot access it。: 'C:\\Users\\jwli2\\AppData\\Local\\Temp\\tmpclj7f0r7\\gseapy.prerank.geneset_lake.log'

(I am using imaging-transcriptomics V1.1.7)
I tried to solve it but had no idea.
I would appreciate your help, thanks!

@lenachenpumc
Copy link

How do you solve the problem? I met the same error.

imagingtranscriptomics --input C:/Users/lena/Downloads/5-HT_atlas/resized_5-HT2A_mean_bmax.nii.gz --regions all --geneset lake pls --ncomp 1

It showed something wrong.

2024-01-24 19:34:23,707: Running the pls analysis.
2024-01-24 19:34:23,707: Permuting data.
2024-01-24 19:34:24,393: Calculating PLS with permuted data
+-----------+----------------+-------+

Component Cumulative var p val
1 0.466 0.255
+-----------+----------------+-------+

2024-01-24 19:34:57,818: Performing bootstrapping of the genes.
2024-01-24 19:35:33,124: Calculating statistics.
2024-01-24 19:35:33,840: Performing GSEA.
2024-01-24 19:35:33,852 Input gene rankings contains duplicated IDs, Only use the duplicated ID with highest value!
Traceback (most recent call last):
File "D:\anaconda\envs\transcriptomics\lib\shutil.py", line 616, in _rmtree_unsafe
os.unlink(fullname)
PermissionError: [WinError 32] Another program is using this file and the process cannot access it。: 'C:\Users\lena\AppData\Local\Temp\tmpstjb_our\gseapy.prerank.geneset_lake.log'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\anaconda\envs\transcriptomics\lib\tempfile.py", line 802, in onerror
_os.unlink(path)
PermissionError: [WinError 32] Another program is using this file and the process cannot access it: 'C:\Users\lena\AppData\Local\Temp\tmpstjb_our\gseapy.prerank.geneset_lake.log'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\anaconda\envs\transcriptomics\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\anaconda\envs\transcriptomics\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "D:\anaconda\envs\transcriptomics\Scripts\imagingtranscriptomics.exe_main
.py", line 7, in
sys.exit(main())
File "D:\anaconda\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\script\imagingtranscriptomics.py", line 103, in main
transcriptomics.run(outdir,
File "D:\anaconda\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\transcriptomics.py", line 333, in run
self.gsea(gene_set=gene_set, outdir=outdir,
File "D:\anaconda\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\transcriptomics.py", line 251, in gsea
self.gene_results.results.gsea(gene_set=gene_set,
File "D:\anaconda\envs\transcriptomics\lib\site-packages\imaging_transcriptomics\genes.py", line 206, in gsea
gsea_results = gseapy.prerank(rnk, gene_set,
File "D:\anaconda\envs\transcriptomics\lib\site-packages\gseapy\gsea.py", line 1042, in prerank
pre.run()
File "D:\anaconda\envs\transcriptomics\lib\site-packages\gseapy\gsea.py", line 527, in run
self._tmpdir.cleanup()
File "D:\anaconda\envs\transcriptomics\lib\tempfile.py", line 831, in cleanup
self._rmtree(self.name)
File "D:\anaconda\envs\transcriptomics\lib\tempfile.py", line 813, in _rmtree
_shutil.rmtree(name, onerror=onerror)
File "D:\anaconda\envs\transcriptomics\lib\shutil.py", line 740, in rmtree
return _rmtree_unsafe(path, onerror)
File "D:\anaconda\envs\transcriptomics\lib\shutil.py", line 618, in _rmtree_unsafe
onerror(os.unlink, fullname, sys.exc_info())
File "D:\anaconda\envs\transcriptomics\lib\tempfile.py", line 805, in onerror
cls._rmtree(path)
File "D:\anaconda\envs\transcriptomics\lib\tempfile.py", line 813, in _rmtree
_shutil.rmtree(name, onerror=onerror)
File "D:\anaconda\envs\transcriptomics\lib\shutil.py", line 740, in rmtree
return _rmtree_unsafe(path, onerror)
File "D:\anaconda\envs\transcriptomics\lib\shutil.py", line 599, in _rmtree_unsafe
onerror(os.scandir, path, sys.exc_info())
File "D:\anaconda\envs\transcriptomics\lib\shutil.py", line 596, in _rmtree_unsafe
with os.scandir(path) as scandir_it:
NotADirectoryError: [WinError 267] Invalid directory name. : 'C:\Users\lena\AppData\Local\Temp\tmpstjb_our\gseapy.prerank.geneset_lake.log'

(I am using imaging-transcriptomics V1.1.7, and python 3.8.)

@alegiac95
Copy link
Owner

Hi, apologies for this, but the issue is due to using the toolbox in Windows.
Some users already reported this and it's due the inability of one of the libraries used "under the hood" to write temporary files in the C:\ directory (even if ran as admin). I've tried to work around this but am sadly not able to resolve it. If ran in MacOS and Linux the issue doesn't persist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants