|
'ElMo-Knock'
|
00001 #include <vector> 00002 #include <string> 00003 #include "metabolicnetwork.h" 00004 00005 using namespace std; 00006 00007 #ifndef RK_H 00008 #define RK_H 00009 00014 class RK { 00015 private: 00016 map<int,string> knock_reacs; //indices of efms for the matrix in metab_network 00017 string key; 00018 00019 MetabolicNetwork *metab_network; 00020 vector<double> min_yields; 00021 00022 vector<int> inactive_reacs; 00023 00024 vector<long> uncollapsed_ineff_efm_indices, collapsed_ineff_efm_indices,uncollapsed_eff_efm_indices; 00025 int avg_path_length,max_path_length,min_path_length; 00026 public: 00027 RK(); 00028 RK(const RK &rk); 00029 RK(map<int,string> knock_reacs, MetabolicNetwork *metab_network); 00030 00031 int get_avg_path_length() { return this->avg_path_length;} 00032 int get_max_path_length() { return this->max_path_length;} 00033 int get_min_path_length() { return this->min_path_length;} 00034 string get_key() { return this->key;} 00035 map<int,string>& get_knock_reacs() { return this->knock_reacs;} 00036 vector<long>& get_uncollapsed_ineff_efm_indices() { return this->uncollapsed_ineff_efm_indices; } 00037 vector<long>& get_uncollapsed_eff_efm_indices() { return this->uncollapsed_eff_efm_indices; } 00038 00039 int add_reac(int reac,long &rank); 00040 00041 int add_reac_direct(int reac,double &rank); 00042 int add_reacs(map<int,string> reacs); 00043 int test_reac(int reac,long &rank); 00044 int is_core_collapsed(int &cnt_not_collapsed); 00045 long test_knock_reacs2(map<int,string> knock_reacs, vector<double> &min_yields, long &num_eff_efm_rem, long &num_ineff_efm_rem); 00046 friend ostream& operator<<(ostream& out, const RK& rk); 00047 00048 }; 00049 00050 int find_common_efm(vector<RK> rks, int &num_shared_efms); 00051 #endif