File: igenicmodel.hh

package info (click to toggle)
augustus 3.4.0%2Bdfsg2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 758,480 kB
  • sloc: cpp: 65,451; perl: 21,436; python: 3,927; ansic: 1,240; makefile: 1,032; sh: 189; javascript: 32
file content (77 lines) | stat: -rw-r--r-- 2,254 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
 * igenicmodel.hh
 *
 * License: Artistic License, see file LICENSE.TXT or 
 *          https://opensource.org/licenses/artistic-license-1.0
 */
 
#ifndef __IGENICMODEL_HH
#define __IGENICMODEL_HH

#include "statemodel.hh"

/**
 * @author Mario Stanke
 * 
 */
class IGenicModelError : public ProjectError {
public:
    IGenicModelError(string msg) : ProjectError(msg) {}
};

/**
 * @brief intergenic region
 * 
 * @author Mario Stanke
 * 
 */
class IGenicModel : public StateModel {
public:
    IGenicModel() : gweight(1) {
	init();
    }
    ~IGenicModel() {}
    
    StateType getStateType() const {
	return igenic;
    }

    void buildModel         ( const AnnoSequence* annoseq, int parIndex );
    void registerPars       ( Parameters* parameters);
    void printProbabilities ( int zusNumber, BaseCount *bc, const char* suffix = NULL );
    void initAlgorithms     ( Matrix<Double>&, int);
    void viterbiForwardAndSampling(ViterbiMatrixType&, ViterbiMatrixType&, int, int,
				   AlgorithmVariant, OptionListItem&);
    Double emiProbUnderModel(int begin, int end) const;
    static void init();
    static void setSFC(SequenceFeatureCollection *sfc) {
	seqFeatColl = sfc;
    }
    static void resetPars() {}
    static void updateToLocalGC(int from, int to);
    static void readProbabilities(int zusNumber);
    static void readAllParameters();
    static void storeGCPars(int idx);
    static double getGeoProb(){return geoProb;}
    static vector<double> getNucleotideProbs(){return nucProbs[0];}

private:
    void processSequence( const char* start, const char* end );
public:    
  static Integer         k;           // UTR intron and intron
  static PatMMGroup      emiprobs;    // can use this data.
  static PatMMGroup      *GCemiprobs; // array for each GC content class
private:
  Integer                gweight;
  static Double          patpseudocount;
  static Integer         gesbasen;
  static vector<Integer> emicount;
  static vector<vector<Double> > Pls;
  static vector<vector<Double> >* GCPls;
  static vector<vector<double> > nucProbs;
  static int             lastParIndex; // GC-index of current parameter set
  static int             verbosity;
  static double          geoProb;
};

#endif    //  __IGENICMODEL_HH