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

Generated on Wed Aug 10 11:56:52 2011 for Softwares from Orpara by  doxygen 1.5.6