I'm new to Python. I've to run this TargetFinder script ("Custom Analyses").
I installed all the required python packages, and copied the code into a script I named main.py
, and ran it. I got this error:
[davide@laptop]$ python main.py Traceback (most recent call last): File "main.py", line 8, in <module> training_df = pd.read_hdf('./paper/targetfinder/K562/output-epw/training.h5', 'training').set_index(['enhancer_name', 'promoter_name']) File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 330, in read_hdf return store.select(key, auto_close=auto_close, **kwargs) File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 680, in select return it.get_result() File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 1364, in get_result results = self.func(self.start, self.stop, where) File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 673, in func columns=columns, **kwargs) File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 2786, in read values = self.read_array('block%d_values' % i) File "/usr/lib64/python2.7/site-packages/pandas/io/pytables.py", line 2327, in read_array data = node[:] File "/usr/lib64/python2.7/site-packages/tables/vlarray.py", line 677, in __getitem__ return self.read(start, stop, step) File "/usr/lib64/python2.7/site-packages/tables/vlarray.py", line 817, in read outlistarr = [atom.fromarray(arr) for arr in listarr] File "/usr/lib64/python2.7/site-packages/tables/atom.py", line 1211, in fromarray return cPickle.loads(array.tostring()) ValueError: unsupported pickle protocol: 4
I've no idea about what this pickle protocol means, and also my colleagues know nothing about it.
How can I solve this problem?
I'm using Python 2.7.5 on a CentOS Linux release 7.2.1511 (Core) operating system
The Pickle protocol is basically the file format. From the documentation, The higher the protocol used, the more recent the version of Python needed to read the pickle produced. ... Pickle protocol version 4 was added in Python 3.4, your python version (2.7.5) does not support this.
Either upgrade to Python 3.4 or later (current is 3.5) or create the pickle using a lower protocol (2) in the third parameter to pickle.dump()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With