|
'ElMo-Knock'
|
00001 #include <vector> 00002 #include <string> 00003 #include "util.h" 00004 using namespace std; 00005 00006 #ifndef OPTIONS_H 00007 #define OPTIONS_H 00008 00009 /* 00010 Class: Options 00011 Contains options that are parsed from command line and printed to screen and output result file 00012 */ 00013 00014 class Options { 00015 00016 private: 00017 string config_fname; 00018 string efm_bit_fname; 00019 string efm_meta_fname; 00020 string output_fname; 00021 string yields_fname; 00022 vector<string> init_knock_reacs; 00023 vector<string> target_reacs; 00024 vector<string> substrate_reacs; 00025 vector<string> transport_reacs; 00026 vector<double> min_yields; 00027 vector<double> min_core_yields; 00028 string use_xchg_reacs; 00029 int max_efm_cands,max_rk_cands, max_reac_subset_length; 00030 string algorithm; 00031 string network_capacity; 00032 public: 00033 Options() {} 00034 Options(string config_fname); 00035 void load(string config_fname); 00036 void print(); 00037 void print_to_file(ostream &out); 00038 00039 int get_max_rk_cands() { return this->max_rk_cands;} 00040 int get_max_efm_cands() { return this->max_efm_cands;} 00041 int get_max_reac_subset_length() { return this->max_reac_subset_length;} 00042 00043 string get_algorithm() { return this->algorithm;} 00044 string get_network_capacity() { return this->network_capacity;} 00045 00046 string get_efm_bit_fname() { return this->efm_bit_fname;} 00047 string get_efm_meta_fname() { return this->efm_meta_fname;} 00048 string get_output_fname() { return this->output_fname;} 00049 string get_yields_fname() { return this->yields_fname;} 00050 string get_config_fname() { return this->config_fname;} 00051 00052 string get_use_xchg_reacs() { return this->use_xchg_reacs;} 00053 00054 vector<string>& get_init_knock_reacs() { return this->init_knock_reacs;} 00055 vector<string>& get_target_reacs() {return this->target_reacs;} 00056 vector<string>& get_substrate_reacs() {return this->substrate_reacs;} 00057 vector<string>& get_transport_reacs() {return this->transport_reacs;} 00058 vector<double>& get_min_yields() { return this->min_yields;} 00059 vector<double>& get_min_core_yields(){ return this->min_core_yields;} 00060 00061 //friend ostream& operator<<(ostream& out, const Options& opt); 00062 void load_efm_meta_file(vector< vector<double> > &stoich, vector<string> &reacs_names, t_UnsignedInt &num_ems); 00063 00064 }; 00065 void parse_string( const string& str, const char separator, vector<string>& result ); 00066 #endif 00067 00068