JohnUrban / poreminion

Additional tools for analyzing Oxford Nanopore minION data
MIT License
17 stars 1 forks source link

h5py unable to open object #1

Open JohnUrban opened 8 years ago

JohnUrban commented 8 years ago

Opened by Jean-Michel Carter.

Dear John,

I have been using your poreminion program but it has recently started giving me errors that seem to be related to h5py. I am using homebrew to manage Python and poretools.

I have tried re-installing poreminion (which seems to do so without any problem) and h5py but I am out of ideas.

Do you have any advice as to what is causing the errors? I have attached the install log and the error output.

$ /usr/local/bin/python2.7 setup.py install
running install
running bdist_egg
running egg_info
creating poreminion.egg-info
writing requirements to poreminion.egg-info/requires.txt
writing poreminion.egg-info/PKG-INFO
writing top-level names to poreminion.egg-info/top_level.txt
writing dependency_links to poreminion.egg-info/dependency_links.txt
writing entry points to poreminion.egg-info/entry_points.txt
writing manifest file 'poreminion.egg-info/SOURCES.txt'
reading manifest file 'poreminion.egg-info/SOURCES.txt'
writing manifest file 'poreminion.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.11-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/poreminion
copying poreminion/__init__.py -> build/lib/poreminion
copying poreminion/basecalldissection.py -> build/lib/poreminion
copying poreminion/dataconc.py -> build/lib/poreminion
copying poreminion/events_tools_pm.py -> build/lib/poreminion
copying poreminion/findTimeErrors.py -> build/lib/poreminion
copying poreminion/findUncalled.py -> build/lib/poreminion
copying poreminion/fragstats.py -> build/lib/poreminion
copying poreminion/fragsummary.py -> build/lib/poreminion
copying poreminion/get_events.py -> build/lib/poreminion
copying poreminion/has2D.py -> build/lib/poreminion
copying poreminion/hdf_fxns.py -> build/lib/poreminion
copying poreminion/info.py -> build/lib/poreminion
copying poreminion/kmer.py -> build/lib/poreminion
copying poreminion/kmerdiff.py -> build/lib/poreminion
copying poreminion/kmerplot.py -> build/lib/poreminion
copying poreminion/numevents.py -> build/lib/poreminion
copying poreminion/nX.py -> build/lib/poreminion
copying poreminion/pct2D.py -> build/lib/poreminion
copying poreminion/poreminion_main.py -> build/lib/poreminion
copying poreminion/quadparsersuite.py -> build/lib/poreminion
copying poreminion/qual_v_pos.py -> build/lib/poreminion
copying poreminion/qualdist.py -> build/lib/poreminion
copying poreminion/robust.py -> build/lib/poreminion
copying poreminion/seqlen.py -> build/lib/poreminion
copying poreminion/staypos.py -> build/lib/poreminion
copying poreminion/version.py -> build/lib/poreminion
copying poreminion/winner.py -> build/lib/poreminion
creating build/lib/poreminion/scripts
copying poreminion/scripts/__init__.py -> build/lib/poreminion/scripts
copying poreminion/scripts/poreminion-script.py -> build/lib/poreminion/scripts
copying poreminion/scripts/getAttributes.sh -> build/lib/poreminion/scripts
creating build/bdist.macosx-10.11-x86_64
creating build/bdist.macosx-10.11-x86_64/egg
creating build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/__init__.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/basecalldissection.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/dataconc.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/events_tools_pm.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/findTimeErrors.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/findUncalled.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/fragstats.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/fragsummary.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/get_events.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/has2D.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/hdf_fxns.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/info.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/kmer.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/kmerdiff.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/kmerplot.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/numevents.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/nX.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/pct2D.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/poreminion_main.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/quadparsersuite.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/qual_v_pos.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/qualdist.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/robust.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
creating build/bdist.macosx-10.11-x86_64/egg/poreminion/scripts
copying build/lib/poreminion/scripts/__init__.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion/scripts
copying build/lib/poreminion/scripts/getAttributes.sh -> build/bdist.macosx-10.11-x86_64/egg/poreminion/scripts
copying build/lib/poreminion/scripts/poreminion-script.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion/scripts
copying build/lib/poreminion/seqlen.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/staypos.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/version.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
copying build/lib/poreminion/winner.py -> build/bdist.macosx-10.11-x86_64/egg/poreminion
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/basecalldissection.py to basecalldissection.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/dataconc.py to dataconc.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/events_tools_pm.py to events_tools_pm.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/findTimeErrors.py to findTimeErrors.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/findUncalled.py to findUncalled.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/fragstats.py to fragstats.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/fragsummary.py to fragsummary.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/get_events.py to get_events.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/has2D.py to has2D.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/hdf_fxns.py to hdf_fxns.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/info.py to info.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/kmer.py to kmer.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/kmerdiff.py to kmerdiff.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/kmerplot.py to kmerplot.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/numevents.py to numevents.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/nX.py to nX.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/pct2D.py to pct2D.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/poreminion_main.py to poreminion_main.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/quadparsersuite.py to quadparsersuite.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/qual_v_pos.py to qual_v_pos.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/qualdist.py to qualdist.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/robust.py to robust.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/scripts/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/scripts/poreminion-script.py to poreminion-script.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/seqlen.py to seqlen.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/staypos.py to staypos.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/version.py to version.pyc
byte-compiling build/bdist.macosx-10.11-x86_64/egg/poreminion/winner.py to winner.pyc
creating build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
installing scripts to build/bdist.macosx-10.11-x86_64/egg/EGG-INFO/scripts
running install_scripts
running build_scripts
creating build/scripts-2.7
copying poreminion/scripts/getAttributes.sh -> build/scripts-2.7
creating build/bdist.macosx-10.11-x86_64/egg/EGG-INFO/scripts
copying build/scripts-2.7/getAttributes.sh -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO/scripts
changing mode of build/bdist.macosx-10.11-x86_64/egg/EGG-INFO/scripts/getAttributes.sh to 755
copying poreminion.egg-info/PKG-INFO -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
copying poreminion.egg-info/SOURCES.txt -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
copying poreminion.egg-info/dependency_links.txt -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
copying poreminion.egg-info/entry_points.txt -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
copying poreminion.egg-info/not-zip-safe -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
copying poreminion.egg-info/requires.txt -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
copying poreminion.egg-info/top_level.txt -> build/bdist.macosx-10.11-x86_64/egg/EGG-INFO
creating dist
creating 'dist/poreminion-0.4.4-py2.7.egg' and adding 'build/bdist.macosx-10.11-x86_64/egg' to it
removing 'build/bdist.macosx-10.11-x86_64/egg' (and everything under it)
Processing poreminion-0.4.4-py2.7.egg
creating /usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg
Extracting poreminion-0.4.4-py2.7.egg to /usr/local/lib/python2.7/site-packages
Adding poreminion 0.4.4 to easy-install.pth file
Installing getAttributes.sh script to /usr/local/bin
Installing poreminion script to /usr/local/bin

Installed /usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg
Processing dependencies for poreminion==0.4.4
Searching for matplotlib==1.5.1
Best match: matplotlib 1.5.1
Adding matplotlib 1.5.1 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for pandas==0.18.1
Best match: pandas 0.18.1
Adding pandas 0.18.1 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for poretools==0.5.1
Best match: poretools 0.5.1
Processing poretools-0.5.1-py2.7.egg
poretools 0.5.1 is already the active version in easy-install.pth
Installing poretools script to /usr/local/bin

Using /usr/local/lib/python2.7/site-packages/poretools-0.5.1-py2.7.egg
Searching for rpy2==2.8.0
Best match: rpy2 2.8.0
Processing rpy2-2.8.0-py2.7-macosx-10.11-x86_64.egg
rpy2 2.8.0 is already the active version in easy-install.pth

Using /usr/local/lib/python2.7/site-packages/rpy2-2.8.0-py2.7-macosx-10.11-x86_64.egg
Searching for h5py==2.6.0
Best match: h5py 2.6.0
Adding h5py 2.6.0 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for pyparsing==2.1.4
Best match: pyparsing 2.1.4
Adding pyparsing 2.1.4 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for cycler==0.10.0
Best match: cycler 0.10.0
Adding cycler 0.10.0 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for python-dateutil==2.5.3
Best match: python-dateutil 2.5.3
Adding python-dateutil 2.5.3 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for pytz==2016.4
Best match: pytz 2016.4
Adding pytz 2016.4 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for numpy==1.11.0
Best match: numpy 1.11.0
Adding numpy 1.11.0 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for seaborn==0.7.1
Best match: seaborn 0.7.1
Processing seaborn-0.7.1-py2.7.egg
seaborn 0.7.1 is already the active version in easy-install.pth

Using /usr/local/lib/python2.7/site-packages/seaborn-0.7.1-py2.7.egg
Searching for singledispatch==3.4.0.3
Best match: singledispatch 3.4.0.3
Processing singledispatch-3.4.0.3-py2.7.egg
singledispatch 3.4.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python2.7/site-packages/singledispatch-3.4.0.3-py2.7.egg
Searching for six==1.10.0
Best match: six 1.10.0
Adding six 1.10.0 to easy-install.pth file

Using /usr/local/lib/python2.7/site-packages
Searching for scipy==0.17.1
Best match: scipy 0.17.1
Processing scipy-0.17.1-py2.7-macosx-10.11-x86_64.egg
scipy 0.17.1 is already the active version in easy-install.pth

Using /usr/local/lib/python2.7/site-packages/scipy-0.17.1-py2.7-macosx-10.11-x86_64.egg
Finished processing dependencies for poreminion==0.4.4

$ poreminion uncalled -m -o fail_uc lambda_burn_fail_104191_2D/
Traceback (most recent call last):
  File "/usr/local/bin/poreminion", line 9, in <module>
    load_entry_point('poreminion==0.4.4', 'console_scripts', 'poreminion')()
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/poreminion_main.py", line 1066, in main
    args.func(parser, args)
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/poreminion_main.py", line 62, in run_subtool
    submodule.run(parser, args)
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/findUncalled.py", line 83, in run
    log=fast5.hdf5file["/Analyses/Basecall_2D_000/Log"].value
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2687)
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2645)
  File "/usr/local/lib/python2.7/site-packages/h5py/_hl/group.py", line 166, 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 (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2687)
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2645)
  File "h5py/h5o.pyx", line 190, in h5py.h5o.open (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/h5o.c:3573)
KeyError: 'Unable to open object (Component not found)'
JohnUrban commented 8 years ago

Thanks for your interest in poreminion. Poreminion was designed on older sets of fast5 files. Since ONT changes the internal structure of the fast5 files fairly often, poreminion breaks with newer fast5 files. I think the last time I worked on it was about a year ago -- so it will mainly work on older data. I have been developing another set of nanopore data tools called fast5tools (https://github.com/JohnUrban/fast5tools) that has the flexibility to work with fast5s from the earliest days of MAP all the way until now. It does not have all the functionality of poreminion, but has most of the standard useful things and maybe some other things.

Having said that, another issue with the fast5 files is they seem easily corruptible. After moving files or tarring and untarring fast5 directories, I have noticed that 1 or a couple fast5s in the pass folder will all of a sudden be corrupted and will not open. To discern whether this is an hdf5 problem, and h5py, or poreminion problem, do the following in terminal - for the file in question:

h5fump file.fast5
or
h5dump -n 1 file.fast5

p.s. for now, if relevant, please cite the following for poreminion and/or fast5tools: https://github.com/JohnUrban/poreminion and/or https://github.com/JohnUrban/fast5tools and

Urban, J. M., Bliss, J., Lawrence, C. E. & Gerbi, S. A.
Sequencing ultra-long DNA molecules with the Oxford Nanopore MinION.
bioRxiv (Cold Spring Harbor Labs Journals, 2015). doi:10.1101/019281
http://biorxiv.org/content/early/2015/05/20/019281

This paper contains the first descriptions and uses of poreminion.

JeanMiCarter commented 8 years ago

I actually used poreminion uncalled successfully on the fast5 files before (lambda_burn). Only when I started getting trouble with other files did I re-test with these lambda_burn files and poreminion gave the same error.

The h5dump command result is attached. h5dump.txt

I doesn't seem like the fast5 files are corrupted then? Perhaps an h5py update is causing the issue?

JohnUrban commented 8 years ago

Can you share a problematic fast5 file?

JohnUrban commented 8 years ago

I can reproduce your issue on files that have no 2D and no 1D information -- but filled out with information otherwise -- and with completely empty fast5 files. It seems to give the error on files that are not base-called as well -- which is something that I should make sure it catches.

JeanMiCarter commented 8 years ago

I think I have narrowed down the problem to a couple of FAST5 files that were previously flagged as having time errors. Does this mean the time error check should be run before the uncalled test?

Problem Files

JohnUrban commented 8 years ago

In the biorxiv preprint, it shows that I did the following order:

$ poreminion uncalled -m -o fail-filter fail/
$ poreminion timetest -m -o fail-filter fail/

Noting that the pass folder should never need to be filtered. If you find problems in the pass folder you should bring it up with ONT right away so they can fix their base-caller/etc.

I am very curious as to what version of MinKNOW and Metrichor you are using. The "time error" problem was claimed to have been solved a long time ago. At least a year and a half ago. I did not find time errors in a lot of my data since ONT told me that -- such that at some point I didn't bother to look any more (since it is a very time consuming step). Are you finding time errors in newer data?

JohnUrban commented 8 years ago

Both of the files you sent have "No template data found" in their logs. If poreminion did not label them as such it is almost certainly because ONT has changed the log locations in the HDF5 files since I last worked on poreminion. They change the internal structure of fast5s fairly frequently -- which was my main motivation for starting over with fast5tools. The goal is for fast5tools to be able to be robust to changes. I saw the logs with:

fast5stats BSPC_15090L_lambda_0127_1_ch332_read112_strand.fast5 
fast5stats BSPC_15090L_lambda_0127_1_ch352_read73_strand.fast5 

It is under active development and the syntax may change to fast5tools stats ….. I am undecided as to whether I want it to follow the command subcommand [options] format or just be a set of various different scripts.

Instead of filtering now, I just run something like:

fast5stats -s -e errorfiles.txt pass/ fail/ > stats.txt

The file called errorfiles.txt will show all the files that gave problems. The other scripts will just ignore the problematic files so they can be left where they are.

JeanMiCarter commented 8 years ago

Right, yes I was following the biorxiv preprint. I'll check the versions but should be the latest ones, the run was done a few weeks ago. I also just ran the poreminion seqlen command on the pass folder and got a similar error:

poreminion seqlen pass.fast5.tar
Traceback (most recent call last):
  File "/usr/local/bin/poreminion", line 9, in <module>
    load_entry_point('poreminion==0.4.4', 'console_scripts', 'poreminion')()
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/poreminion_main.py", line 1066, in main
    args.func(parser, args)
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/poreminion_main.py", line 62, in run_subtool
    submodule.run(parser, args)
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/seqlen.py", line 15, in run
    print_seq_name_and_length(f5, gettemp=gettemp, getcomp=getcomp, get2d=get2d)
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/info.py", line 45, in print_seq_name_and_length
    print name + "template\t" + str(get_seq_len(f5, readtype="template"))
  File "/usr/local/lib/python2.7/site-packages/poreminion-0.4.4-py2.7.egg/poreminion/info.py", line 34, in get_seq_len
    return f5connection[path].attrs["sequence_length"]
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2687)
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2645)
  File "/usr/local/lib/python2.7/site-packages/h5py/_hl/group.py", line 166, 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 (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2687)
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2645)
  File "h5py/h5o.pyx", line 190, in h5py.h5o.open (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/h5o.c:3573)
KeyError: "Unable to open object (Object 'basecall_1d_template' doesn't exist)"
JohnUrban commented 8 years ago

The fast5stats from fast5tools will give you all seqlen information. However you can also try another fast5tools script:

fast5tofastx -r $READTYPE -o details pass/ fail/ > seqlens.txt
JohnUrban commented 8 years ago

If you downloaded fast5tools in the past few days or so and had trouble, that is because we made some large packaging changes that broke all the scripts in the same way. I just found that out when I tried to use it. All should be fixed now though -- re-download it if necessary. If you have trouble with fast5tools, please report the issue over there. I will take care of it ASAP.