[Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment
- From: Brett Bowman <bnbowman@gmail.com>
- To: SeqAn Development <seqan-dev@lists.fu-berlin.de>
- Date: Thu, 21 Jan 2016 12:49:47 -0800
- Reply-to: SeqAn Development <seqan-dev@lists.fu-berlin.de>
- Subject: [Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment
I'm using Banded aligner to find potentially low-quality but important spike-in control alignments from single-molecule sequencing data (PacBio, Oxford Nano). When these potential alignments turn out to be junk, bandedAlignment is sometimes either failing on an assert (Debug) or just out-right seg-faulting (Release), instead of getting the expected junk alignment or graceful failure I would expect.
As it stands, I've implemented some filters to toss these low-quality seed-chains out before alignment, but it would be preferable if I didn't have to worry about the aligner crashing at all...
Sample Error Message:
"""
/home/UNIXHOME/bbowman/p4/depot/software/smrtanalysis/bioinformatics/third-party/cpp/seqan-library-2.0.0/include/seqan/seeds/banded_chain_alignment_traceback.h:195 Assertion failed : isGlued == true was: 0 != 1 (Fatal error while trying to connect trace backs: No glue point available!)
"""
Sample Test Data/Code:
"""
#include <seqan/seeds.h>
#include <seqan/journaled_set/score_biaffine.h>
// Type-defs used
typedef seqan::Dna TAlphabet;
typedef seqan::String<TAlphabet> TString;
typedef seqan::Seed<seqan::Simple> TSeed;
typedef seqan::String<TSeed> TSeedChain;
typedef seqan::AlignConfig<true, true, true, true> TAlignConfig;
typedef seqan::Align<TString, seqan::ArrayGaps> TAlign;
typedef seqan::Score<long, seqan::BiAffine> TScoringScheme;
// Variables used
const TString query = "AAAGAGAGAGAGAGAGAGGGAAAAGAAGGAAAGGGAAAAGGAGAAGGGAGGGAAAAAGAAAGAAAGAAGAAAAGAGAGGGAAAAGAGGAAGAAGAAAGGGAGGGGAAGAGGAAGAGGGAGAGGAGAGAAGGAGAGGAGGAAGAAAAAAAAAAGAGAAAAGGGGAGGAGAGGAGAAAGGAAGAAGGGGAAAAGAGGGGAGAGGAAGGAGAAGAGGAAAGAAAAAAAAGGAGAGAAAGGGAAGGAGAAAAGAGGAAGGAGGAGAGAAGAAAGAAAGAGGAGAAAAGAGAAGGAAAAAGAAAGGAAGGAGGGAGAGGAGAGAGGAGAAAAGAAAAGGGAAAAGAAAAAGGAAAGAAAAAGAAAGGAAAAAGAAAGAGAAGAAAAGGAAAAAGAGAAGGGAGGAAAAGAGGAAGAGGAGAAAAAAAAAGGGAGAAAAAAGAGAAAAGGGAGGAAGAAAAGAAAAAAGGAGGGAGGAGAAAGAAAGAGAAAGAAAGAGGGGAGAAGAAGAGGAAGGAAGGGAGAGAAAGAGGAAAAAAAGGGAAAGAGGAGAGGAAAGAGGAGAGAAAGAGGAAAGAAGAAAAGAGAAAAAAAAAAAAGAAGAAGAGAAGAAAAAAAGAAAAAGGGAAAAAGAAGAGGGAAAGGAAAAGAGAAGAGAAAGGGAGAGGAAAAGAGAGAAAGAGAAAAGAGGAAAAAAAAGAGAGGAAGGAGGAAAAGAAAAAAAGGAA";
const TString ref = "AAAGAGAGAGAGAAGGCTGGGCAGGCTATGCACCCTGGTCCAGGTCAAAAGCTGCGGAACCCGCTAGCGGCCATCTTGGCCACTAGGGGTCCCGCAGATTCATATTGTCGTCTAGCATGCACAATGCTGCAAACCCAGCTTGCAATGCCCACAGCAAGCGGCCAATCTTTACGCCACGTTGAATTGTTTATTACCTGTGACTGGCTATGGCTTGCAACGCCACTCGTAAAACTAGTACTTTGCGGTTAGGGGAAGTAGACAAACCCATTACTCCACTTCCCGGAAGTTCAACTCATTCCAACACGAAATAAAAGTAAACTCAACACCCCAAGCAGGCTATGTGGGGGGGTGATAGGGGTGGATTCTATTTCCTATCCCATCCCCTAGGATCTCAATTAAGTTACTAGCGAGTTAAATGTCTGTAGCGATCCCGTCAGTCCTATCGCGCGCATCAAGACCTGGTTGGTTGAGCGTGCAGTAGATCATCGATAAGCTGCGAGTTAGGTCATCCCAGACCGCATCTGGCGCCTAAACGTTCAGTGGTAGCTAAGGCGTCACCTTCGACTGTCTAAAGGCAATATGTCGTCCTTAGCTCCAAGTCCCTAGCAAGCGTGTCGGGTCTCTCTCAACAACAACAACGGAGGAGGAGGAAAAGAGAGAGACCCGACACGCTTGCTAGGGACTTGGAGCTAAGGACGACATATTGCCTT";
const TScoringScheme scoringScheme = TScoringScheme(5, -6, -4, -4, -5, -5);
const TAlignConfig alignConfig = TAlignConfig();
//Seed String of Type: Shift 1
//Seed #1 Seed<Simple, TConfig>(1, 1, 13, 13, lower diag = 0, upper diag = 0)
//Seed #2 Seed<Simple, TConfig>(660, 648, 672, 660, lower diag = 12, upper diag = 12)
int main(int argc, char** argv)
{
// Seed chain
TSeedChain chain;
seqan::appendValue(chain, TSeed(1, 1, 13));
seqan::appendValue(chain, TSeed(660, 648, 12));
// Alignment
TAlign align;
seqan::resize(seqan::rows(align), 2);
seqan::assignSource(seqan::row(align, 0), query);
seqan::assignSource(seqan::row(align, 1), ref);
bandedChainAlignment(align, chain, scoringScheme, alignConfig, 15);
return 0;
}
"""
Sincerely,
Brett
- Follow-Ups:
- Re: [Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment
- From: Rahn, René <rene.maerker@fu-berlin.de>
- Re: [Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment
-
seqan-dev - January 2016 - Archives indexes sorted by:
[ thread ] [ subject ] [ author ] [ date ] - Complete archive of the seqan-dev mailing list
- More info on this list...