00001 #ifndef _OPTIONS_H
00002 #define _OPTIONS_H
00003
00004
00005
00007 #include <stdexcept>
00008 #include <strstream>
00009
00010 using std::string;
00011
00015 struct Options {
00020 friend int main(int,char**);
00021
00027 bool isExonDistr() const { return _exonDistrFile.size()>0; }
00028 bool isLinComb() const { return _lnCmb; }
00029 int _cutOff;
00030 bool quit, _forceModels;
00031 string m_fastaFile, m_evidenceListFile, _outputGeneModelFile, _matrixFile, _vecFile, _dtFile, _exonDistrFile;
00032 bool _train;
00033 int _subEnd5, _subEnd3, _trainOffSet;
00034 string _hmmFile;
00035
00036
00037 void setIntronFalse() { _useIntron = false; }
00038
00039 bool useIntron() const { return _useIntron; }
00040 bool isVerbose() const { return _verbose; }
00041 bool doTraining() const { return _train; }
00042 static void createInstance(int argc, char** argv, const string& id) {
00043 _instance = new Options(argc,argv,id);
00044 }
00045 static Options* getInstance() {
00046 return _instance;
00047 }
00048
00049 protected:
00050 Options(int argc, char** argv, const string&);
00051
00052 private:
00053 void parse(int argc, char** argv, const string&);
00054 static void versionStatement(std::ostream&, const string&);
00055
00056 private:
00057 bool _lnCmb;
00058 bool _verbose;
00059 bool _useIntron;
00060 static Options* _instance;
00061 };
00062
00063 #endif //_OPTIONS_H