FU Logo
  • Startseite
  • Kontakt
  • Impressum
  • Home
  • Listenauswahl
  • Anleitungen

[Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment

<-- thread -->
<-- date -->
  • 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
<-- thread -->
<-- date -->
  • Follow-Ups:
    • Re: [Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment
      • From: Rahn, René <rene.maerker@fu-berlin.de>
  • 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...

Hilfe

  • FAQ
  • Dienstbeschreibung
  • ZEDAT Beratung
  • postmaster@lists.fu-berlin.de

Service-Navigation

  • Startseite
  • Listenauswahl

Einrichtung Mailingliste

  • ZEDAT-Portal
  • Mailinglisten Portal