+ mussa_error(msg) {};
+};
+
+//! error doing a key lookup in the annotations class
+class annotations_key_error : public mussa_error {
+public:
+ explicit annotations_key_error(const std::string& msg) :
+ mussa_error(msg) {};
+};
+
+//! Error loading sequence
+class sequence_load_error : public mussa_load_error
+{
+public:
+ explicit sequence_load_error(const std::string& msg) :
+ mussa_load_error(msg) {};
+};
+
+// Empty sequence
+class sequence_empty_error : public sequence_load_error
+{
+public:
+ explicit sequence_empty_error(const std::string& msg) :
+ sequence_load_error(msg) {};
+};
+
+// Empty fasta file
+class sequence_empty_file_error : public sequence_load_error
+{
+public:
+ explicit sequence_empty_file_error(const std::string& msg) :
+ sequence_load_error(msg) {};
+};
+
+// Empty unrecognized characters
+class sequence_invalid_load_error : public sequence_load_error
+{
+public:
+ explicit sequence_invalid_load_error(const std::string& msg) :
+ sequence_load_error(msg) {};
+};
+
+//! Incomprehensible comparison
+class sequence_invalid_comparison : public mussa_error
+{
+public:
+ explicit sequence_invalid_comparison(const std::string& msg) :
+ mussa_error(msg) {};
+};
+
+//! Invalid strand identifier
+class sequence_invalid_strand : public mussa_error
+{
+public:
+ explicit sequence_invalid_strand(const std::string& msg) :
+ mussa_error(msg) {};
+};
+
+//! Error loading sequence annotation
+class annotation_load_error : public sequence_load_error
+{
+public:
+ explicit annotation_load_error(const std::string& msg) :
+ sequence_load_error(msg) {};