skovaka / UNCALLED

Raw nanopore signal mapper that enables real-time targeted sequencing
MIT License
520 stars 44 forks source link

Floating point exception #43

Closed hasindu2008 closed 2 years ago

hasindu2008 commented 2 years ago

Hi, I am trying to map some raw signals in FAST5 to a tiny reference of a few hundred bases. However, I am getting a floating-point exception. The following is what I did. Likely that I am doing something stupid :D Any help on this is appreciated.

uncalled index -o rfc1 rfc1.fa uncalled map -t40 rfc1 f5.list > uncalled.paf

Loading fast5s
Mapping
Floating point exception (core dumped)
skovaka commented 2 years ago

Sorry about that! Does it return the same error if you try mapping different fast5s to the same reference? What about if you map the same fast5s to a larger reference? In either case don't worry if the reads shouldn't map, just trying to narrow down where the error might be. My guess is that the small reference size could be an issue

hasindu2008 commented 2 years ago

It is 128,920 bases. Is that too small?

I now tried to mapping to a yeast genome and still I am getting the same issue

 uncalled map -t40  ../../sigalign/GCF_000146045.2_R64_genomic f5.list > uncalled.paf
Loading fast5s
Mapping
Floating point exception (core dumped)

My FAST5 list look like this:

(uncalled) hasindu@genometech-gpgpu:~/scratch/haru/rfc1$ head f5.list
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_103.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_119.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_102.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_6.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_24.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_83.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_98.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_51.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_25.fast5
/data/slow5-testdata/NA12878_prom_subsample/fast5/NA12878_SRE/20201027_0537_3A_PAF25452_97d631c6/fast5_pass/PAF25452_pass_bfdfd1d8_21.fast5
skovaka commented 2 years ago

Ah, it looks like you're using promethion data, right? I just tested on some promethion reads and got the same error. It appears to be an issue with signal calibration, which I think I've now fixed and pushed in ca13a22. Let me know if that works!

Also, if you attempt adaptive sampling or simulation (realtime or sim) with promethion data, you may run into an issue with the number of available channels. If so you should set the --num-channels channels option to the number of promethion channels (something like 3000 I believe).

hasindu2008 commented 2 years ago

Sorry for the late response. I have been having trouble installing the particular UNCALLED commit due to all the python3 dependency issues and version incompatibilities I believe. What I tried was: pip3 install git+https://github.com/skovaka/UNCALLED.git@ca13a222ec978d5299f34bf06e99aabcf6cd3a46. Is there a way to just get the C/C++ component in uncalled compiled without these Python bindings?

skovaka commented 2 years ago

Did you try cloning and installing with pip3 install .? I just realized that the README still said to use python setup.py install" but pip might work better with dependencies and I just updated the README to recommend that. I didn't change dependencies or anything in setup.py since the last commit though, so not sure what the issue is.

You can also run make to generate a bin/uncalled_map binary. I wrote that for testing purposes and it has a more limited and poorly documented interface. Like uncalled map it takes two positional arguments, ref_index and fast5s, although the fast5 input is more limited in that it must be a file containing the path to each fast5 on each line.

hasindu2008 commented 2 years ago

Right, that was quite easy to compile and it works. Thanks. Every time I tried UNCALLED I always ran into a Python dependency issue. I think it is worth documenting how to use the C/C++ programmes :D

hasindu2008 commented 2 years ago

BTW, a side question. I saw in NCM last year about that UNCALLED4 visualisation tool. Is this available somewhere in this repository?

skovaka commented 2 years ago

Yes! It's on the uncalled4 branch. It's still under development, so command arguments and the database format might change in the future. If you have any questions or thoughts feel free to email me at "skovaka1 \ jhu \ edu"

Thanks for pointing out the dependency issue, I'll look into that