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 membernamed '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: ininstantiation of function template specialization 'seqan::scoreGapOpen<long, const seqan::Tag<seqan::BiAffine_> >' requested herestats.alignmentScore += scoreGapOpen(scoringScheme);^/home/UNIXHOME/bbowman/p4/software/smrtanalysis/bioinformatics/staging/PostPrimary/pbsparse/include/pbsparse/BandedAligner.h:300:9: note: in instantiation of function templatespecialization 'seqan::computeAlignmentStats<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::Alloc<void> >, seqan::Tag<seqan::ArrayGaps_>, long, constseqan::Tag<seqan::BiAffine_> >' requested herecomputeAlignmentStats(stats, align, scoringScheme_);"""-BOn Wed, Jun 3, 2015 at 8:21 AM, Rahn, René <email@example.com> 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/scoresetScoreMismatch/scoreMismatchsetScoreGapOpenVertical/scoreGapOpenVerticalsetScoreGapOpenHorizontal/scoreGapOpenHorizontaland 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.
_______________________________________________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?
seqan-dev mailing list
René RahnPh.D. Student--------------------------------Institute of Computer ScienceAlgorithmic Bioinformatics (ABI)--------------------------------Freie Universität BerlinTakustraße 914195 Berlin--------------------------------
seqan-dev mailing list