【问题标题】:Error message: h5py.h5py_warnings.H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead错误消息:h5py.h5py_warnings.H5pyDeprecationWarning:dataset.value 已被弃用。改用数据集[()]
【发布时间】:2019-05-31 12:28:15
【问题描述】:

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

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

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

(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版本:

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

所以,我立即尝试运行一个新的 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。

(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

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

【问题讨论】:

  • link
    我终于得到了这份工作。将第 745、768、831 行 CmpH5IO.py 中的每个 *.value 替换为“[()]”,提示符

标签: python bioinformatics h5py


【解决方案1】:

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

消息不是很直观,语法也不是。所以我会在这里拼出来 - 你有一个名为 f: 的 d5py.File:

>>> 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 (()) 传递给它。所以最后一行应该是:

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

如果你觉得这有点奇怪,异国情调,我只能同情。

但它是有道理的 - 标量值的 numpy.shape 实际上是 ()

【讨论】:

  • 是的,这似乎是一个糟糕的举动
猜你喜欢
  • 2021-10-29
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
相关资源
最近更新 更多