+ //! Define strand types
+ /**!
+ * Unknown strand is treated as "either" strand
+ * Plus refers to the initially created strand
+ * Minus is the opposite strand
+ * Both is for any feature that applies to "both" strands
+ * (which may not actually be useful)
+ * Same strand is only used when creating a subsequence
+ * and implies the subsequence has the same orientation as the parent
+ * Opposite is only used for creating a subsequence
+ * and implies the subsequence has the opposite orientation as the parent
+ * Single indicates that this is single stranded and there can't be
+ * an opposite strand.
+ */
+ enum strand_type { UnknownStrand, MinusStrand, PlusStrand,
+ BothStrand, SameStrand, OppositeStrand, SingleStrand };