clodius icon indicating copy to clipboard operation
clodius copied to clipboard

h5py KeyError exception with clodius 0.9.4

Open alexpreynolds opened this issue 5 years ago • 0 comments

Running clodius version 0.9.4 within a conda virtual environment raised the following error when doing bedfile-to-multivec conversion:

Traceback (most recent call last):
  File "/home/areynolds/.conda/envs/clodius/bin/clodius", line 11, in <module>
    sys.exit(cli())
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/clodius/cli/convert.py", line 275, in bedfile_to_multivec
    format, row_infos_filename, tile_size, method)
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/clodius/cli/convert.py", line 162, in _bedgraph_to_multivec
    row_infos=row_infos)
  File "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/clodius/multivec.py", line 142, in create_multivec_multires
--More--(70%) 
    print("array_data:", array_data['segment1'][-20:])
  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 "/home/areynolds/.conda/envs/clodius/lib/python3.6/site-packages/h5py/_hl/group.py", line 177, in __getitem__
    oid = h5o.open(self.id, self._e(name), lapl=self._lapl)
  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 "h5py/h5o.pyx", line 190, in h5py.h5o.open
KeyError: "Unable to open object (object 'segment1' doesn't exist)"

While multivec conversion failed, a test aggregation of a small BED file did not fail (clodius aggregate bedfile etc.). I did not try other dataset types.

Here is the conversion environment setup and breakdown, where I'm using defaults of what pip makes available:

>&2 echo "CREATE ${ENVIRONMENT}"
conda create -n ${ENVIRONMENT} python=3.6 --no-default-packages --yes

--More--(42%) 
>&2 echo "ACTIVATE ${ENVIRONMENT}"
source activate ${ENVIRONMENT}

>&2 echo "INSTALL ${ENVIRONMENT}"
pip install --upgrade pip
pip install --ignore-installed numpy
pip install --ignore-installed scipy
pip install --ignore-installed h5py
pip install clodius

clodius convert -h

clodius convert bedfile-to-multivec ${RWD}/data/E001.bed.gz \
    --assembly ${ASSEMBLY} \
    --starting-resolution ${RESOLUTION} \
    --row-infos-filename ${RWD}/data/${ASSEMBLY}.${STATES}.txt \
    --num-rows ${STATES} \
    --format epilogos

>&2 echo "DEACTIVATE ${ENVIRONMENT}"
source deactivate ${ENVIRONMENT}

>&2 echo "REMOVE ${ENVIRONMENT}"
conda remove -n ${ENVIRONMENT} --all --yes

This script installed the following libraries (among other dependencies):

h5py-2.8.0 numpy-1.15.3 scipy-1.1.0

Reverting to version 0.9.3 of clodius and specifying older versions of h5py and numpy dependencies seemed to resolve this issue (I also specified scipy, even though it is current with the default):

...
pip install --ignore-installed numpy==1.12.0
pip install --ignore-installed scipy==1.1.0
pip install --ignore-installed h5py==2.6.0
pip install clodius==0.9.3
...

I was able to generate multivec output from this combination of packages.

alexpreynolds avatar Nov 02 '18 15:11 alexpreynolds