#define SEQ_SPAN_HPP_
#include <string>
+#include <map>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/export.hpp>
//! These classes provide for the internal implementation for the Sequence class
#include "seq.hpp"
+#include "annotations.hpp"
+#include "drawable.hpp"
class SeqSpan;
typedef boost::shared_ptr<SeqSpan> SeqSpanRef;
std::string sequence() const;
//! are both sequences derived from the same sequence tree?
static bool isFamily(const SeqSpan& a, const SeqSpan& b);
+
+ //! access annotations dictionary
+ AnnotationsRef annotations() const { return seq_annotations; }
+ //! set annotations dictionary
+ void setAnnotations(AnnotationsRef a) { seq_annotations = a; }
+ //! get data for drawing
+ DrawableRef drawable() const { return seq_drawable; }
+ //! store drawing data
+ void setDrawable(DrawableRef d) { seq_drawable = d; }
- //! fill in our rc_seq variable
- void initialize_rc_seq() const;
-
- friend class Sequence;
private:
//! do not statically initialize, only create with new
SeqSpan() {};
//! keep a reference to who our parent span is
SeqSpanRef parent;
-
+
//! hold a reverse complement version of our sequence if needed
- SeqStringRef rc_seq;
+ SeqStringRef rc_seq;
+ //! fill in our rc_seq variable
+ void initialize_rc_seq() const;
+ //! annotations provides a python-dictionary like place for metadata
+ AnnotationsRef seq_annotations;
+ //! store information needed for drawing
+ DrawableRef seq_drawable;
+
+ friend class Sequence;
// boost::serialization support
friend class boost::serialization::access;
template<class Archive>