yangao07 / abPOA

abPOA: an SIMD-based C library for fast partial order alignment using adaptive band
MIT License
118 stars 18 forks source link

Backtrack errors when trying different scoring matrices #79

Open glennhickey opened 4 weeks ago

glennhickey commented 4 weeks ago

Hi, I'm experimenting with different scoring matrices. I'm finding that while I often get the desired results on the example I'm looking at, when I try running a non-trivial amount of data I invariably end up with a crash like

[simd_abpoa_align_sequence_to_subgraph] Error in cg_backtrack.

Here's an example to quickly reproduce

https://public.gi.ucsc.edu/~hickey/debug/abpoa_fail_oct29/

(run either of the commmmands in the .cmd files).

Is there something is wrong with my scoring parameters? Are there any constraints on the relative values being used that I should be aware of?

This is in the context of this cactus PR which seeks to automatically learn the parameters from the input data...

thanks!

yangao07 commented 4 weeks ago

The parameters are fine. I think this is a bug related to the banding part. I will try to fix it this week.

For your example data, I see this error with ap_in_103573708200432.fa and ap_in_106890945295296.fa, but not with others. Is this the same on your side?

glennhickey commented 4 weeks ago

Thanks so much for looking at this.

You're right, the error only reproduces with those two. The others (with the full paths in the .cmd files) I added after from a failed run on another machine, but they all seem fine. I've removed them from the directory -- sorry about that. Hopefully the two examples are enough for you to resolve the issue.. Thanks again.

yangao07 commented 4 weeks ago

A quick fix (add820b) was pushed, although I am not sure how this overflow happens yet. Let me know if this passes the test or not.

glennhickey commented 4 weeks ago

wow, that was fast, thanks!!! I confirm that this patch resolves all crashes on the failing dataset I used to make this issue (yeast chrI as it happens). I will put it into my branch and start a much bigger test on human data, and report any findings back here.