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

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

<-- thread -->
<-- date -->
  • From: Rahn, René <rene.maerker@fu-berlin.de>
  • To: SeqAn Development <seqan-dev@lists.fu-berlin.de>
  • Date: Fri, 22 Jan 2016 09:54:54 +0100
  • Reply-to: SeqAn Development <seqan-dev@lists.fu-berlin.de>
  • Subject: Re: [Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment

Thanks for reporting this issue.
I take a look at it as soon as possible.
Please follow the following issue that I opened for this matter: https://github.com/seqan/seqan/issues/1357
I would like to ask you to request problems like this using our ticket tracker on github in the future: https://github.com/seqan/seqan/issues

Kind regards,

René Rahn

On 21 Jan 2016, at 21:49, Brett Bowman <bnbowman@gmail.com> wrote:

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
_______________________________________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

René Rahn
Ph.D. Student
--------------------------------
Tel:  (+49) 30 838 75137
Mail: rene.rahn@fu-berlin.de
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universität Berlin
Takustraße 9
14195 Berlin
--------------------------------

<-- thread -->
<-- date -->
  • References:
    • [Seqan-dev] Fatal Crash / Failed Assert in BandedAlignment
      • From: Brett Bowman <bnbowman@gmail.com>
  • 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