Hi,
I just got this error which I haven't seen before. I've attached the output from 8-consensus below. This is from a relatively low coverage sequencing (15-20x) assembly, and I've used mostly default options and the CVS from Sept 7th.
In addtion, I've gotten this error in scaffolding on a much larger dataset. This is a bit more complicated case. I first got this error (on CVS from August31):
isQualityScaffoldMergingEdge()-- Merge scaffolds 333113 (32783.1bp) and 351057 (42407.6bp): gap -555.0bp +- 81.4bp weight 56 AB_BA edge
cgw: CIScaffoldT_Analysis.C:323: void instrumentSCF::analyze(std::__cxx1998::vector<instrumentLIB>&): Assertion `frg.end > mrg.bgn' failed.
I've seen it before, but didn't do anything about it. This time I commented out the assertion and restarted the scaffolding (with Sept 7th CVS). When the scaffolding was at step ckp11-PS, I got this error:
RemoveSurrogateDuplicates()-- Remove surrogate CI=16430587 from contig=17874402
insertMultiAlign()-- ERROR: multialign 1300624736 has invalid fragment/unitig layout -- exceeds bounds of consensus sequence.
cgw: MultiAlignStore.C:321: void MultiAlignStore::insertMultiAlign(MultiAlignT*, bool, bool): Assertion `GetMultiAlignLength(ma) <= GetMultiAlignLength(ma, true)' failed.
Which is quite similar to the one above. I guess this is because of removing the 'frg.end > mrg.bgn' assertion, but how do I fix both cases?
The first assert was fixed on the 4th (version 1.3 of CIScaffoldT_Analysis.C and .H). Skipping the assert shouldn't cause problems. The code in question is just computing mate pair happiness.
The second assert was added on the 29th to catch bad layouts in unitig inputs. If this is something you can rerun quickly, I can add some debugging. And if it is very quick, a stack trace would help.
Oh! You're in contig consensus. That makes things easier.
Run just that contig (-c 17077723) with debugging (-V -V -V).
I ran 'ctgcns -g *gkpStore -t *tigStore 15 85 -c 17077723 -V -V -V' for the first case, and this is the last output (file was too large to upload):
DP_Compare found overlap between 479880 (U) and 36469450 (R) ahang: 13, bhang: -112 (expected hang was 13)
Alignment params: -5 31 200 200 0 0.12 1e-06 30 1
-- e/l = 0/138 = 0.00%
A -----+------+----> []
B 13 -------> 112 []
GetAlignmentTraceDriver()-- Attempting alignment of afrag 479880 (U) and bfrag 39048003 (R) with ahang 0 and erate 0.0600 (DP_Compare)
GetAlignmentTrace()-- Overlap ACCEPTED! accept=0.100000 lScore=0.000000 (150 vs 150) aScore=0.000000 (0 vs 0) bScore=0.370000 (-113 vs -150). (CONTIGF)
GetAlignmentTrace()-- Overlap found between 479880 (U) and 39048003 (R) expected hangs: a=0 b=-150 erate=0.060000 aligner=DP_Compare
GetAlignmentTrace()-- Overlap ACCEPTED! accept=0.100000 lScore=0.000000 (150 vs 150) aScore=0.000000 (0 vs 0) bScore=0.370000 (-113 vs -150). (CONTIGF)
GetAlignmentTrace()-- Overlap accepted. accept=0.100000 lScore=0.000000 (150 vs 150) aScore=0.000000 (0 vs 0) bScore=0.370000 (-113 vs -150).
DP_Compare found overlap between 479880 (U) and 39048003 (R) ahang: 0, bhang: -113 (expected hang was 0)
Alignment params: -18 18 200 200 0 0.12 1e-06 30 1
-- e/l = 0/150 = 0.00%
A -----+------+----> []
B 0 -------> 113 []
insertMultiAlign()-- ERROR: multialign 17121920 has invalid fragment/unitig layout -- exceeds bounds of consensus sequence.
ctgcns: MultiAlignStore.C:321: void MultiAlignStore::insertMultiAlign(MultiAlignT*, bool, bool): Assertion `GetMultiAlignLength(ma) <= GetMultiAlignLength(ma, true)' failed.
For the second case, it is in later stages of scaffolding, so if you can add some debugging code or some more information of what I should do, that'd be great.