/** * Author: Mark Larkin * * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson. */ /** * This class contains the sequence information. It should also contain * the sequence name, and the encoded version. * A vector of Sequences is passed to the Alignment object to set it up. * CHANGES: * Mark 22-1-2007: Added a unique sequence identifier to help with correct output * order of sequences. */ #ifndef SEQUENCE_H #define SEQUENCE_H #include #include #include "../general/userparams.h" #include "../general/utils.h" namespace clustalw { class Sequence { public: /* Functions */ Sequence(std::string& seq, std::string& name, std::string& title); Sequence(std::string& seq, std::string& name, std::string& title, unsigned long id); Sequence(std::vector* encodedSequence, std::string& name, std::string& title, unsigned long id); void encodeSequence(); void printSequence(); std::vector* getSequence(); bool isEmpty(); std::string getName(); std::string getTitle(); bool checkDNAFlag(); unsigned long getIdentifier(){return identifier;} /* Attributes */ private: /* Functions */ void checkIntegrity(); void copyStringIntoVector(std::vector* _vectorTo, std::string* _stringFrom); /* Attributes */ std::vector _sequence; std::vector _encodedSequence; std::string _name; std::string _title; unsigned long identifier; }; } #endif