27enum StepRule{constant=0, harmonic, square_root, base_2, base_e, polyak, mixed};
38 graphs.resize(numSpecies);
39 ptrs_to_alltranscripts.resize(numSpecies);
40 sfcs.resize(numSpecies);
41 geneLists.resize(numSpecies);
44 for(
int i = 0; i < numSpecies; i++){
46 delete ptrs_to_alltranscripts[i];
49 Transcript::destroyGeneSequence(getPtr(geneLists[i]));
53 static size_t numSpecies;
54 static StepRule step_rule;
55 vector<SpeciesGraph*> graphs;
57 vector< list<Transcript*> *> ptrs_to_alltranscripts;
58 vector< SequenceFeatureCollection* > sfcs;
59 vector< list<AltGene> *> geneLists;
60 list<OrthoGene> all_orthogenes;
62 void linkToOEs(list<OrthoExon> &oes);
73 double dualdecomp(list<OrthoExon> &all_orthoex,
ExonEvo &evo,vector< list<Transcript*> *> &genelist,
int gr_ID,
int T, vector<double> &c);
74 double treeMAPInf(list<OrthoExon> &all_orthoex,
ExonEvo &evo,
int &numInconsistent);
75 double globalPathSearch();
76 double getStepSize(
int r,
double c,
int t,
int v,
int numInconsistent,
double current_dual,
double best_primal,
double best_dual);
77 double makeConsistent(list<OrthoExon> &all_orthoex,
ExonEvo &evo);
78 double init(list<OrthoExon> &all_orthoex,
ExonEvo &evo,
int &numInconsistent) ;
81 void buildGeneList(vector< list<Transcript*>* > &genelist);
82 void filterGeneList(vector< list<Transcript*> *> &genelist, vector<int> &geneid);
83 void printGenelist(vector<ofstream*> &filestreams);
84 void outputGenes(vector<ofstream*> &filestreams, vector<int> &geneid){
85 vector< list<Transcript*> *> genelist(numSpecies);
86 buildGeneList(genelist);
87 filterGeneList(genelist,geneid);
88 printGenelist(filestreams);
90 void createOrthoGenes(
const GeneMSA *geneRange);
91 void printOrthoGenes();
93 static void setStepRule(
const char* r);