-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcellule.hpp
105 lines (94 loc) · 3.38 KB
/
cellule.hpp
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*
* Copyright (C) 2005-2011 Hervé Rouault <[email protected]>
*
* This file is part of Genherite.
*
* Genherite is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Genherite is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Genherite. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef Cellule_H
#define Cellule_H
#include <iostream>
#include "composants.hpp"
extern int mode;
typedef vector < double >vd;
typedef vd::iterator ivd;
class Cellule {
public:
double score;
double score_auxi;
vector < Protein * >proteins;
vector < Gene * >genes;
vector < Promoter * >promoters;
vector < Arn * >arns;
vector < Reaction * >reactions;
Cellule();
~Cellule();
Protein *addprotein(double c = frand2(), double q = frand2());
Protein *fusion(Protein * prot1, Protein * prot2);
Reaction *adddimere(Protein * prot1, Protein * prot2, double c =
0.2 * frand2(), double q =
frand2(), double cdimerisation = frand2());
Reaction *addreaction(Espece * react1, Espece * react2, Espece * prod1,
Espece * prod2, double c = frand2());
Reaction *addrandreact();
void phosphorylation(Protein * prot);
void addphospho();
Reaction *addrandactiv();
Gene *addgene();
Promoter *addpromotion(Gene * gene, Protein * prot, double e =
frand2() * 0.2, double t = frand2());
void rmreaction(Reaction * r);
bool rmrandprot();
bool rmrandpromo();
bool compprot(Protein & prot1, Protein & prot2);
void evolution();
bool evolution_modifq();
bool evolution_ajout();
void optievolution();
void calculscore();
double scorefunction(vector < double >fonction,
vector < double >resultatintegr);
double calculscorebistable();
double calculscoremultistable();
double calculscoremultistable2();
double calculscoreporte();
double calculscoreoscill();
double scorebioscill();
Cellule *copycellule();
void printgraph(ostream & out);
void printinternpart(ostream & out);
void printproperties(ostream & out);
void printcellule(ostream & out);
void printcelluleshort(ostream & out);
void printcelluleintegr(ostream & out);
void printintegration(ostream & out);
//void printintegrationmultistable(ostream &out);
void prtbioscill();
bool addclivage();
Cellule *optimisation();
Protein *existe(Protein * prot);
Protein *searchcopyprot(Protein * prot);
void opticalculscore();
/*double calculscoreporteinter(); */
int especenum(Espece * pesp);
string especestring(Espece * pesp);
int reactionnum(Reaction * react);
string reactionstring(Reaction * react);
void printintegr(ostream & stre, double fint);
void copygene(Gene * gene);
};
typedef vector < Cellule * >vcell;
typedef vcell::iterator ivcell;
void *calcsc_thr(void *cell);
#endif /* Cellule_H */