00001 #ifndef BLMODEL_H
00002 #define BLMODeL_H
00003 #include "Match.h"
00004 #include <mysql++.h>
00005
00017 class Blmodel : public Match {
00018 public:
00019 Blmodel(const string &q, const string &t, int fp, int ql, int tl,
00020 int qb, int qe, int tb, int te, int ex, double sc,
00021 double ide, double qc, float ol)
00022 : Match(qb,qe,tb,te), qid(q), tid(t), fpnum(fp), qlen(ql), tlen(tl),
00023 numex(ex), score(sc), iden(ide), qcov(qc), olp(ol)
00024 { }
00025
00026
00027
00028 Blmodel(const mysqlpp::Row &r)
00029 : Match(int(r[5]), int(r[6]), int(r[7]), int(r[8])),
00030 qid(string(r.at(0))), tid(string(r[1])), fpnum(int(r[2])),
00031 qlen(int(r[3])), tlen(int(r[4])), numex(int(r[9])),
00032 score(double(r[10])), iden(double(r[11])),
00033 qcov(double(r[12])), olp(float(r[13]))
00034 { }
00035
00036 const string& getQid() const { return qid; }
00037 const string& getTid() const { return tid; }
00038 int getFpnum() const { return fpnum; }
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 pair<int,int> getExpectedTargetRange(int ease=500, double cr=4.1) const;
00063
00064 int getExonNum() const { return numex; }
00065
00066
00067
00068 double getScore() const { return score; }
00069
00070
00071 double getNormScore() const { return score/(1+olp); }
00072 int queryLength() const { return qlen; }
00073 int targetLength() const { return tlen; }
00074 friend ostream& operator<<(ostream &ous, const Blmodel &bm);
00075 bool queryHasStart() const { return 1 == queryBegin(); }
00076 bool queryHasStop() const { return qlen == queryEnd(); }
00077
00078 private:
00079 string qid;
00080 string tid;
00081 int fpnum, qlen, tlen, numex;
00082 double score, iden, qcov;
00083 float olp;
00084
00085
00086 };
00087
00088 #endif