Re: [Seqan-dev] multiLocalAlignment function
Hello Andres,
The multi-local alignment algorithm we have implemented is the one from Waterman and Eggert.
It returns possibly overlapping local alignments, so it is not a repeated match finder.
It is implemented in ./seqan/graph_align/graph_align_smith_waterman_clump.h and
as you can see at the bottom of the file it repeatedly calls the standard smith-waterman
alignment algorithm. Each found local alignment is then forbidden in the next run.
I send you an example on how to use it on Monday.
Best regards,
Tobias
________________________________________
From: seqan-dev-bounces@lists.fu-berlin.de [seqan-dev-bounces@lists.fu-berlin.de] On Behalf Of andres.burgos@irisa.fr [andres.burgos@irisa.fr]
Sent: Friday, August 21, 2009 6:01 PM
To: seqan-dev@lists.fu-berlin.de
Subject: [Seqan-dev] multiLocalAlignment function
Hi!
I'm currently trying to make work the function
multiLocalAlignment(graph, edgeMap, score, numAlign, tag)
but I can't success, so I was hoping to get some help, since it's not
documented on the web site. I was also wondering weather this function
would return overlapping or non-overlapping alignments.
Ok, so here is the code I'm working on:
typedef seqan::String<seqan::AminoAcid> TString;
typedef seqan::StringSet<TString, seqan::Dependent<> > TStringSet;
typedef seqan::Graph<seqan::Alignment<TStringSet, seqan::AminoAcid> >
TGraph;
TStringSet str;
TString s1 ("some string");
TString s2 ("some other string");
seqan::appendValue(str, s1);
seqan::appendValue(str, s2);
seqan::Score<int, seqan::Pam<> > pam (250, -1, 0);
TGraph g(str);
seqan::String<seqan::IntervalTreeNode<seqan::IntervalAndCargo<int,
int> > > propMap;
seqan::resizeEdgeMap(g, propMap);
seqan::multiLocalAlignment(g, propMap, pam, 10, seqan::SmithWaterman());
This won't compile, throwing this error:
../seqan-1.1/seqan/graph_align/graph_align_interface.h: In function ‘void
seqan::multiLocalAlignment(seqan::Graph<seqan::Alignment<TStringSet,
TCargo, TSpec> >&, TPropertyMap&, const seqan::Score<TScoreValue,
TSpec2>&, TSize, TTag) [with TStringSet =
seqan::StringSet<seqan::String<seqan::SimpleType<unsigned char,
seqan::_AminoAcid>, seqan::Alloc<void> >, seqan::Dependent<const
seqan::Tag<seqan::TagGenerous_> > >, TCargo = seqan::SimpleType<unsigned
char, seqan::_AminoAcid>, TSpec = const seqan::Tag<seqan::Default_>,
TPropertyMap =
seqan::String<seqan::IntervalTreeNode<seqan::IntervalAndCargo<int, char>,
seqan::StorePointsOnly>, seqan::Alloc<void> >, TScoreValue = int, TSpec2 =
seqan::Pam<seqan::SimpleType<unsigned char, seqan::_AminoAcid>,
seqan::Pam_Data_Dayhoff_MDM78>, TSize = int, TTag =
seqan::Tag<seqan::SmithWaterman_>]’:
readers/SWReader.cc:26: instantiated from here
../seqan-1.1/seqan/graph_align/graph_align_interface.h:234: error: no
matching function for call to
‘_localAlignment(seqan::String<seqan::Fragment<unsigned int,
seqan::ExactFragment<const seqan::Tag<seqan::Default_> > >,
seqan::Alloc<void> >&,
seqan::StringSet<seqan::String<seqan::SimpleType<unsigned char,
seqan::_AminoAcid>, seqan::Alloc<void> >, seqan::Dependent<const
seqan::Tag<seqan::TagGenerous_> > >&,
seqan::String<seqan::IntervalTreeNode<seqan::IntervalAndCargo<int, char>,
seqan::StorePointsOnly>, seqan::Alloc<void> >&, const seqan::Score<int,
seqan::Pam<seqan::SimpleType<unsigned char, seqan::_AminoAcid>,
seqan::Pam_Data_Dayhoff_MDM78> >&, int&,
seqan::Tag<seqan::SmithWaterman_>)’
make: *** [readers/SWReader.o] Error 1
So, maybe an example would make things clearer...
Thanks in advance,
Andres
_______________________________________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev