BioInt
1.02.00
BioInt: An integrative biological object-oriented application framework and interpreter
|
00001 #ifndef BIODATA_H 00002 #define BIODATA_H 00003 00004 #include "BioStatistics.h" 00005 #include "BioUtilities.h" 00006 00007 using namespace std; 00008 00009 class BioData 00010 { 00011 friend bool operator >(const BioData& , const BioData&); 00012 friend bool operator <(const BioData& , const BioData&); 00013 friend bool operator ==(const BioData& , const BioData&); 00014 00015 vector< vector < double > > yDataSets_; 00016 vector< string > xDataSet_; 00017 00018 long numberOfColumns_; 00019 long numberOfRows_; 00020 00021 void checkNumberOfColumns(const string& file); 00022 bool checkDouble(const string&); 00023 bool checkInt(const string&); 00024 vector<int> processStringForColumns( string ); 00025 00026 public: 00027 BioData(); 00028 // This Constructor Takes the 1st Column 00029 // as X_Data_Set and all the Remaining Columns as Y_Data_Sets. 00030 // All Y_Data_Sets ****SHOULD**** be NUMERICAL Values. 00031 BioData (const string& filename); 00032 BioData ( const string& filename, const int& x_column, const int& y_column); 00033 BioData ( const string& filename, const int& x_column, string& y_columns); 00034 00035 BioData(const vector < string >& xDataSet, const vector < double >& yDataSet); 00036 BioData(const vector < double >& xDataSet, const vector < double >& yDataSet); 00037 00038 //BioData constructors overloaded w.r.t dataTypes 00039 BioData(const vector < string >& xDataSet, const vector < int >& yDataSet); 00040 BioData(const vector < int >& xDataSet, const vector < int >& yDataSet); 00041 BioData(const vector < int >& xDataSet, const vector < double >& yDataSet); 00042 BioData(const vector < double >& xDataSet, const vector < int >& yDataSet); 00043 00044 00045 void setData(const string& file ); 00046 void setData( const string& filename, const int& x_column, const int& y_column); 00047 void setData (const string& filename,const int& x_column, string& y_columns); 00048 00049 void setData(const vector < string >& xDataSet, const vector < double >& yDataSet); 00050 void setData(const vector < double >& xDataSet,const vector < double >& yDataSet); 00051 00052 // set functions overloaded w.r.t dataTypes 00053 void setData(const vector < string >& xDataSet, const vector < int >& yDataSet); 00054 void setData(const vector < int >& xDataSet, const vector < int >& yDataSet); 00055 void setData(const vector < int >& xDataSet, const vector < double >& yDataSet); 00056 void setData(const vector < double >& xDataSet, const vector < int >& yDataSet); 00057 00058 long getNumberOfRows(); 00059 00060 vector < string > getXDataSet(); 00061 vector < double > getDoubleXDataSet(); 00062 00063 double getMaximumOfYDataSets(); 00064 double getMinimumOfYDataSets(); 00065 00066 vector < double > getYDataSet(const unsigned int& index ); 00067 int getNumberOfYDataSets(); 00068 00069 void pushYDataSet(const vector < double >& yDataSet); 00070 //overloaded pushYDataSet w.r.t dataType 00071 void pushYDataSet(const vector < int >& yDataSet); 00072 00073 BioData getData(const long& startingRowNumber, const long& endingRowNumber); 00074 BioData getData(const long& startingRowNumber, const long& endingRowNumber, const int& yColumnNumber); 00075 BioData getData(const long& startingRowNumber, const long& endingRowNumber, string& yColumnNumber); 00076 friend BioData operator+(BioData d1, BioData d2); 00077 void showData(ostream & os = cout ); 00078 00079 }; 00080 #endif