SimpleRNAModel.h
Go to the documentation of this file.00001 #ifndef SimpleRNAModel_H
00002 #define SimpleRNAModel_H
00003
00004 #include "GenModel.h"
00005
00013 class mRNAModelLight : public Noschain {
00014 public:
00016 mRNAModelLight(const string &exstr, int gcb, int gce, int modid)
00017 : Noschain(exstr), cds(gcb, gce), id(modid) { };
00019 mRNAModelLight(const string &exstarts, const string &exends, char strand, int gcb, int gce, int modid)
00020 : Noschain(exstarts,exends,strand), cds(gcb, gce), id(modid) { };
00023 bool sameGene(const mRNAModelLight &mod) const;
00024 int getId() const { return id; }
00025 ostream& show(ostream &ous) const {
00026 ous << "modelid: " << id << endl;
00027 Noschain::show(ous);
00028 return ous;
00029 }
00030 int CDSLength() const { return subchain(cds).exonLength(); }
00031
00032 static void setGeneid(int genid) { _geneid=genid; }
00033 static void incrementGeneid() { ++_geneid; }
00034 static int currentGeneid() { return _geneid; }
00036 static int nextGeneid() { return _geneid++; }
00037
00044 static int _geneid;
00045
00046 protected:
00048 Range cds;
00050 int id;
00051 };
00052
00053 class mRNAModelCaiwe : public mRNAModelLight {
00054 public:
00055 mRNAModelCaiwe(const string &exstr, int gcb, int gce, int modid, int ne, float ec,
00056 const string &genomicid)
00057 : mRNAModelLight(exstr, gcb, gce, modid), numest(ne), estcov(ec), gid(genomicid) { }
00058 int getESTCount() const { return numest; }
00059 float getESTCoverage() const { return estcov; }
00062 bool lessEST(const mRNAModelCaiwe &mod) const {
00063 return numest < mod.numest && estcov < mod.estcov; }
00064 bool moreEST(const mRNAModelCaiwe &mod) const {
00065 return numest>mod.numest || estcov>mod.estcov; }
00066 bool lessESTFactor(const mRNAModelCaiwe &mod, float fa=1.1) const {
00067 return numest < fa*mod.numest && estcov < fa*mod.estcov; }
00068 bool weightedLessEST(const mRNAModelCaiwe &mod) const {
00069 return (kn*numest+kc*estcov) < (kn*mod.numest + kc*mod.estcov); }
00070 bool weightedMoreEST(const mRNAModelCaiwe &mod) const {
00071 return (kn*numest+kc*estcov) > (kn*mod.numest + kc*mod.estcov); }
00072 const string& getGenomicid() const { return gid; }
00073 const string& getGenomicId() const { return gid; }
00078 static float kn, kc;
00079
00080 private:
00081 int numest;
00082 float estcov;
00083 string gid;
00084
00085 };
00086
00087 #endif