www.pudn.com > Genecircus20070919.rar > Gene_Simulate.h


#pragma once 
#include "wx_pch.h" 
typedef struct promotorlaw{ 
	wxString one; 
	wxString two; 
	double function; 
}; 
typedef std::vector law; 
typedef std::vector history; 
typedef std::vector history1; 
 
class Gene_Simulate 
{ 
public: 
	Gene_Simulate(void); 
	string name; 
	int x; 
	int y; 
	bool if_eukaryotic; 
public: 
	~Gene_Simulate(void); 
	class Promotor{ 
		  public: 
		  law l; 
		  double number_active_postive; 
		  double time_old; 
		  double time; 
		  double time_old1; 
		  double time1; 
		  int index;//记录是那个反应正在占据promotor; 
		  int index1; 
		  string if_active; 
		  bool if_begin_transprict; 
		  Promotor(){ 
               number_active_postive = -1.0; 
			   time = 0.0; 
			   time_old = 0.0; 
			   time1 = 0.0; 
			   time_old1 = 0.0; 
			   if_active = "11"; 
			   index = 100000; 
			   index1 = 100000; 
		  }; 
	}; 
	class m_RNA{ 
	      public: 
			  double life_time; 
			  double native_active; 
			  double decay; 
              int number; 
			  int init_number; 
			  double delay_time; 
			  history his_m_RNA; 
			  history mrna_temp; 
			  m_RNA(){ 
				   life_time = -1; 
				   number = -1; 
				   init_number = 0; 
				   delay_time = -1; 
				   decay = -1; 
			  }; 
	}; 
	class Pro{ 
	      public: 
			  double life_time; 
			  double decay; 
			  int number; 
			  history1 his_Pro; 
			  history1 pro_temp; 
			  Pro(){ 
				  life_time = -1; 
				  number = -1; 
				  decay = -1; 
			  }; 
	}; 
    friend class Promotor; 
	Promotor promotor; 
    friend class m_RNA; 
	m_RNA mrna; 
	friend class Pro; 
	Pro pro; 
	int c_i; 
	bool if_error; 
}; 
 
 
class OtherTF{ 
	public: 
	string name; 
	wxString law; 
    int init_number; 
	int x; 
	int y; 
	bool if_error; 
	OtherTF(){ 
		if_error = false; 
	} 
}; 
 
class Control{ 
	public: 
	wxString law; 
    int index; 
	int x; 
	int y; 
	double c; 
	bool if_error; 
	Control(){ 
              if_error = false; 
	} 
}; 
 
typedef std::vector pt; 
 
class LineC{ 
public: 
	wxPoint pts[3]; 
	int line_begin; 
	int line_end; 
	int type; 
	double function;//1:press;2:improve 
	wxPoint ptbegin; 
	wxPoint ptend; 
	int c;//this protein 自我结合系数 
	bool if_complex; 
	double constant; 
	int number;//蛋白复合体的数量 
	wxString name; 
	bool if_error; 
	int if_effect; 
	LineC(){ 
		if_complex = false; 
		constant = 0.0; 
		number = 0; 
		if_error = false; 
		if_effect = 1;//effect,2 uneffect; 
	}	 
};