36 list<ExonCandidate*> *additionalExons;
39 bool genesWithoutUTRs;
40 bool onlyCompleteGenes;
42 ofstream *sampled_GFs;
47 SpeciesGraph(list<Status> *states,
AnnoSequence *seq, list<ExonCandidate*> *addEx,
string name, Strand s,
bool u,
bool o, ofstream *gf,
bool ov =
false) :
50 additionalExons(addEx),
59 ec_score = Properties::getdoubleProperty(
"/CompPred/ec_score");
61 ec_score = alpha_e * x0_e - r_be;
67 using AugustusGraph::getKey;
73 void buildGraph(
double meanIntrLen=numeric_limits<double>::max());
78 string getKey(
Node *n);
79 void printGraph(
string filename);
80 void printSampledGF(
Status *st,
double score=0);
81 void printGF(
ExonCandidate *ec,
double score=0.0,
float avgBaseProb=0.0);
82 string getSpeciesname()
const {
return speciesname;}
83 char* getSequence()
const {
return seqRange->sequence;}
84 char* getSeqID()
const {
return seqRange->seqname;}
85 int getSeqOffset()
const {
return seqRange->offset;}
86 int getSeqLength()
const {
return seqRange->length;}
87 Strand getSeqStrand()
const {
return strand;}
89 void printCurrentPath();
99 static void setECThold(
double t){ec_thold=t;}
100 static void setICThold(
double t){ic_thold=t;}
101 static void printWeights();
110 static double ec_thold;
111 static double ic_thold;
112 static double maxCostOfExonLoss;
130 template<
class T>
Node* addExon(T *exon, vector< vector<Node*> > &neutralLines, unordered_map<int32_t,Node*> &auxiliaryNodes);
132 Node* addLeftSS(
Status *exon, vector< vector<Node*> > &neutralLines, unordered_map<int32_t,Node*> &auxiliaryNodes);
133 Node* addRightSS(
Status *exon, vector< vector<Node*> > &neutralLines, unordered_map<int32_t,Node*> &auxiliaryNodes);
134 Node* addAuxilaryNode(NodeType type,
int pos, vector< vector<Node*> > &neutralLines, unordered_map<int32_t,Node*> &auxiliaryNodes);
135 Node* getAuxilaryNode(NodeType type,
int pos, unordered_map<int32_t,Node*> &auxiliaryNodes)
const;
136 void addAuxilaryEdge(
Node *pred,
Node *succ);
137 Node* addAuxNodeToLine(NodeType type,
int pos, vector< vector<Node*> >&neutralLines);
138 NodeType getPredType(StateType type,
int begin,
int end) ;
139 NodeType getSuccType(StateType type) ;
140 list<NodeType> getPredTypes(
Node *node) ;
141 list<NodeType> getSuccTypes(
Node *node) ;
142 bool isGeneStart(
Node *exon);
143 bool isGeneEnd(
Node *exon);
146 Node* addNode(NodeType type,
int pos);
150 string getDotNodeAttributes(
Node *node);
151 string getDotEdgeAttributes(
Node *pred,
Edge *edge);