'ElMo-Knock'

enumeffknocks.h

Go to the documentation of this file.
00001 #include "metabolicnetwork.h"
00002 #include "ufes.h"
00003 #include "rk.h"
00004 
00005 #include <iostream>
00006 
00007 using namespace std;
00008 
00009 
00010 
00011 #ifndef ENUM_EFF_KNOCKS_H
00012 #define ENUM_EFF_KNOCKS_H
00013 
00018 class EnumEffKnocks {
00019                         private:
00020                                 const static int max_ufes_length=100;
00021                                 int max_rk_length;  
00022                                 int max_rk_cands; 
00023                                 MetabolicNetwork *metab_network;  
00025                                 map<string,UFES>  ufes_map;  
00026                                 map<string,RK>  erk_map;  
00027                                 string erk_fname;
00028 
00029                                 double portion_time;            
00030                                 double erk_enum_time,ufes_enum_time;
00031 
00032                         public:
00033                                 EnumEffKnocks();
00034                                 EnumEffKnocks(MetabolicNetwork *metab_network);
00035 
00036                                 void enum_ufes();   //populate ufes member variable
00037                                 void enum_ufes_from_single(long ind);
00038                                 void enum_erk();                                
00039                                 void enum_erk_direct();
00040                                 void enum_erk_from_single_ufes(UFES ufes);
00041 
00042                                 double get_erk_enum_time() { return this->erk_enum_time;}
00043                                 double get_ufes_enum_time() { return this->ufes_enum_time;}
00044                                 map<string,UFES>&  get_ufes_map() { return this->ufes_map;}
00045                                 map<string,RK>&  get_erk_map() { return this->erk_map;}
00046                                 void set_erk_enum_time(double new_erk_enum_time) { this->erk_enum_time=new_erk_enum_time;}
00047                                 void set_ufes_enum_time(double new_ufes_enum_time) { this->ufes_enum_time=new_ufes_enum_time;}
00048 
00049 
00050                                 bool can_collapse_ineff_modes(vector<int> reac_knockout);
00051 
00052                                 void print_ufes(string ufes_fname);
00053                                 void print_erk(string erk_fname);
00054                                 int reacs_for_knock(UFES ufes, vector<int> &avail_reacs);
00055 
00056                                 int is_fes(vector<long> efm_indices);
00057                                 long collapse_ems(RK rk, vector<long> ems_to_collapse, vector<long>& uncollapsed_ems);
00058                                 int is_all_ems_collapsed(RK rk, vector<long> ems_to_collapse);
00059 
00060                                 int compute_ranks_vector(UFES v, long range_start, long range_end, multimap<int,long>&  ranked_efms);
00061                                 int compute_ranks_vector_bitwise(UFES v, long range_start, long range_end, multimap<int,long>&  ranked_efms,vector<unsigned char> &bit_sets_table256) ;
00062                                 int compute_rank(vector<long> efm_indices,long cand_efm_index);
00063                                 int compute_reac_rank(map<int,string> reac_knocks, int reac, vector<long>& uncollapsed_ems);
00064                                 double rank_reac_for_direct_enumeration(map<int,string> reac_knocks, int reac, vector<long>& remain_ineff_efm_indices,vector<long>& remain_eff_efm_indices);
00065 
00066                                 int communicate_ufes_map();
00067                                 int communicate_erk_map();
00068 
00069 
00070 };
00071 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines