Main Page | Class Hierarchy | Class List | File List | Class Members

Options.h

00001 #ifndef _OPTIONS_H
00002 #define _OPTIONS_H
00003 
00004 // Copyright (c) 2003, The Institute for Genomic Research (TIGR), Rockville,
00005 // Maryland, U.S.A.  All rights reserved.
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   // for backward compatibility with previousl combiners that do not use intron model
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