File: igenicmodel.hh

package info (click to toggle)
augustus 3.2.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 289,676 kB
  • sloc: cpp: 48,711; perl: 13,339; ansic: 1,251; makefile: 859; sh: 58
file content (78 lines) | stat: -rw-r--r-- 2,547 bytes parent folder | download | duplicates (2)
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
78
/*****************************************************************************\
 * Fielname : igenicmodel.hh
 * Author   : Mario Stanke
 * Email    : stanke@math.uni-goettingen.de
 * Project  : HMM
 *
 * Copyright: (C) 2002 by Mario Stanke
 *
 * Description: 
 *
 *
 * Date             |   Author       |  Changes
 * Mit Jun 26 2002  | Mario Stanke   | Creation of the file           
 * -----------------|----------------|---------------------------------------
\******************************************************************************/

#ifndef __IGENICMODEL_HH
#define __IGENICMODEL_HH

#include "statemodel.hh"


class IGenicModelError : public ProjectError {
public:
    IGenicModelError(string msg) : ProjectError(msg) {}
};


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