|
'ElMo-Knock'
|
00001 #include <vector> 00002 #include <string> 00003 #include <map> 00004 #include <iostream> 00005 #include <fstream> // file I/O 00006 #include <sstream> 00007 #include <stdlib.h> 00008 #include <iomanip> 00009 #include <algorithm> 00010 #include <time.h> 00011 #include "util.h" 00012 #include "options.h" 00013 00014 00015 using namespace std; 00016 00017 #ifndef BITEFM_H 00018 #define BITEFM_H 00019 00024 class BitEfm { 00025 00026 private: 00027 char *buffer; 00028 string efm_bit_fname; 00029 vector< vector<double> > stoich; 00030 t_UnsignedInt num_ems; 00031 t_UnsignedInt file_length; 00032 int bytes_per_efm; 00033 int num_reacs; 00035 public: 00036 00037 BitEfm(); 00038 int load_efm_bit(string efm_bit_fname, t_UnsignedInt num_ems, vector< vector<double> > &stoich); 00039 00040 char* get_buffer() { return this->buffer;} 00041 int get_bytes_per_efm() { return this->bytes_per_efm;} 00042 int get_num_reacs(); 00043 t_UnsignedInt get_num_modes(); 00044 00045 int fast_is_fes(vector<long> &ineff_efm_indices, set<int> &reacs); 00046 int is_efm_elem_zero(unsigned long index, int reac, int &is_zero); 00047 int read_single_efm(unsigned long index,vector<double> &efm); 00048 int print_efm(unsigned long index, vector<string> &reacs_names); 00049 00050 00051 int retain_efm(vector<long> efm_indices2retain, vector< vector<double> > &yields); 00052 int remove_efm(vector<long> efm_indices2remove, vector< vector<double> > &yields); 00053 int knock_efms(map<string,int> knock_reacs, vector< vector<double> > &yields); 00054 00055 }; 00056 00057 00058 #endif