mahulchak / quickmerge

A simple and fast metassembler and assembly gap filler designed for long molecule based assemblies.
GNU General Public License v3.0
200 stars 31 forks source link

errors on libc++abi.dylib #12

Closed tuanaduong closed 8 years ago

tuanaduong commented 8 years ago

Hi there,

I tried to run quickmerge to combine hybrid assembly (using spades) with pacbio only assembly (using canu) and got the following error message: libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: basic_string

The first two steps look fine, without any error messages. This was produced at the last step using quickmerge. Do you have an idea how can I fix this?

I also tried with the python wrapper script and got a different error message.

I attached the full log file and the commands used if you want to have a look. merge_wrapper_errors.txt quickmerge_errors.txt

Thanks Tuan

ellieearmstrong commented 8 years ago

Hi-funny timing. I am also getting the same error using the manual approach on the last step:

terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr

Any help is appreciated, thanks!

mahulchak commented 8 years ago

The error is most likely caused by the line breaks present in the fasta sequences of the canu assembly (I am not sure what spades produces but DBG2OLC produces single line fasta). Quickmerge currently accepts only fasta files in which sequences are present in single line. The wrapper is supposed to take care of the line breaks issue. We are investigating why it failed to do so.

If you are able to remove the sequence line breaks from the canu assembly, then quickmerge should run fine.

Additionally, if the sequence names have white space in them (as canu and Falcon outputs do), they should be removed before nucmer is run.

jgbaldwinbrown commented 8 years ago

Hi all,

Based on tuanadong's merge_wrapper.py output, I think I've figured out the problem. It is probably the case that there is something about your fasta formatting that quickmerge has a problem with, and that the wrapper will fix. Thus, I recommend using the wrapper program.

As for the wrapper program, the error that you are getting seems to be related to calling the external 'quickmerge' program. I was able to replicate your error by running the wrapper program without having 'quickmerge' in my PATH. To fix this, I think you just need to make sure that 'nucmer', 'delta-filter', and 'quickmerge' are in your PATH. On a unix system, you should be able to do that with bash commands that look like this:

export PATH=$PATH:/path/to/folder/containing/program

Good luck, and let me know if that fixes the problem so I can close this issue.