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

Re: [Seqan-dev] Asymmetric Scoring of Insertions / Deletions in Alignments

<-- thread -->
<-- date -->
  • From: Brett Bowman <bnbowman@gmail.com>
  • To: SeqAn Development <seqan-dev@lists.fu-berlin.de>
  • Date: Fri, 5 Jun 2015 10:58:50 -0700
  • Reply-to: SeqAn Development <seqan-dev@lists.fu-berlin.de>
  • Subject: Re: [Seqan-dev] Asymmetric Scoring of Insertions / Deletions in Alignments

Trying to effect a patch to resolve this issue, but it appears that the BiAffine scoreGap functions require the sequence bases in question for the appropriate functions, despite not using them in the computation except for match/mismatch.

Is this the intended design?

"""
template <typename TScoreValue, typename TSeqEntry1, typename TSeqEntry2>
inline TScoreValue
scoreGapExtendVertical(Score<TScoreValue, BiAffine> const & me,
                       TSeqEntry1 const & /*seqEntry1*/,
                       TSeqEntry2 const & /*seqEntry2*/)
{
    return me._gapExtendVertical;
}
"""

-Brett

On Fri, Jun 5, 2015 at 10:39 AM, Brett Bowman <bnbowman@gmail.com> wrote:
Thanks Rene,

That appears to let me create the type of scoring schemes I need, but it looks like "computeAlignmentStats" function can't quite handle the polymorphism yet:

"""
In file included from /home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/src/ControlFilter.cpp:50:
In file included from /home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/include/pbsparse/FindSeedsConfig.h:40:
In file included from /home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/third-party/seqan-library-2.0.0/include/seqan/align.h:55:
In file included from /home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/third-party/seqan-library-2.0.0/include/seqan/graph_align.h:45:
In file included from /home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/third-party/seqan-library-2.0.0/include/seqan/score.h:49:
/home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/third-party/seqan-library-2.0.0/include/seqan/score/score_simple.h:224:15: error: no member
      named 'data_gap_open' in 'seqan::Score<long, const seqan::Tag<seqan::BiAffine_> >'
    return me.data_gap_open;
           ~~ ^
/home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/third-party/seqan-library-2.0.0/include/seqan/align/evaluate_alignment.h:227:41: note: in
      instantiation of function template specialization 'seqan::scoreGapOpen<long, const seqan::Tag<seqan::BiAffine_> >' requested here
                stats.alignmentScore += scoreGapOpen(scoringScheme);
                                        ^
/home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/include/pbsparse/BandedAligner.h:300:9: note: in instantiation of function template
      specialization 'seqan::computeAlignmentStats<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::Alloc<void> >, seqan::Tag<seqan::ArrayGaps_>, long, const
      seqan::Tag<seqan::BiAffine_> >' requested here
        computeAlignmentStats(stats, align, scoringScheme_);
"""

-B

On Wed, Jun 3, 2015 at 8:21 AM, Rahn, René <rene.maerker@fu-berlin.de> wrote:
Hi Brett, 

this is possible with the BiAffine Score specification.
However this was so far only used in the JournaledStringSet module which is still under development.
You can access it by simply including <seqan/journaled_set/score_biaffine.h>

You can use the setter and getter functions:

setScore/score
setScoreMismatch/scoreMismatch
setScoreGapOpenVertical/scoreGapOpenVertical
setScoreGapOpenHorizontal/scoreGapOpenHorizontal
and of course the standard setGap interfaces.

Apart from this, the entire align engine for the standard DP algorithms works with different gap penalties for insertions/deletions.

Cheers,

René



On 26 May 2015, at 23:57, Brett Bowman <bnbowman@gmail.com> wrote:

I'd like to create some scoring schemes with asymmetric weights for insertion / deletion errors for working with single-molecule sequencing data.  Raw data from both PacBio and Oxford Nanopore have known insertion-biases, and so optimal scoring schemes need to penalize those errors less than deletions. 

This appears to be partially supported by the SeqAn API already, since the "Score" class has separate interface functions for "scoreGapHorizontal" and "scoreGapVertical", but I can't see any existing specifications that utilize them.

Is there an allowed / recommended way to do this currently, or do I need to create my own Score specialization?

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
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev



<-- thread -->
<-- date -->
  • References:
    • Re: [Seqan-dev] Asymmetric Scoring of Insertions / Deletions in Alignments
      • From: Rahn, René <rene.maerker@fu-berlin.de>
    • Re: [Seqan-dev] Asymmetric Scoring of Insertions / Deletions in Alignments
      • From: Brett Bowman <bnbowman@gmail.com>
  • seqan-dev - June 2015 - 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