Menu

#324 Floating point exception -- Unitig coverage stat computation failed

consensus
open
nobody
None
5
2015-09-16
2015-09-02
Carlos Cano
No

Hello,

I am running PBcR to assembly a H. sapiens mitochrondrion, but computeCoverageStat fails with a 'Floating point exception'. A chunk of the log follows. Any clues on how to fix/avoid this problem?
Thanks,
Best,

  • Carlos

----------------------------------------START Wed Sep 2 03:37:46 2015
$WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat \
-g $WGS/wgs-8.3rc2/Linux-amd64/bin/PacBioTest/asm.gkpStore \
-t $WGS/wgs-8.3rc2/Linux-amd64/bin/PacBioTest/asm.tigStore 5 \
-s 0 \
-o $WGS/wgs-8.3rc2/Linux-amd64/bin/PacBioTest/5-consensus-coverage-stat/asm \

$WGS/wgs-8.3rc2/Linux-amd64/bin/PacBioTest/5-consensus-coverage-stat/computeCoverageStat.err 2>&1
----------------------------------------END Wed Sep 2 03:37:46 2015 (0 seconds)
ERROR: Failed with signal FPE (8)
================================================================================

runCA failed.


Stack trace:

at $WGS/wgs-8.3rc2/Linux-amd64/bin/runCA line 1628.
main::caFailure('Unitig coverage stat computation failed', '$WGS/wgs-8.3rc2/Linux-amd64/bin/Pa...') called at $WGS/wgs-8.3rc2/Linux-amd64/bin/runCA line 4891
main::postUnitiggerConsensus() called at $WGS/wgs-8.3rc2/Linux-amd64/bin/runCA line 6259


Last few lines of the relevant log file ($WGS/wgs-8.3rc2/Linux-amd64/bin/PacBioTest/5-consensus-coverage-stat/computeCoverageStat.err.FAILED):

Failed with 'Floating point exception'

Backtrace (mangled):

$WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat(_Z17AS_UTL_catchCrashiP9siginfo_tPv+0x2a)[0x42c28a]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10340)[0x7fb15ac8e340]
$WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat(_Z20getGlobalArrivalRateP15MultiAlignStoreP8_IO_FILEmb+0x5d6)[0x40a8a6]
$WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat(main+0x580)[0x407b70]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fb15a8daec5]
$WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat[0x40843d]

Backtrace (demangled):

[0] $WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat::AS_UTL_catchCrash(int, siginfo_t, void) + 0x2a [0x42c28a]
[1] /lib/x86_64-linux-gnu/libpthread.so.0::(null) + 0x10340 [0x7fb15ac8e340]
[2] $WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat::getGlobalArrivalRate(MultiAlignStore, _IO_FILE, unsigned long, bool) + 0x5d6 [0x40a8a6]
[3] $WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat::(null) + 0x580 [0x407b70]
[4] /lib/x86_64-linux-gnu/libc.so.6::(null) + 0xf5 [0x7fb15a8daec5]
[5] $WGS/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat() [0x40843d]

GDB:

Floating point exception (core dumped)


Failure message:

Unitig coverage stat computation failed

----------------------------------------END Wed Sep 2 03:37:46 2015 (23 seconds)
Failed to execute $WGS/wgs-8.3rc2/Linux-amd64/bin/runCA -s $WGS/wgs-8.3rc2/Linux-amd64/bin/PacBioTest//tempPacBioTest.spec -p asm -d PacBioTest ovlRefBlockLength=100000000000 ovlRefBlockSize=0 useGrid=0 scriptOnGrid=0 unitigger=bogart ovlErrorRate=0.03 utgErrorRate=0.025 cgwErrorRate=0.1 cnsErrorRate=0.1 utgGraphErrorLimit=0 utgGraphErrorRate=0.025 utgMergeErrorLimit=0 utgMergeErrorRate=0.025 frgCorrBatchSize=100000 doOverlapBasedTrimming=1 obtErrorRate=0.03 obtErrorLimit=4.5 frgMinLen=3000 ovlMinLen=100 "batOptions=-RS -NS -CS" consensus=pbutgcns merSize=22 cnsMaxCoverage=1 cnsReuseUnitigs=1 gridEnginePropagateHold="pBcR_asm" PacBioTest.longest25.frg

Command exited with non-zero status 1

Discussion

  • Brian Walenz

    Brian Walenz - 2015-09-04

    Hi-

    Looking at the code, there are a few places where a divide-by-zero could occur, but (I think) those would only happen if you got no assembly.

    Are there any logs - or any non-empty files at all - in the 5-consensus-coverage-stat directory? Those could give a clue as to where it is failing, and maybe why.

    What does 'tigStore -g asm.gkpStore -t asm.tigstore 2 -U -d sizes' report? That will be the size of the unitigs in your assembly. (Give it '-s <genome-size-in-bases>' to get the N50 sizes correctly computed, otherwise, it just sums the bases present.) Is the report for '-t asm.tigStore 5' (opposed to '2') radically different? These are the 'final' unitigs, after some minor cleanup and maybe splitting.</genome-size-in-bases>

     
  • Carlos Cano

    Carlos Cano - 2015-09-06

    Thanks Brian for your reply.

    Are there any logs - or any non-empty files at all - in the 5-consensus-coverage-stat directory? Those could give a clue as to where it is failing, and maybe why.

    The files in this directory are empty:

    -rw-rw-r-- 1 carlos carlos 0 sep 3 04:13 asm.cga.0
    -rw-rw-r-- 1 carlos carlos 0 sep 3 04:13 asm.log
    -rw-rw-r-- 1 carlos carlos 0 sep 3 04:13 asm.stats
    -rw-rw-r-- 1 carlos carlos 1,4K sep 3 04:13 computeCoverageStat.err.FAILED

    Except computeCoverageStat.err.FAILED which contains the backtraces shown in the previous post.

    What does 'tigStore -g asm.gkpStore -t asm.tigstore 2 -U -d sizes' report? That will be the size of the unitigs in your assembly. (Give it '-s <genome-size-in-bases>' to get the N50 sizes correctly computed, otherwise, it just sums the bases present.) Is the report for '-t asm.tigStore 5' (opposed to '2') radically different? These are the 'final' unitigs, after some minor cleanup and maybe splitting.</genome-size-in-bases>

    The tigStore commands returned:

    MultiAlignStore::MultiAlignStore()-- ERROR, didn't find any unitigs or contigs in the store.

    Thus, there are no unitigs.

    Any suggestions on how to obtain an assembly in this case?

    I'm trying to obtain an assembly to circularize a mt genome, as shown in Hunt et al. - bioRxiv 2015 - Circlator: automated circularization of genome assemblies[...]. I have ~5.000X average coverage for a mt genome, and used PBcR with options -maxCoverage 1000 -length 500 -partitions 200 -genomeSize 16569 as described in this work (page 10).

    Thanks.

     

    Last edit: Carlos Cano 2015-09-06
  • Brian Walenz

    Brian Walenz - 2015-09-07

    Interesting. I'll try to reproduce here. Are you using their 'additional file 3', or did you generate new data following the recipe on page 10?

     
  • Brian Walenz

    Brian Walenz - 2015-09-09

    How did you end up with 5000x coverage? Their 'corrected_reads.fasta' (for Human) results in two 20k unitigs with 200x coverage.

    When we assemble big genomes with pacbio, we typically only assemble the longest 25-50x coverage of the reads. Sample down to 100x.

    I'm somewhat interested in why there aren't any unitigs generated, but I kind-of already know what happened. Can you share the input reads and/or the gkpStore and ovlStore (and the bogart file from runCA-logs/)?

     
  • ebioman

    ebioman - 2015-09-16

    Hello
    I hope it is fine if I join this thread. I am encountering the same error but outside of the circulator.
    I attempted to run the PBcR pipeline on a dataset which is contaminated with another organism which has a much lower coverage though. I therefore wanted to use more data then 25X and attempted to run as in your wiki the error correction and assembly seperately.

    Failed with 'Floating point exception'

    Backtrace (mangled):

    /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat(_Z17AS_UTL_catchCrashiP9siginfo_tPv+0x2a)[0x4293ba]
    /software/lib64/libpthread.so.0(+0x10700)[0x7fe8ea21e700]
    /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat(_Z20getGlobalArrivalRateP15MultiAlignStoreP8_IO_FILEmb+0x390)[0x409fa0]
    /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat(main+0x5f6)[0x407c66]
    /software/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fe8e9e680e0]
    /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat[0x408589]

    Backtrace (demangled):

    [0] /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat::AS_UTL_catchCrash(int, siginfo_t, void) + 0x2a [0x4293ba]
    [1] /software/lib64/libpthread.so.0::(null) + 0x10700 [0x7fe8ea21e700]
    [2] /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat::getGlobalArrivalRate(MultiAlignStore, _IO_FILE, unsigned long, bool) + 0x390 [0x409fa0]
    [3] /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat::(null) + 0x5f6 [0x407c66]
    [4] /software/lib64/libc.so.6::(null) + 0xf0 [0x7fe8e9e680e0]
    [5] /stn4/ul/monthly/eschmid/wgs-8.3rc2/Linux-amd64/bin/computeCoverageStat() [0x408589]

    GDB:

    all files in the "/5-consensus-coverage-stat" folder are empty.

    Similarly there are no unitigs:

    tigStore -g asm.gkpStore -t asm.tigstore 2 -U -d sizes
    MultiAlignStore::MultiAlignStore()-- ERROR, didn't find any unitigs or contigs in the store.
    MultiAlignStore::MultiAlignStore()-- asked for store 'asm.tigstore', correct?
    MultiAlignStore::MultiAlignStore()-- asked for version '2', correct?
    MultiAlignStore::MultiAlignStore()-- asked for partition unitig=0 contig=0, correct?
    MultiAlignStore::MultiAlignStore()-- asked for writable=0 inplace=0 append=0, correct?

    This is very surprising as I obtained an assembly when using the entire PBcR pipeline in one step using only the 25X coverage.

    My workflow:

    less PacBio.specs
    ovlMemory = 820
    ovlStoreMemory= 820000
    merylMemory = 820000
    assemble=0

    1.

    PBcR -length 800 -libraryname HY3noAss -threads 30 -genomeSize 8000000 -s PacBio.specs -fastq HY3_good_noHG.fastq

    2nd.

    gatekeeper -T -F -o asm.gkpStore tempHY3noAss/HY3noAss.frg
    gatekeeper -dumpfrg -longestlength 0 960000000 asm.gkpStore > HY32noAss_8kb.frg

    3rd

    runCA unitigger=bogart utgGraphErrorRate=0.05 utgGraphErrorLimit=3.25 \
    utgMergeErrorRate=0.05 utgMergeErrorLimit=5.25batOptions="-NS -RS -CS" obtErrorRate=0.08\
    obtErrorLimit=4.5 -d NEWATTEMPT -p HY328KB HY32noAss_8kb.frg

    Is there otherwise as well the possibility to provide the longestlength option in the spec file?

     

Log in to post a comment.