+ // manage motif lists
+ //! add a motif it wont be applied until update_sequences_motif is called
+ void add_motif(const Sequence& motifs, const Color& colors);
+ //! add vector of motifs and colors to our motif collection
+ /*! this will automatically call update_sequences_motif
+ * this depends on sets and color maps being unique
+ * (aka if you add the same item more than once it doesn't
+ * increase the size of the data structure)
+ */
+ void set_motifs(const std::vector<Sequence>& motifs,
+ const std::vector<Color>& colors);
+ /*! The file should look something like
+ * <sequence> <red> <green> <blue>
+ * where sequence is a string of IUPAC symbols
+ * and red,green,blue are a white space separated list of floats
+ * in the range [0.0, 1.0]
+ */
+ //! load a list of motifs from a file named filename
+ void load_motifs(boost::filesystem::path filename);
+ //! load motifs from an ifstream
+ /*! \sa Mussa::load_motifs(boost::filesystem::path)
+ */
+ void load_motifs(std::istream &);
+ //! save motif list to the specified filename
+ void save_motifs(boost::filesystem::path filename);
+ //! save motif list to an ostream
+ void save_motifs(std::ostream &);
+ //! return our motifs;
+ const motif_set& motifs() const;
+
+ //! return color mapper
+ boost::shared_ptr<AnnotationColors> colorMapper();
+