File: allTreesSeparateModel.h

package info (click to toggle)
fastml 3.11-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,772 kB
  • sloc: cpp: 48,522; perl: 3,588; ansic: 819; makefile: 386; python: 83; sh: 55
file content (76 lines) | stat: -rw-r--r-- 2,348 bytes parent folder | download | duplicates (5)
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
// $Id: allTreesSeparateModel.h 962 2006-11-07 15:13:34Z privmane $

#ifndef ___ALL_TREES_SEPARATE_MODEL
#define ___ALL_TREES_SEPARATE_MODEL

#include "definitions.h"
#include "tree.h"
#include "sequenceContainer.h"
#include "stochasticProcess.h"
#include <vector>
using namespace std;

void get3seqTreeAndIdLeftVec(const sequenceContainer* sc,
							 tree& starT,
							 vector<int>& idList);

	tree getAnewTreeFrom(	const tree& et,
							tree::nodeP & mynode,
							vector<int> & idLeft,
							const string& nameToAdd);


class allTreesSeparateModel {
public:
	explicit allTreesSeparateModel();
	MDOUBLE getBestScore() {return _bestScore;}
	tree getBestTree() {return _bestTree;}
	
	void recursiveFind(tree et,
							 const vector<stochasticProcess>& sp,
							 const vector<sequenceContainer>& sc,
							 vector<int> idLeft,
							 const vector<Vdouble* > * weights=NULL,
							 const int maxIterations=1000,
							 const MDOUBLE epsilon=0.05);

	void recursiveFind(	const vector<sequenceContainer>* sc,
								const vector<stochasticProcess>* sp,
								const vector<Vdouble* > * weights= NULL,
								const int maxIterations=1000,
								const MDOUBLE epsilon=0.05); // one tree.

	vector<tree> getTreeVecBest() {return _treeVecBest;}

private:
	tree _bestTree;
	MDOUBLE _bestScore;
	vector<tree> _treeVecTmp; // same tree topologies, diff branch lengths
	vector<tree> _treeVecBest;// same tree topologies, diff branch lengths


	MDOUBLE evalTree(	tree& et,
							const vector<stochasticProcess>& sp,
							const vector<sequenceContainer>& sc,
							const int maxIterations,
							const MDOUBLE epsilon,
							const vector<Vdouble* > * weights = NULL);

};
#endif

	//	const stochasticProcess* _sp;
	//const sequenceContainer* _sc;
	//const Vdouble * _weights;

	//vector<tree> getBestTreesSep() {return _bestSepTrees;}
	//vector<tree> _bestSepTrees;
	//vector<tree> _tmpSepTrees;
	//vector<tree> recursiveFindSep(const vector<sequenceContainer>* sc,
	//							const vector<stochasticProcess>* sp,
	//							const vector<Vdouble *> * weights,
	//							const int maxIterations=1000,
	//							const MDOUBLE epsilon=0.05); // sep model
	//const vector<sequenceContainer>* _scVec;
	//vector<stochasticProcess>* _spVec; // not const, so in proportional for example it can be changed.
	//const vector<Vdouble *> * _weightsVec;