00001 #ifndef _PARAMFILE_H 00002 #define _PARAMFILE_H 00003 00004 #include <string> 00005 #include <list> 00006 00007 class ParamFile { 00008 public: 00009 ParamFile(const std::string&); 00010 00011 static ParamFile* getInstance() { 00012 return _instance; 00013 } 00014 static void createInstance(const std::string& file) { 00015 _instance = new ParamFile(file); 00016 } 00017 00018 void load(const std::string&); 00019 00020 int getMaxSeqLen() const { return _maxSeqLen; } 00021 int getOverlapLen() const { return _overlapLen; } 00022 int getInternalExonLengthPenalty() const { return _internalExonLenPenalty; } 00023 int getIntronLengthPenalty() const { return _intronLenPenalty; } 00024 int getIgrLengthPenalty() const { return _igrLenPenalty; } 00025 int getMinIntronLength() const { return _minIntronLen; } 00026 int getMinIgrLength() const { return _minIgrLen; } 00027 int getAlignmentConnectionCutoff() const { return _minAlignmentConnectionCutoff; } 00028 00029 double getIntronPenalty() const { return _intronPenalty; } 00030 double getIgrPenalty() const { return _igrPenalty; } 00031 double getInternalExonPenalty() const { return _internalExonPenalty; } 00032 00033 const std::list<std::string>& getDonorList() const { return _donors; } 00034 const std::list<std::string>& getAcceptorList() const { return _acceptors; } 00035 00036 private: 00037 void createDefault(const std::string&); 00038 00039 private: 00040 int 00041 _intronLenPenalty, _igrLenPenalty, _minIntronLen, _minIgrLen, _minAlignmentConnectionCutoff, 00042 _internalExonLenPenalty, _maxSeqLen, _overlapLen; 00043 00044 double _intronPenalty, _igrPenalty, _internalExonPenalty; 00045 00046 std::list<std::string> _donors; 00047 std::list<std::string> _acceptors; 00048 00049 static ParamFile* _instance; 00050 }; 00051 00052 #endif // _PARAMFILE_H