Main Page | Class Hierarchy | Class List | File List | Class Members

EvidenceType.h

00001 
00002 // Copyright (c) 2003, The Institute for Genomic Research (TIGR), Rockville,
00003 // Maryland, U.S.A.  All rights reserved.
00005 #ifndef EVIDENCETYPE_H
00006 #define EVIDENCETYPE_H
00007 
00008 #include "AnnotationScore.h"
00009 #include "dsu.h"
00010 #include <string>
00011 
00012 using std::string;
00013 
00014 class Prediction;
00026 class EvidenceType {
00027  public:
00028   EvidenceType(const string& str, int idx, double val) : _val(val), _str(str), _idx(idx) { }
00029   virtual ~EvidenceType() { }
00030 
00038   virtual void update(const Prediction* pred, int end5, int end3, dsu::Strand_t) =  0; 
00039   virtual void finish() { }
00040   
00041   //virtual void 
00042   //update(const Prediction*, int, const Prediction*, int, dsu::Strand_t) { }
00043 
00044   virtual unsigned getNum() const = 0;
00045 
00051   virtual double getVal(int) const { return _val; }
00052 
00059   virtual EvidenceType* dup() const = 0;
00060   
00065   virtual void setVals(const EvidenceType& et) {
00066     _val = et._val;
00067   }
00068 
00069   virtual AnnotationScore eval() const = 0;
00074   virtual bool train_print(std::ostream& os) const = 0;
00075 
00079   const char* getStr() const { return _str.c_str(); }
00080 
00084   const int getIdx() const { return _idx; }
00085   virtual bool read(std::istream&) = 0;
00086 
00087   double& getValRef() { return _val; }
00088   virtual double getVal() const { return _val; }
00089 
00090   virtual double getSumVal() const { return getVal(); }
00091   virtual void normalize(double sum) { getValRef() /= sum; }
00092   
00093  protected:
00094   double _val;
00095 
00096  private:
00097   string _str;
00098   int _idx;
00099 };
00100 
00101 #endif