1 #ifndef MOTIF_PARSER_HPP_
2 #define MOTIF_PARSER_HPP_
7 #include <boost/shared_ptr.hpp>
9 #include "alg/mussa.hpp"
10 #include "alg/annotation_colors.hpp"
12 namespace motif_parser {
13 // Helper functor to append created motifs to our Mussa analysis
16 ParsedMotifs(Mussa::motif_set& motifs_,
17 boost::shared_ptr<AnnotationColors> color_mapper_);
19 void parse(const std::string &data);
21 friend struct push_name;
22 friend struct push_sequence;
23 friend struct push_channel;
24 friend struct push_motif;
28 std::vector<float> channels;
30 Mussa::motif_set& motifs;
31 boost::shared_ptr<AnnotationColors> color_mapper;
35 push_name(ParsedMotifs *p);
36 template<typename Iterator>
37 void operator()(Iterator, Iterator) const;
41 struct push_sequence {
42 push_sequence(ParsedMotifs *p);
43 template<typename Iterator>
44 void operator()(Iterator, Iterator) const;
49 push_channel(ParsedMotifs *p);
50 void operator()(float) const;
55 push_motif(ParsedMotifs *p);
56 template<typename Iterator>
57 void operator()(Iterator, Iterator) const;
63 #endif /*MOTIF_PARSER_HPP_*/