-
Notifications
You must be signed in to change notification settings - Fork 41
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
ATACorrect: raise pickle.PicklingError('logger cannot be pickled') #127
Comments
Hi @ro-zeta, Sorry about this error - can you provide a little more information about the system you are on? Maybe Mac? I have another issue on the UROPA software (we manage both tools in the lab) at loosolab/UROPA#13, which seems to be the same. If you could provide me with the output of |
Hi @ro-zeta! I am also having a similar issue with both TOBIAS and UROPA, as Mette alluded to, and I wanted to draw your attention back to her question. Hopefully, armed with the information she has requested, she can compare our systems/dependencies to identify something that may be underlying our shared problem. Thanks so much! |
I also encountered this issue - only when running on my local Mac (Monterey 12.2.1) with Python 3.10.4, and not on a HPC with Linux and Python 3.7.12. On my Mac with the issue, here's the pip freeze output:
|
Hello, I am also encountering this issue on macOS Catalina v. 10.15.7
returns:
|
Did it ever work for any of you, and then stopped working? Or was this the first time trying it out? There were apparently some changes in the spawning of multiprocesses between MacOS and Unix for python 3.8: https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods. Can you try to downgrade to python 3.7 and see if this fixes the error? Otherwise I will also have a look a bit deeper to provide a fix for MacOS. |
@msbentsen I downgraded to python 3.7 and it seems to be running smoothly now! |
Yes, I also downgraded to python 3.7 and was successful in running both UROPA and TOBIAS. Thank you! |
Amazing, thank you very much for the feedback! So as reference for future issues: Due to changes in python's multiprocessing module, MacOS systems require python < 3.8 to run TOBIAS (and UROPA) tools. I will close this issue, but feel free to reopen should there still be problems. |
Hello,
I am trying to use the test data provided to see if I can reproduce the data from the publication with python 3.8.8. I cannot run any of the commands. For all commands in the framework I get an error saying: "raise pickle.PicklingError('logger cannot be pickled')". Please see below for an example:
(base) comp:~ user$ TOBIAS FootprintScores --signal test_data/Bcell_corrected.bw --regions test_data/merged_peaks.bed --output Bcell_footprints.bw --cores 2
'# TOBIAS 0.13.2 ScoreBigwig (run started 2022-03-27 23:02:56.064916)
'# Working directory: /Users/user
'# Command line call: TOBIAS FootprintScores --signal test_data/Bcell_corrected.bw --regions test_data/merged_peaks.bed --output Bcell_footprints.bw --cores 2
'# ----- Input parameters -----
'# signal: test_data/Bcell_corrected.bw
'# output: Bcell_footprints.bw
'# regions: test_data/merged_peaks.bed
'# score: footprint
'# absolute: False
'# extend: 100
'# smooth: 1
'# min_limit: None
'# max_limit: None
'# fp_min: 20
'# fp_max: 50
'# flank_min: 10
'# flank_max: 30
'# window: 100
'# cores: 2
'# split: 100
'# verbosity: 3
'# ----- Output files -----
'# Bcell_footprints.bw
Traceback (most recent call last):
File "/opt/anaconda3/bin/TOBIAS", line 8, in
sys.exit(main())
File "/opt/anaconda3/lib/python3.8/site-packages/tobias/TOBIAS.py", line 154, in main
args.func(args)
File "/opt/anaconda3/lib/python3.8/site-packages/tobias/tools/score_bigwig.py", line 120, in run_scorebigwig
logger.start_logger_queue()
File "/opt/anaconda3/lib/python3.8/site-packages/tobias/utils/logger.py", line 130, in start_logger_queue
self.listener.start()
File "/opt/anaconda3/lib/python3.8/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/opt/anaconda3/lib/python3.8/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/opt/anaconda3/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/opt/anaconda3/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in init
super().init(process_obj)
File "/opt/anaconda3/lib/python3.8/multiprocessing/popen_fork.py", line 19, in init
self._launch(process_obj)
File "/opt/anaconda3/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/opt/anaconda3/lib/python3.8/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
File "/opt/anaconda3/lib/python3.8/logging/init.py", line 1735, in reduce
raise pickle.PicklingError('logger cannot be pickled')
_pickle.PicklingError: logger cannot be pickled
The text was updated successfully, but these errors were encountered: