错误消息:h5py.h5py_warnings.H5pyDeprecationWarning:dataset.value已被弃用.使用数据集[()]代替 [英] Error message: h5py.h5py_warnings.H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead

查看:1534
本文介绍了错误消息:h5py.h5py_warnings.H5pyDeprecationWarning:dataset.value已被弃用.使用数据集[()]代替的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我打算运行 mbin 进行甲基化分析.但收到错误消息:h5py.h5py_warnings.H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead. 尝试了几次,同时尝试使用buildcontrols提取控件IPD.
环境:

I'm tring to run mbin for methylation analysis. But get error message: h5py.h5py_warnings.H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead. for several attempts, while trying to extract control IPDs with buildcontrols.
Environment:

  • mbin版本:1.1.1
  • Python版本:2.7.12
  • 操作系统:centOS
  • 在virtualenv下运行

我认为这也是由版本引起的. 我尝试过的 我在同时使用python 3和2的服务器上进行了尝试,并指定了virtualenv以将python 2用作解释器. mbin已成功安装,但buidlcontrols没有安装.

I thought it was, again, caused by version. What I've tried: I tried on a server with both python 3 and 2. And specified virtualenv to use python 2 as interpreter. mbin was successfully installed, but buidlcontrols didn't.

(virtualenv_for_mbin) [yx@localhost virtualenv_for_mbin]$ buildcontrols -i --procs=4 --control_pkl_name=control_means_190201.pkl /data1/yuxiao/userdata1/jobs/016/016504/data/aligned_reads.cmp.h5
2019-02-01 23:36:31 [INFO] Initiating dictionary of all possible motifs...
2019-02-01 23:36:31 [INFO]   - Adding 256 4-mer motifs...
2019-02-01 23:36:31 [INFO] Done: 256 possible contiguous motifs

2019-02-01 23:36:31 [INFO]   - Adding 1024 5-mer motifs...
2019-02-01 23:36:31 [INFO] Done: 1536 possible contiguous motifs

2019-02-01 23:36:31 [INFO]   - Adding 4096 6-mer motifs...
2019-02-01 23:36:32 [INFO] Done: 7680 possible contiguous motifs

2019-02-01 23:36:32 [INFO]   - Adding bipartite motifs to search space...
2019-02-01 23:36:33 [INFO] Done: 194560 possible bipartite motifs

2019-02-01 23:36:33 [INFO] 
2019-02-01 23:36:33 [INFO] Preparing to create new control data in ctrl_tmp
Traceback (most recent call last):
  File "/data2/Software/virtualenv_for_mbin/bin/buildcontrols", line 10, in <module>
    sys.exit(launch())
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/mbin/controls.py", line 20, in launch
    extract_controls(opts, control_aln_fn)
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/mbin/controls.py", line 40, in extract_controls
    opts           = controls.scan_WGA_aligns()
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/mbin/controls.py", line 352, in scan_WGA_aligns
    reader = openIndexedAlignmentFile(self.control_aln_fn)
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/pbcore/io/opener.py", line 52, in openIndexedAlignmentFile
    return CmpH5Reader(fname, sharedIndex=sharedIndex)
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/pbcore/io/align/CmpH5IO.py", line 729, in __init__
    self._loadAlignmentInfo(sharedIndex)
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/pbcore/io/align/CmpH5IO.py", line 745, in _loadAlignmentInfo
    rawAlignmentIndex = self.file["/AlnInfo/AlnIndex"].value
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/data2/Software/virtualenv_for_mbin/lib/python2.7/site-packages/h5py/_hl/dataset.py", line 313, in value
    "Use dataset[()] instead.", H5pyDeprecationWarning)
h5py.h5py_warnings.H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead.

我检查了python版本:

I checked python version:

(virtualenv_for_mbin) [yx@localhost virtualenv_for_mbin]$ python -V
Python 3.6.5 :: Anaconda, Inc.

因此,我立即尝试运行一个新的virtualenv.

So, I immediately tried to run a new virtualenv.

[yx@localhost Software]$ mkdir venv_tmp
[yx@localhost Software]$ cd venv_tmp/
[yx@localhost venv_tmp]$ virtualenv --python=/usr/local/bin/python2.7 .
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in /data2/Software/venv_tmp/bin/python2.7
Also creating executable in /data2/Software/venv_tmp/bin/python
Installing setuptools, pip, wheel...
done.
[yx@localhost venv_tmp]$ . bin/activate
(venv_tmp) [yx@localhost venv_tmp]$ python -V
Python 3.6.5 :: Anaconda, Inc.

然后,我转到另一台服务器.....,仅安装了python 2.7.

Then, I turned to another server.....with only python 2.7 installed.

(venv_for_mbin) [yuxiao@localhost data_tmp]$ buildcontrols -i --procs=4 --control_pkl_name=control_means_190202.pkl aligned_reads.cmp.h5
2019-02-02 11:06:16 [INFO] Initiating dictionary of all possible motifs...
2019-02-02 11:06:16 [INFO]   - Adding 256 4-mer motifs...
2019-02-02 11:06:16 [INFO] Done: 256 possible contiguous motifs

2019-02-02 11:06:16 [INFO]   - Adding 1024 5-mer motifs...
2019-02-02 11:06:16 [INFO] Done: 1536 possible contiguous motifs

2019-02-02 11:06:16 [INFO]   - Adding 4096 6-mer motifs...
2019-02-02 11:06:16 [INFO] Done: 7680 possible contiguous motifs

2019-02-02 11:06:16 [INFO]   - Adding bipartite motifs to search space...
2019-02-02 11:06:18 [INFO] Done: 194560 possible bipartite motifs

2019-02-02 11:06:18 [INFO] 
2019-02-02 11:06:18 [INFO] Preparing to create new control data in ctrl_tmp
Traceback (most recent call last):
  File "/data1/yuxiao/venv_for_mbin/bin/buildcontrols", line 10, in <module>
    sys.exit(launch())
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/mbin/controls.py", line 20, in launch
    extract_controls(opts, control_aln_fn)
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/mbin/controls.py", line 40, in extract_controls
    opts           = controls.scan_WGA_aligns()
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/mbin/controls.py", line 352, in scan_WGA_aligns
    reader = openIndexedAlignmentFile(self.control_aln_fn)
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/pbcore/io/opener.py", line 52, in openIndexedAlignmentFile
    return CmpH5Reader(fname, sharedIndex=sharedIndex)
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/pbcore/io/align/CmpH5IO.py", line 729, in __init__
    self._loadAlignmentInfo(sharedIndex)
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/pbcore/io/align/CmpH5IO.py", line 745, in _loadAlignmentInfo
    rawAlignmentIndex = self.file["/AlnInfo/AlnIndex"].value
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/data1/yuxiao/venv_for_mbin/lib/python2.7/site-packages/h5py/_hl/dataset.py", line 313, in value
    "Use dataset[()] instead.", H5pyDeprecationWarning)
h5py.h5py_warnings.H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead.
(venv_for_mbin) [yuxiao@localhost data_tmp]$ python -V
Python 2.7.12

仍然收到相同的错误消息.我在这里希望有人能帮助我.非常感谢.

Still got the same error message. And I'm here hoping someone can help me. Thx a lot.

推荐答案

您需要使用获取标量值的新方法. .value语法仍然有效,但是谁想在Jupyter中看到粉红色警告?

As you said, you need to use the new way of getting scalar values out. The .value syntax still works, but who wants to see pink warnings in Jupyter?

该消息不是很直观,语法也不是.因此,我将在此处进行拼写-您有一个名为f:

The message is not very intuitive, as isn't the syntax. So I will spell this out here - you have a d5py.File called f:

>>> f = h5py.File('temp.h5')
>>> f['path/to/scalar'] = 5
>>> f['path/to/scalar'].value
(...)\site-packages\h5py\_hl\dataset.py:313: H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead. "Use dataset[()] instead.", H5pyDeprecationWarning)
5

改为使用数据集[()]"实际上是使用索引(__getitem__)运算符,并将空的tuple(())传递给它.因此,最后一行应为:

"Use dataset[()] instead" means literally "use the indexing (__getitem__) operator, and pass to it an empty tuple (()). So the last line should read:

>>> f['path/to/scalar'][()]
5

如果您觉得这是一种奇怪的,异国情调的表示法,那么我只能表示同情.

If you feel this is a bit of a strange, exotic notation, I can only empathize.

但是在某种意义上-标量值的numpy.shape实际上是().

But it makes some sense - the numpy.shape of scalar values is in fact ().

这篇关于错误消息:h5py.h5py_warnings.H5pyDeprecationWarning:dataset.value已被弃用.使用数据集[()]代替的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆