00001
00002
00003
00005 #ifndef PREDICTION_H
00006 #define PREDICTION_H
00007
00008 #include "SeqLoc.h"
00009 #include "AnnotationScore.h"
00010 #include <dsu.h>
00011 #include <list>
00012
00013 class RegionPrediction;
00014
00029 class Prediction : public SeqLoc {
00030 public:
00031 typedef std::list<Prediction*> DataStorageType;
00032
00042 Prediction(const SeqLoc& sl, AnnotationScore d, int modelId, const string& str) :
00043 SeqLoc(sl), _modelId(modelId), _source(str), _score(d) { }
00044
00048 Prediction(const Prediction& pred)
00049 : SeqLoc(pred), _modelId(pred._modelId), _source(pred._source), _score(pred._score) { }
00050
00054 virtual ~Prediction() { }
00055
00056 virtual void del() = 0;
00060 AnnotationScore getScore() const;
00061
00065 void setScore(const AnnotationScore& s) { _score = s; }
00066
00070 int getModelId() const { return _modelId; }
00071
00075 const string& getDataSource() const { return _source; }
00076
00081 virtual DataStorageType* makePlaceHolders() const = 0;
00082
00086 virtual void print(std::ostream& os, const string& str) const;
00087
00088 private:
00089 int _modelId;
00090 string _source;
00091 AnnotationScore _score;
00092 };
00093
00094 #endif // PREDICTION_H