StochHMM  v0.34
Flexible Hidden Markov Model C++ Library and Application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stochTypes.h
Go to the documentation of this file.
1 //
2 // stochTypes.h
3 //Copyright (c) 2007-2012 Paul C Lott
4 //University of California, Davis
5 //Genome and Biomedical Sciences Facility
6 //UC Davis Genome Center
7 //Ian Korf Lab
8 //Website: www.korflab.ucdavis.edu
9 //Email: lottpaul@gmail.com
10 //
11 //Permission is hereby granted, free of charge, to any person obtaining a copy of
12 //this software and associated documentation files (the "Software"), to deal in
13 //the Software without restriction, including without limitation the rights to
14 //use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
15 //the Software, and to permit persons to whom the Software is furnished to do so,
16 //subject to the following conditions:
17 //
18 //The above copyright notice and this permission notice shall be included in all
19 //copies or substantial portions of the Software.
20 //
21 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
23 //FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
24 //COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
25 //IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
26 //CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 
28 #ifndef StochHMM_stochTypes_h
29 #define StochHMM_stochTypes_h
30 namespace StochHMM{
31  //! \file stochTypes.h
32  //! Stores enumerated types used in StochHMM library
33 
34  //Enumerated Transition identifiers
35  //!\enum enum transType {STANDARD , USER , INTERNAL , LEXICAL};
36  //!Types of Transitions
37  //! STANDARD = Transition has log probability value
38  //! USER = Transition is duration dependent and calculated by user defined distribution
39  //! INTERNAL = Transition is duration dependent and calculated by internal defined distibution
40  //! LEXICAL = Transition is dependent upon the preceeding sequence
42 
43 
44  //!\enum tracebackIdentifier { DIFF_STATE , STATE_NAME , STATE_LABEL , STATE_GFF , START_INIT };
45  //! Traceback identifier describe how stochHMM will traceback when using duration dependent distributions
46  //! Types of Tracebacks
47  //! DIFF_STATE = Traceback current state until a different state is encountered
48  //! STATE_NAME = Traceback until STATE_NAME changes from current state, essentially the same as DIFF_STATE
49  //! STATE_LABEL = Traceback until a State with a different label is encountered
50  //! STATE_GFF = Traceback until a State witha a different GFF tag is encountered
51  //! START_INIT = Traceback until the start of the sequence
53 
54 
55  //!enum combineIdentifier { FULL , STATENAME , STATELABEL , STATEGFF};
56  //!Describes how a traceback will be processed
57  //! Types of Combine Identifiers
58  //! FULL = No traceback editing will occur
59  //! STATENAME = Edit out all the states that aren't of given State Name
60  //! STATELABEL= Edit out all the states that aren't of given State Label
61  //! STATEGFF = Edit out all the states that aren't of given GFF Tag
63 
64  //Enumerated Trellis Types
65  //!\enum trellisType {SIMPLE, STOCH, NTH};
66  //!Defines what type of trellis cells to use
67  //!Types of trellis
68  //! SIMPLE = Trellis will only contain single viterbi, forward, and backward values
69  //! STOCH = Trellis will contain multiple viterbi,forward,backward values and traceback probabilities for stochastic tracebacks
70  //! NTH = Trellis will contain N viterbi values for top N tracebacks
72 
73  //!\enum decodingType {VITERBI, POSTERIOR};
74  //!Type of decoding to perform.
75  //! VITERBI = Traceback performed using viterbi value
76  //! FORWARD = Traceback performed using stochastic forward value
77  //! POSTERIOR = Traceback performed using posterior value
79 
80  //Enumerated Emission Track types
81  //!Track types
82  //! UNDEFINED = NOT DEFINED BY USER
83  //! ALPHA_NUM = Alphabet is letter or word based (discrete)
84  //! REAL = Real number values (continuous)
85  //! EXTERNAL = ???
87 
88 
89  //Enumerated Unknown Emission Character Probability Types
90 
91  //!enum unknownCharScoringType { DEFINED_SCORE, AVERAGE_SCORE, LOWEST_SCORE, HIGHEST_SCORE, NO_SCORE};
92  //! How to score unknown or ambiguous characters when encountered in emission or transition
93  //! Scoring types:
94  //! DEFINED_SCORE = user-defined score
95  //! AVERAGE_SCORE = average of all possible scores
96  //! LOWEST_SCORE = lowest of the possible scores
97  //! HIGHEST_SCORE = highest of the possible scores
98  //! NO_SCORE = No score will be defined (Produces error if unknown alphabet encountered)
100 
101 
102  //enum valueType {PROBABILITY, LOG_ODDS, COUNTS, LOG_PROB, PERCENTAGE};
103  //!Value types that are provided by user
104  //!PROBABILITY = basic probability between [0,1]
105  //!LOG_ODDS = log odds score
106  //!COUNTS = word counts
107  //!LOG_PROG = log2 value of probability
108  //!PERCENTAGE = [0,100] or 100*Probability
110 
111 
112 }
113 #endif